R: Mantel and Partial Mantel Tests for Dissimilarity Matrices

mantel {vegan} | R Documentation

## Mantel and Partial Mantel Tests for Dissimilarity Matrices

### Description

Function `mantel` finds the Mantel statistic as a matrix correlation between two dissimilarity matrices, and function `mantel.partial` finds the partial Mantel statistic as the partial matrix correlation between three dissimilarity matrices. The significance of the statistic is evaluated by permuting rows and columns of the first dissimilarity matrix.

### Usage

    mantel(xdis, ydis, method="pearson", permutations=999, strata = NULL,
        na.rm = FALSE, parallel = getOption("mc.cores"))
    mantel.partial(xdis, ydis, zdis, method = "pearson", permutations = 999,
        strata = NULL, na.rm = FALSE, parallel = getOption("mc.cores"))

### Arguments

`xdis, ydis, zdis` | Dissimilarity matrices or a `dist` objects.
`method` | Correlation method, as accepted by `cor`: `"pearson"`, `"spearman"` or `"kendall"`.
`permutations` | a list of control values for the permutations as returned by the function `how`, or the number of permutations required, or a permutation matrix where each row gives the permuted indices.
`strata` | An integer vector or factor specifying the strata for permutation. If supplied, observations are permuted only within the specified strata.
`na.rm` | Remove missing values in calculation of Mantel correlation. Use this option with care: Permutation tests can be biased, in particular if two matrices had missing values in matching positions.
`parallel` | Number of parallel processes or a predefined socket cluster. With `parallel = 1` uses ordinary, non-parallel processing. The parallel processing is done with parallel package.

### Details

Mantel statistic is simply a correlation between entries of two dissimilarity matrices (some use cross products, but these are linearly related). However, the significance cannot be directly assessed, because there are N(N-1)/2 entries for just N observations. Mantel developed asymptotic test, but here we use permutations of N rows and columns of dissimilarity matrix. See `permutations` for additional details on permutation tests in Vegan.

Partial Mantel statistic uses partial correlation conditioned on the third matrix. Only the first matrix is permuted so that the correlation structure between second and first matrices is kept constant. Although `mantel.partial` silently accepts other methods than `"pearson"`, partial correlations will probably be wrong with other methods.

The function uses `cor`, which should accept alternatives `pearson` for product moment correlations and `spearman` or `kendall` for rank correlations.

### Value

The function returns a list of class `mantel` with following components:

`Call` | Function call.
`method` | Correlation method used, as returned by `cor.test`.
`statistic` | The Mantel statistic.
`signif` | Empirical significance level from permutations.
`perm` | A vector of permuted values. The distribution of permuted values can be inspected with `permustats` function.
`permutations` | Number of permutations.
`control` | A list of control values for the permutations as returned by the function `how`.

### Note

Legendre & Legendre (2012, Box 10.4) warn against using partial Mantel correlations.

### Author(s)

Jari Oksanen

### References

The test is due to Mantel, of course, but the current implementation is based on Legendre and Legendre.

Legendre, P. and Legendre, L. (2012) Numerical Ecology. 3rd English Edition. Elsevier.

### See Also

`cor` for correlation coefficients, `protest` (“Procrustes test”) for an alternative with ordination diagrams, `anosim` and `mrpp` for comparing dissimilarities against classification. For dissimilarity matrices, see `vegdist` or `dist`. See `bioenv` for selecting environmental variables.

### Examples

    ## Is vegetation related to environment?
    data(varespec)
    data(varechem)
    veg.dist <- vegdist(varespec) # Bray-Curtis
    env.dist <- vegdist(scale(varechem), "euclid")
    mantel(veg.dist, env.dist)
    mantel(veg.dist, env.dist, method="spear")

[Package vegan version 2.4-3 Index]