Moran's I test for spatial autocorrelation in residuals from an estimated linear model (lm()
). The helper function listw2U()
constructs a weights list object corresponding to the sparse matrix 1/2 (W + W')
1 2 3  lm.morantest(model, listw, zero.policy=NULL, alternative = "greater",
spChk=NULL, resfun=weighted.residuals, naSubset=TRUE)
listw2U(listw)

model 
an object of class 
listw 
a 
zero.policy 
default NULL, use global option value; if TRUE assign zero to the lagged value of zones without neighbours, if FALSE assign NA 
alternative 
a character string specifying the alternative hypothesis, must be one of "greater" (default), "less" or "two.sided". 
spChk 
should the data vector names be checked against the spatial objects for identity integrity, TRUE, or FALSE, default NULL to use 
resfun 
default: weighted.residuals; the function to be used to extract residuals from the 
naSubset 
default TRUE to subset listw object for omitted observations in model object (this is a change from earlier behaviour, when the 
A list with class htest
containing the following components:
statistic 
the value of the standard deviate of Moran's I. 
p.value 
the pvalue of the test. 
estimate 
the value of the observed Moran's I, its expectation and variance under the method assumption. 
alternative 
a character string describing the alternative hypothesis. 
method 
a character string giving the method used. 
data.name 
a character string giving the name(s) of the data. 
Roger Bivand Roger.Bivand@nhh.no
Cliff, A. D., Ord, J. K. 1981 Spatial processes, Pion, p. 203,
lm.LMtests
, lm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  data(oldcol)
oldcrime1.lm < lm(CRIME ~ 1, data = COL.OLD)
oldcrime.lm < lm(CRIME ~ HOVAL + INC, data = COL.OLD)
lm.morantest(oldcrime.lm, nb2listw(COL.nb, style="W"))
lm.LMtests(oldcrime.lm, nb2listw(COL.nb, style="W"))
lm.morantest(oldcrime.lm, nb2listw(COL.nb, style="S"))
lm.morantest(oldcrime1.lm, nb2listw(COL.nb, style="W"))
moran.test(COL.OLD$CRIME, nb2listw(COL.nb, style="W"),
randomisation=FALSE)
oldcrime.wlm < lm(CRIME ~ HOVAL + INC, data = COL.OLD,
weights = I(1/AREA_PL))
lm.morantest(oldcrime.wlm, nb2listw(COL.nb, style="W"),
resfun=weighted.residuals)
lm.morantest(oldcrime.wlm, nb2listw(COL.nb, style="W"),
resfun=rstudent)

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.