betadisper {vegan} | R Documentation |

Implements Marti Anderson's PERMDISP2 procedure for the analysis of
multivariate homogeneity of group dispersions (variances).
`betadisper`

is a multivariate analogue of Levene's test for
homogeneity of variances. Non-euclidean distances between objects and
group centroids are handled by reducing the original distances to
principal coordinates. This procedure has latterly been used as a
means of assessing beta diversity. There are `anova`

,
`scores`

, `plot`

and `boxplot`

methods.

`TukeyHSD.betadisper`

creates a set of confidence intervals on
the differences between the mean distance-to-centroid of the levels of
the grouping factor with the specified family-wise probability of
coverage. The intervals are based on the Studentized range statistic,
Tukey's 'Honest Significant Difference' method.

betadisper(d, group, type = c("centroid", "median")) ## S3 method for class 'betadisper': anova(object, ...) ## S3 method for class 'betadisper': scores(x, display = c("sites", "centroids"), choices = c(1,2), ...) ## S3 method for class 'betadisper': plot(x, axes = c(1,2), cex = 0.7, hull = TRUE, ylab, xlab, main, sub, ...) ## S3 method for class 'betadisper': boxplot(x, ylab = "Distance to centroid", ...) ## S3 method for class 'betadisper': TukeyHSD(x, which = "group", ordered = FALSE, conf.level = 0.95, ...)

`d` |
a distance structure such as that returned by
`dist` , `betadiver` or
`vegdist` . |

`group` |
vector describing the group structure, usually a factor
or an object that can be coerced to a factor using
`as.factor` . Can consist of a factor with a single
level (i.e.~one group). |

`type` |
the type of analysis to perform. Only ```
type =
"centroid"
``` is currently supported. |

`display` |
character; partial match to access scores for
`"sites"` or `"species"` . |

`object, x` |
an object of class `"betadisper"` , the result of a
call to `betadisper` . |

`choices, axes` |
the principal coordinate axes wanted. |

`hull` |
logical; should the convex hull for each group be plotted? |

`cex, ylab, xlab, main, sub` |
graphical parameters. For details,
see `plot.default` . |

`which` |
A character vector listing terms in the fitted model for which the intervals should be calculated. Defaults to the grouping factor. |

`ordered` |
Logical; see `TukeyHSD` . |

`conf.level` |
A numeric value between zero and one giving the family-wise confidence level to use. |

`...` |
arguments, including graphical parameters (for
`plot.betadisper` and `boxplot.betadisper` ), passed to
other methods. |

One measure of multivariate dispersion (variance) for a group of samples is to calculate the average distance of group members to the group centroid or spatial median in multivariate space. To test if the dispersions (variances) of one or more groups are different, the distances of group members to the group centroid are subject to ANOVA. This is a multivariate analogue of Levene's test for homogeneity of variances if the distances between group members and group centroids is the Euclidean distance.

However, better measures of distance than the Euclidean distance are available for ecological data. These can be accommodated by reducing the distances produced using any dissimilarity coefficient to principal coordinates, which embeds them within a Euclidean space. The analysis then proceeds by calculating the Euclidean distances between group members and the group centroid on the basis of the principal coordinate axes rather than the original distances.

Non-metric dissimilarity coefficients can produce principal coordinate axes that have negative Eigenvalues. These correspond to the imaginary, non-metric part of the distance between objects. If negative Eigenvalues are produced, we must correct for these imaginary distances.

The distance to its centroid of a point is

*z[ij]^c
= sqrt(Delta^2(u[ij]^+, c[i]^+) - Delta^2(u[ij]^-, c[i]^-)),*

where
*Delta^2* is the squared Euclidean distance between
*u[ij]*, the principal coordinate for the *jth*
point in the *ith* group, and *c[i]*, the
coordinate of the centroid for the *ith* group. The
super-scripted *+* and *-* indicate the real and imaginary
parts respectively. This is equation (3) in Anderson (2006). If the
imaginary part is greater in magnitude than the real part, then we
would be taking the square root of a negative value, resulting in
NaN. From vegan 1.12-12 `betadisper`

takes the absolute
value of the real distance minus the imaginary distance, before
computing the square root. This is in line with the behaviour of Marti
Anderson's PERMDISP2 programme.

To test if one or more groups is more variable than the others, ANOVA
of the distances to group centroids can be performed and parametric
theory used to interpret the significance of F. An alternative is to
use a permutation test. `permutest.betadisper`

permutes model
residuals to generate a permutation distribution of F under the Null
hypothesis of no difference in dispersion between groups.

Pairwise comparisons of group mean dispersions can also be performed
using `permutest.betadisper`

. An alternative to the classical
comparison of group dispersions, is to calculate Tukey's Honest
Significant Differences between groups, via
`TukeyHSD.betadisper`

. This is a simple wrapper to
`TukeyHSD.aov`

. The user is directed to read the help file
for `TukeyHSD`

before using this function. In particular,
note the statement about using the function with
unbalanced designs.

The results of the analysis can be visualised using the `plot`

and `boxplot`

methods.

One additional use of these functions is in assessing beta diversity
(Anderson *et al* 2006). Function `betadiver`

provides some popular dissimilarity measures for this purpose.

The `anova`

method returns an object of class `"anova"`

inheriting from class `"data.frame"`

.

The `scores`

method returns a list with one or both of the
components `"sites"`

and `"centroids"`

.

The `plot`

function invisibly returns an object of class
`"ordiplot"`

, a plotting structure which can be used by
`identify.ordiplot`

(to identify the points) or other
functions in the `ordiplot`

family.

The `boxplot`

function invisibly returns a list whose components
are documented in `boxplot`

.

`TukeyHSD.betadisper`

returns a list. See `TukeyHSD`

for further details.

`betadisper`

returns a list of class `"betadisper"`

with the
following components:

`eig` |
numeric; the eigenvalues of the principal coordinates analysis. |

`vectors` |
matrix; the eigenvectors of the principal coordinates analysis. |

`distances` |
numeric; the Euclidean distances in principal coordinate space between the samples and their respective group centroid. |

`group` |
factor; vector describing the group structure |

`centroids` |
matrix; the locations of the group centroids on the principal coordinates. |

`call` |
the matched function call. |

If `group`

consists of a single level or group, then the
`anova`

and `permutest`

methods are not appropriate and if
used on such data will stop with an error.

Missing values in either `d`

or `group`

will be removed
prior to performing the analysis.

Gavin L. Simpson

Anderson, M.J. (2006) Distance-based tests for homogeneity of
multivariate dispersions. *Biometrics* **62(1)**, 245–253.

Anderson, M.J., Ellingsen, K.E. & McArdle, B.H. (2006) Multivariate
dispersion as a measure of beta diversity. *Ecology Letters*
**9(6)**, 683–693.

`permutest.betadisper`

, `anova.lm`

,
`scores`

, `boxplot`

,
`TukeyHSD`

. Further measure of beta diversity
can be found in `betadiver`

.

data(varespec) ## Bray-Curtis distances between samples dis <- vegdist(varespec) ## First 16 sites grazed, remaining 8 sites ungrazed groups <- factor(c(rep(1,16), rep(2,8)), labels = c("grazed","ungrazed")) ## Calculate multivariate dispersions mod <- betadisper(dis, groups) mod ## Perform test anova(mod) ## Permutation test for F permutest(mod, pairwise = TRUE) ## Tukey's Honest Significant Differences (mod.HSD <- TukeyHSD(mod)) plot(mod.HSD) ## Plot the groups and distances to centroids on the ## first two PCoA axes plot(mod) ## Draw a boxplot of the distances to centroid for each group boxplot(mod) ## simulate missing values in 'd' and 'group' groups[c(2,20)] <- NA dis[c(2, 20)] <- NA mod2 <- betadisper(dis, groups) ## warnings mod2 permutest(mod, control = permControl(nperm = 100)) anova(mod2) plot(mod2) boxplot(mod2) plot(TukeyHSD(mod2))

[Package *vegan* version 1.16-32 Index]