[R-sig-Geo] Strange R2 values from spatial durbin model
Defriez, Emma
e.defriez11 at imperial.ac.uk
Wed Apr 2 12:35:38 CEST 2014
Hi,
I am hoping someone might be able to help me. I have been fitting spatial models with spdep. The mixed model appears to best describe the spatial autocorrelation in the data and I am now trying to find the most parsimonious combination of variables. I have noticed that although the AIC and log likelihood values do change the Nagelkerke R2 remains essentially the same for all models, showing the biggest change when a different weight matrix is used. Below is a small summery table for 3 different models and 4 weight matrices. A single variable model with only var1 explains the same amount of variation as the full model which could be reasonable but a completely different single variable model (var6) still explains the same amount of variation which is very strange.
I realise that R2 is not used to determine the most appropriate model with this kind of modelling but it has raised alarm bells ,does this suggests that the model is misspecified? I don't know if I have made a mistake in my code somewhere that I cannot see.
weight formula AIC R2 LogLik
W chl~ var1+var2+var3+var4+var5+var6 -34554.06 0.8910829 17292.03
W chl~ var1 -33882.83 0.8886748 16946.41
W chl~ var6 -33581.47 0.8876084 16795.74
S chl~ var1+var2+var3+var4+var5+var6 -28317.57 0.8673353 14174.79
S chl~ var1 -26324.23 0.8586102 13168.12
S chl~ var6 -24746.26 0.8513727 12379.13
B chl~ var1+var2+var3+var4+var5+var6 -24368.85 0.8496826 12200.43
B chl~ var1 -21194.94 0.8337000 10603.47
B chl~ var6 -19051.44 0.8220316 9531.72
C chl~ var1+var2+var3+var4+var5+var6 -24314.47 0.8494238 12173.24
C chl~ var1 -20918.91 0.8322414 10465.45
C chl~ var6 -18839.42 0.8208338 9425.71
#############################################################
### Example of code for creating models, weight style and ols formula varied
#############################################################
coords<-cbind(longs,lats)
coords<-as.matrix(coords)
#######################
#Define neighbourhood
nn<-dnearneigh(coords,0,150,longlat = TRUE)
#get inverse distances so further points have less influence
dists <- nbdists(nn, coords)
idw <- lapply(dists, function(x) 1/(x^2))
#Spatial weights
nnW<-nb2listw(nn, glist=idw, style=W,zero.policy=TRUE)
#------------------------------------------- model ----------------------------------------------------------#
ols<-lm(as.formula(chl~ var1+var2+var3+var4+var5+var6))
hW <- as(as_dgRMatrix_listw(nnW), "CsparseMatrix")
set.seed(123456)
htr <- trW(hW, m = 24)
mod<-lagsarlm(formula=formula(ols),listw=nnW, na.action=na.omit, type="mixed", method='LU',
tol.solve=1e-16, zero.policy=TRUE, tr=htr)
sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] boot_1.3-9 spdep_0.5-68 Matrix_1.1-0 sp_1.0-14
loaded via a namespace (and not attached):
[1] coda_0.16-1 deldir_0.1-1 grid_3.0.2 lattice_0.20-24
[5] LearnBayes_2.12 MASS_7.3-29 nlme_3.1-111 splines_3.0.2
Thanks,
Emma
PhD student
Faculty of Natural Sciences, Department of Life Sciences
Imperial College London
More information about the R-sig-Geo
mailing list