Moran's I Autocorrelation Index

This function computes Moran's I autocorrelation coefficient of x giving a matrix of weights using the method described by Gittleman and Kot (1990).

models, regression
Moran.I(x, weight, scaled = FALSE, na.rm = FALSE,
          alternative = "two.sided")

The matrix weight is used as ``neighbourhood'' weights, and Moran's I coefficient is computed using the formula: $$I = \frac{n}{S_0} \frac{\sum_{i=1}^n\sum_{j=1}^n w_{i,j}(y_i - \overline{y})(y_j - \overline{y})}{\sum_{i=1}^n {(y_i - \overline{y})}^2}$$ with

  • $y_i$= observations
  • $w_{i,j}$= distance weight
  • $n$= number of observations
  • $S_0$=$\sum_{i=1}^n\sum_{j=1}^n wij$

The null hypothesis of no phylogenetic correlation is tested assuming normality of I under this null hypothesis. If the observed value of I is significantly greater than the expected value, then the values of x are positively autocorrelated, whereas if Iobserved < Iexpected, this will indicate negative autocorrelation.


A list containing the elements:observedthe computed Moran's I.expectedthe expected value of I under the null hypothesis.sdthe standard deviation of I under the null hypothesis.p.valuethe P-value of the test of the null hypothesis against the alternative hypothesis specified in alternative.


Gittleman, J. L. and Kot, M. (1990) Adaptation: statistics and a null model for estimating phylogenetic effects. Systematic Zoology, 39, 227--241.

See Also


tr <- rtree(30)
x <- rnorm(30)
## weights w[i,j] = 1/d[i,j]:
w <- 1/cophenetic(tr)
## set the diagonal w[i,i] = 0 (instead of Inf...):
diag(w) <- 0
Moran.I(x, w)
Moran.I(x, w, alt = "l")
Moran.I(x, w, alt = "g")
Moran.I(x, w, scaled = TRUE) # usualy the same
Documentation reproduced from package ape, version 3.0-2, License: GPL (>= 2)

Community examples at Aug 30, 2018 ape v5.1

x = rnorm(30) Moran.I(x, w)