This function computes Moran's I autocorrelation coefficient of
`x`

giving a matrix of weights using the method described by
Gittleman and Kot (1990).

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

x

a numeric vector.

weight

a matrix of weights.

scaled

a logical indicating whether the coefficient should be
scaled so that it varies between -1 and +1 (default to
`FALSE`

).

na.rm

a logical indicating whether missing values should be removed.

alternative

a character string specifying the alternative hypothesis that is tested against the null hypothesis of no phylogenetic correlation; must be of one "two.sided", "less", or "greater", or any unambiguous abbrevation of these.

A list containing the elements:

the computed Moran's I.

the expected value of I under the null hypothesis.

the standard deviation of I under the null hypothesis.

the P-value of the test of the null hypothesis against
the alternative hypothesis specified in `alternative`

.

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.

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

# NOT RUN { 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 # }