考虑模型中的空间自相关

Posted

技术标签:

【中文标题】考虑模型中的空间自相关【英文标题】:Accounting for Spatial Autocorrelation in Model 【发布时间】:2021-06-30 21:10:57 【问题描述】:

我正在尝试在 R 中的模型中考虑空间自相关。每个观测值都是我拥有平均纬度和经度的国家/地区。以下是一些示例数据:

country <- c("IQ", "MX", "IN", "PY")
long <- c(43.94511, -94.87018, 78.10349, -59.15377)
lat <- c(33.9415073, 18.2283975, 23.8462264, -23.3900255)
Pathogen <- c(10.937891, 13.326284, 12.472374, 12.541716)
Answer.values <- c(0, 0, 1, 0)

data <- data.frame(country, long, lat, Pathogen, Answer.values)

我知道空间自相关是一个问题(Moran 的 i 在整个数据集中很重要)。这是我正在测试的模型(答案值(0/1 变量)~病原体流行率(连续变量))。

model <- glm(Answer.values ~ Pathogen,
             na.action = na.omit,
             data = data,
             family = "binomial")

我如何解释与这样的数据结构的空间自相关?

【问题讨论】:

【参考方案1】:

对此有很多可能的答案。一种简单(ish)的方法是使用mgcv::gam() 添加空间平滑器。您的大部分模型将保持不变:

library(mgcv)
gam(Answer.values ~ Pathogen +s([something]),
    family="binomial",
    data=data)

其中s([something]) 是某种形式的平滑空间项。三种可能/合理的选择是:

一个球面样条 (?mgcv::smooth.construct.sos.smooth.spec),它以 lat/long 作为输入;如果 (1) 您拥有地球表面大部分区域的数据(因此构建 2D 平面 空间平滑的平滑器不太合理),这将很有用; (2) 您想以连续的方式计算位置之间的距离 马尔可夫随机场 (?mgcv::smooth.construct.mrf.smooth.spec)。这本质上是离散的 1 阶自回归结构的空间模拟(即,国家直接仅与其直接邻国相关,但您可以选择对其进行定义)。为了做到这一点,您必须以某种方式提出一个 neighbourhood list(即国家列表,其中元素是与原始国家相邻的国家列表)。您可以随心所欲地执行此操作,例如通过在地理上找到最近的邻居。 (查看 R 中空间统计/空间数据分析的一些介绍。)(另一方面,如果您正在测试 Moran's I,那么您可能已经想出了一些方法来识别一阶邻居......) 如果您愿意将 lat/long 视为 2D 平面中的坐标,那么您有很多平滑基础的选择,例如?mgcv::smooth.construct.gp.smooth.spec高斯过程平滑器,其中包括大多数标准空间自相关模型作为特例)

helpful link 用于快速了解 R 中的 GAM ...

【讨论】:

这很有帮助!我还需要这门 GAM 课程的帮助来了解 GAM 的基础知识:noamross.github.io/gams-in-r-course

以上是关于考虑模型中的空间自相关的主要内容,如果未能解决你的问题,请参考以下文章

白话空间统计之:空间自相关

如何将自定义函数加载到 R 中的 foreach 循环中?

使用自相关和 python 生成空间相关的统计噪声

向量空间模型(Vector Space Model)

UnityShader中的语义相关

ElasticSearch探索之路权重计算与文本分析:布尔模型TF/IDF向量空间模型分析与分析器