moran function

Compute Moran's I

Compute Moran's I

A simple function to compute Moran's I, called by moran.test and moran.mc; [REMOVE_ME]I=ni=1nj=1nwiji=1nj=1nwij(xixˉ)(xjxˉ)i=1n(xixˉ)2I=(nsumisumjwij(xixbar)(xjxbar))/(S0sumi(xixbar)2)[REMOVEME2] I = \frac{n}{\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij}}\frac{\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij}(x_i-\bar{x})(x_j-\bar{x})}{\sum_{i=1}^{n}(x_i - \bar{x})^2}I = (n sum_i sum_j w_ij (x_i - xbar) (x_j - xbar)) / (S0 sum_i (x_i - xbar)^2) [REMOVE_ME_2]

Description

A simple function to compute Moran's I, called by moran.test and moran.mc;

I=ni=1nj=1nwiji=1nj=1nwij(xixˉ)(xjxˉ)i=1n(xixˉ)2I=(nsumisumjwij(xixbar)(xjxbar))/(S0sumi(xixbar)2) I = \frac{n}{\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij}}\frac{\sum_{i=1}^{n}\sum_{j=1}^{n}w_{ij}(x_i-\bar{x})(x_j-\bar{x})}{\sum_{i=1}^{n}(x_i - \bar{x})^2}I = (n sum_i sum_j w_ij (x_i - xbar) (x_j - xbar)) / (S0 sum_i (x_i - xbar)^2)
moran(x, listw, n, S0, zero.policy=attr(listw, "zero.policy"), NAOK=FALSE)

Arguments

  • x: a numeric vector the same length as the neighbours list in listw
  • listw: a listw object created for example by nb2listw
  • n: number of zones
  • S0: global sum of weights
  • zero.policy: default attr(listw, "zero.policy") as set when listw was created, if attribute not set, use global option value; if TRUE assign zero to the lagged value of zones without neighbours, if FALSE assign NA
  • NAOK: if 'TRUE' then any 'NA' or 'NaN' or 'Inf' values in x are passed on to the foreign function. If 'FALSE', the presence of 'NA' or 'NaN' or 'Inf' values is regarded as an error.

Returns

a list of - I: Moran's I

  • K: sample kurtosis of x

References

Cliff, A. D., Ord, J. K. 1981 Spatial processes, Pion, p. 17.

Author(s)

Roger Bivand Roger.Bivand@nhh.no

See Also

moran.test, moran.mc

Examples

data(oldcol) col.W <- nb2listw(COL.nb, style="W") crime <- COL.OLD$CRIME str(moran(crime, col.W, length(COL.nb), Szero(col.W))) is.na(crime) <- sample(1:length(crime), 10) str(moran(crime, col.W, length(COL.nb), Szero(col.W), NAOK=TRUE))