lig*_*txx 4 r correlation spdep
我有一个点列表,我想使用Moran的I检查自相关,并将感兴趣的区域除以4 x 4个样本.
现在我在Google上找到的每个例子(例如http://www.ats.ucla.edu/stat/r/faq/morans_i.htm)都使用某种测量值作为Moran I函数的第一个输入,无论哪个使用库(我查看了猿和spdep包).
但是,我所拥有的只是我想要检查相关性的分数.
问题是,听起来有趣(或悲伤),我不知道我在这里做什么.我不是一个(空间)统计人员,我想知道的是,如果使用Moran的I分散,聚集或ramdom的点集合.
我的方法是否正确?如果不是在哪里,我做错了什么?
谢谢
这是我到目前为止:
# download, install and load the spatstat package (http://www.spatstat.org/)
install.packages("spatstat")
library(spatstat)
# Download, install and run the ape package (http://cran.r-project.org/web/packages/ape/)
install.packages("ape")
library(ape)
# Define points
x <- c(3.4, 7.3, 6.3, 7.7, 5.2, 0.3, 6.8, 7.5, 5.4, 6.1, 5.9, 3.1, 5.2, 1.4, 5.6, 0.3)
y <- c(2.2, 0.4, 0.8, 6.6, 5.6, 2.5, 7.6, 0.3, 3.5, 3.1, 6.1, 6.4, 1.5, 3.9, 3.6, 5.2)
# Store the coordinates as a matrix
coords <- as.matrix(cbind(x, y))
# Store the points as two-dimensional point pattern (ppp) object (ranging from 0 to 8 on both axis)
coords.ppp <- as.ppp(coords, c(0, 8, 0, 8))
# Quadrat count
coords.quadrat <- quadratcount(coords.ppp, 4)
# Store the Quadrat counts as vector
coords.quadrat.vector <- as.vector(coords.quadrat)
# Replace any value > 1 with 1
coords.quadrat.binary <- ifelse(coords.quadrat.vector > 1, 1, coords.quadrat.vector)
# Moran's I
# Generate the distance matrix (euclidean distances between points)
coords.dists <- as.matrix(dist(coords))
# Take the inverse of the matrix
coords.dists.inv <- 1/coords.dists
# replace the diagonal entries (Inf) with zeroes
diag(coords.dists.inv) <- 0
writeLines("Moran's I:")
print(Moran.I(coords.quadrat.binary, coords.dists.inv))
writeLines("")
Run Code Online (Sandbox Code Playgroud)
有几种方法可以做到这一点.我在R-sig-geo邮件列表(你可能想要指导这个查询)中非常积极地使用R来分析空间数据,这是一个很好的(免费)课程.您基本上想要评估您的点模式是否完全是空间随机的.
您可以绘制观察点的最近邻距离的经验累积分布,然后将其与ecdf观察窗口中随机生成的完全空间随机点模式集进行比较:
# The data
coords.ppp <- ppp( x , y , xrange = c(0, 8) , yrange = c(0, 8) )
# Number of points
n <- coords.ppp$n
# We want to generate completely spatially random point patterns to compare against the observed
ex <- expression( runifpoint( n , win = owin(c(0,8),c(0,8))))
# Reproducible simulation
set.seed(1)
# Compute a simulation envelope using Gest, which estimates the nearest neighbour distance distribution function G(r)
res <- envelope( coords.ppp , Gest , nsim = 99, simulate = ex ,verbose = FALSE, savefuns = TRUE )
# Plot
plot(res)
Run Code Online (Sandbox Code Playgroud)

观察到的最近邻分布完全包含在随机生成的点图案的ecdf的灰色包络内.我的结论是你有一个完全空间随机的点模式,但需要注意的是你没有多少点.
另外,在黑色观察线低于灰色包络线的情况下,我们可以推断出点比机会预期的更远,反之亦然.