R语言检讨空间自相关Moran’s I和运行SAR模子
在空间取样中位置越靠近的点相应的变量也大概越临近,这种现象称为空间自相关。空间自相关可以或许改变人们对某些事物原因的判定。举例来说,一个所在物种数高,邻近的点物种数也相应得会高些,但这并不必然是由于两个所在的情况条件都十分优越,而纯粹是由于两个所在之间在空间上更为靠近。点与点之间空间干系的依赖性使得各点之间数据并不是独立的。
为此,需要从空间干系检讨空间自相关是否存在。空间自相关的检讨,用Moran’s I 暗示。 Moran’s I 与Pearson相干系数的算法雷同,不外其计较时相关水平思量的是点与点自己。在R的ape措施包中,有关于Moran’s I的具体的说明。为了检讨Moran’s I的显著性,空间统计学家举动Randomization的要领,得到Moran’s I的零漫衍,继而求的各间隔段中的Moran’s I是否显著偏离于零漫衍。
为了只管去除空间自相关的影响,统计学家开拓出了空间自回归模子,SAR(Spatial Auto Regressive Model),该模子在R的spdep中可以或许较为利便的实现。虽然,也尚有浩瀚的措施包,如宏生态学数据阐明的SAM措施包等。
一下是在spdep措施包中如何计较和检讨Moran’s I的具体进程,以及挪用SAR模子,举办相应的统计揣度等。但愿对感乐趣的同行有所辅佐。
##################
library(spdep)
## 为了检讨ntaxa是否具有空间自相关
setwd(“C:/one/”)
test0 <- read.csv(“test.csv”, header = TRUE, row.names = 1)
ntaxa <- test0$ntaxa
## 将test数据集转换成Spatial名目
test <- test0[,c(1,2)]
sptest <- SpatialPoints(test, proj4string = CRS(“+proj=longlat +datum=WGS84”))
## 计较每个点最近的几个neighbour(这里k = 1,暗示只计较一个的)
nbk1 <- knn2nb(knearneigh(sptest, k = 5, longlat = TRUE))
## 将nbk1转换成 spatial weight linkage object 工具
snbk1 <- make.sym.nb(nbk1)
### n.comp.nb() finds the number of disjoint connected subgraphs
### in the graph depicted by nb.obj – a spatial neighbours list object.
### 查察每个点不相接的相邻点数量
n.comp.nb(snbk1)$nc
### 查察各点链接环境
plot(nb2listw(snbk1), cbind(test$longitude, test$latitude))
### Moran’s Test检讨该数据集是否存在显著的空间自相关
### Moran’s I test under randomisation
moran.test(ntaxa, nb2listw(snbk1))
### Moran’s I Correlograms
### par(mfrow = c(1, 3))
ntaxa.Moron.I <- sp.correlogram(snbk1, ntaxa, order=6, method=“I”, zero.policy = TRUE)
plot(ntaxa.Moron.I)
### SAR model
### Saddlepoint approximation for global Moran’s I (Barndorff-Nielsen formula)
lm.morantest.sad(lm(ntaxa~1),nb2listw(snbk1))
## sacsarlm
COL.sacW.eig <- sacsarlm(ntaxa ~ Pre + Elev + factor(Time) + factor(Geology), data = test0, nb2listw(snbk1, style=“W”))
summary(COL.sacW.eig, correlation=TRUE)