莫兰在这里发生了什么?

问题描述

抱歉问了一个很愚蠢的问题。我正在计算在我的研究区域采集的一组样本的全局空间自相关。我使用 Moran's I 作为统计数据,并使用 R 语言中的几个包来比较输出。试图理解到目前为止我得到的输出,我生成随机点(我希望我的值为 ~0)并发现一些让我感到困惑的东西。这是一个示例:

rm(list = ls())
library(raster)
library(elsa)
library(ape)
library(geodist)
library(spdep)

# Some random points within my study area created through package "raptr"
lon <-  c(-50.57931,-53.36264,-46.58764,-55.08764,-67.13764,-52.36264,-49.50431,-70.06264,-46.13764,-63.62931,-49.42097,-71.91264,-64.65431,-48.50431,-62.36264,-45.68764,-48.07097,-45.42097,-46.02931,-34.96264,-54.67097,-67.20431,-46.62097,-49.52097,-44.85431,-52.76264,-55.41264,-65.10431,-56.68764,-60.57097)
lat <- c(-1.9376392,-3.3626392,-7.3959726,-3.8126392,-6.0626392,-22.2209725,-15.0793059,-10.0793059,-19.2459725,-2.5626392,-28.4459725,-6.5043059,-7.3043059,-14.2376392,-0.6543059,-6.9376392,-16.4793059,-6.5626392,-11.6959725,-8.0793059,-10.6626392,-3.0626392,-6.2793059,-14.8876392,-13.7043059,-11.5959725,-16.5709725,0.6790274,-20.2293058,-9.8709725)
# An some values corresponding to such coordinates in my study area
vals <- c(28.16135,27.53603,27.18892,27.56190,27.27579,24.38708,25.72878,26.08010,21.99278,27.80536,19.12293,27.13450,27.50768,25.41770,28.08219,27.02981,22.80150,26.62342,25.39971,26.46153,26.33892,27.57398,27.20400,25.86167,24.77435,26.72009,26.84670,27.00430,24.85161,26.68650)
# let's set them in a database
dta <- data.frame(lon = lon,lat = lat,vals = vals)
# To spatial points
coordinates(dta) <- ~lon + lat
# Let's calculate distances
dists <- geodist(dta@coords,sequential = FALSE,paired = T,measure = "haversine")

# Calculating global Moran's I using package "ape"
d.inv <- 1/dists
diag(d.inv) <- 0
ape::Moran.I(dta$vals,d.inv)
**$observed
[1] 0.1655539

$expected
[1] -0.03448276

$sd
[1] 0.05077857

$p.value
[1] 8.168869e-05**

# Calculating global Moran's I using package "spdep"
S.dist  <-  dnearneigh(dta,max(dists)/1000)  
lw <- nb2listw(S.dist,style="W",zero.policy=T) 
spdep::moran.mc(dta@data$vals,lw,nsim=999,zero.policy=T)
        **Monte-Carlo simulation of Moran I

data:  dta@data$vals 
weights: lw  
number of simulations + 1: 1000 

statistic = -0.034483,observed rank = 948.5,p-value = 0.0515
alternative hypothesis: greater**

# Calculating global Moran's I using package "elsa"
elsa::moran(dta,d1 =0,d2 = max(dists)/1000)
**[1] -0.03478933**

结果以粗体显示。我的担忧是 (1) ape 的输出表明确实存在空间关联(即使这些点是随机获取的),因为观察到的值非常高(我预计值要低得多)并且在统计上与预期值不同; (2) spdep 和 elsa 都提供了预期值,而不是观察到的值。任何人都可以解释为什么我应该使用“预期”而不是“观察到的”值?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)