The function `nonnormmoran`

is used to detect spatial autocorrelation in
the residuals *u* from the least squares model *Y=beta X+u*.
It calculates Moran's I statistic of the residuals based on the gaussian asymptotic distribution and give a p-value associated to the test of spatial autocorrelation (gaussian version).

1 | ```
nonormmoran(y, x, W)
``` |

`y` |
vector of size n of dependent variable |

`x` |
matrix |

`W` |
spatial weight matrix |

W is supposed standartized :

*I=(n/s)frac(u'Wu)(u'u)*

*I sim N(E(I),var(I))*

let *M=(I-X(X'X)^(-1)X')*

*E(I)=(n/s)frac(tr(MW))(n-k)*

*d=frac(n-p)(n+p+2)*

*V(I)=(n/s)^2[tr(MWMW')+tr(MW)^2+(tr(MW))^2]/d-E(I)^2*

*Z_I=frac(I-E(I))(v(I)^(1/2))*

When W is row-normalised, *s=n* else *s* is the number of nonzero links

a list with `nobs`

is the number of observations,
`nvar`

, the number of explanatory variables, `morani`

is the Moran's I statistic estimate,
`imean`

is E(I), `ivar`

is var(I), `istat`

is the normalized Moran's I statistic
(corresponding to *Z_i*), and `prob`

the associated p-value.

This function is closed to the function `lm.morantest`

included in the spdep package.
nonnormmoran is less confortable to use because it didn't take into account S4 classes.

Translated into R from Jim Lessage's *Spatial Econometrics Toolbox*, http://www.spatial-econometrics.com/

Thibault Laurent, Anne Ruiz-Gazen, Christine Thomas-Agnan (2012), GeoXp: An R Package for Exploratory Spatial Data Analysis. *Journal of Statistical Software*, 47(2), 1-23.

`moranplotmap`

,`neighbourmap`

,`makeneighborsw`

,`normw`

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ```
###
# data baltimore
data(baltimore)
# a spatial weight matrix constructed in the matrix format
W <- makeneighborsw(cbind(baltimore$X,baltimore$Y),method="neighbor",4)
# when W is not row-normalised ...
nonormmoran(baltimore$PRICE,cbind(rep(1,nrow(baltimore)),baltimore[,14:15]),W)
# when W is row_normalised ...
nonormmoran(baltimore$PRICE,cbind(rep(1,nrow(baltimore)),baltimore[,14:15]),normw(W))
# If we compare to the function lm.morantest
baltimore.lm<-lm(PRICE~LOTSZ+SQFT,data=baltimore)
lm.morantest(baltimore.lm, mat2listw(W))
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.