首页 > 解决方案 > 如何处理 GLMM 中的空间自相关残差

问题描述

我正在分析捕食者在哪里遇到潜在的猎物。我的响应数据是二进制的,遇到位置 = 1,随机位置 = 0,我的自变量是连续的,但已重新调整。

我最初使用的是 GLM 结构

glm_global <- glm(Encounter ~ Dist_water_cs+coverMN_cs+I(coverMN_cs^2)+
                  Prey_bio_stand_cs+Prey_freq_stand_cs+Dist_centre_cs,
                  data=Data_scaled, family=binomial)

但意识到这未能解释数据中潜在的空间自相关(样条相关图显示高达~1000m的高残差相关)。

Correlog_glm_global <- spline.correlog (x = Data_scaled[, "Y"],
                                        y = Data_scaled[, "X"],
                                        z = residuals(glm_global,
                                        type = "pearson"), xmax = 1000)

我试图通过以捕食者群体作为随机效应实施 GLMM(在 lme4 中)来解释这一点。

glmm_global <- glmer(Encounter ~ Dist_water_cs+coverMN_cs+I(coverMN_cs^2)+
                     Prey_bio_stand_cs+Prey_freq_stand_cs+Dist_centre_cs+(1|Group),
                     data=Data_scaled, family=binomial)

当将全局 GLMM (1144.7) 的 AIC 与全局 GLM (1149.2) 进行比较时,我得到的 Delta AIC 值 >2,这表明 GLMM 更适合数据。但是,我仍然在残差中得到基本相同的相关性,如 GLMM 模型的样条相关图所示)。

Correlog_glmm_global <- spline.correlog (x = Data_scaled[, "Y"],
                                         y = Data_scaled[, "X"],
                                         z = residuals(glmm_global,
                                         type = "pearson"), xmax = 10000)

我还尝试将所有位置的 Lat*Long 明确包括为自变量,但结果是相同的。在阅读了选项之后,我尝试在“geepack”中运行广义估计方程(GEE),认为这将使我在明确定义相关结构(如在正态分布响应数据的 GLS 模型中)方面更加灵活,而不是仅限于复合对称(这是我们用 GLMM 得到的)。然而,我意识到我的数据仍然需要使用复合对称(或在 geepack 中“可交换”),因为我在数据中没有时间序列。当我运行全局模型时

gee_global <- geeglm(Encounter ~ Dist_water_cs+coverMN_cs+I(coverMN_cs^2)+
                     Prey_bio_stand_cs+Prey_freq_stand_cs+Dist_centre_cs,
                     id=Pride, corstr="exchangeable", data=Data_scaled, family=binomial)

(使用缩放或未缩放的数据没有区别,因此这是使用缩放数据来保持一致性)突然间我的协变量都没有显着性。但是,作为 GEE 建模的新手,我不知道 a)这是否是该数据的有效方法,或者 b)这是否甚至考虑了自始至终明显的残余自相关。

如果我意识到 GLMM 模型(以捕食者群体作为随机效应)仍然显示空间自相关 Pearson 残差(高达 ~1000m),2)如果确实如此,我将非常感谢关于 1)的一些建设性反馈GEE 模型在这一点上是有意义的,3)如果我在 GEE 建模中遗漏了一些东西。非常感谢。

标签: rgeospatialdata-modeling

解决方案


可以通过多种方式在模型中考虑空间自相关。我将限制我对处理随机效应的 R 主包的回应。

首先,您可以使用包nlme,并在残差中指定相关结构(许多可用:corGaus、corLin、CorSpher ...)。您应该尝试其中的许多并保持最佳模型。在这种情况下,空间自相关被认为是连续的并且可以通过全局函数来近似。

其次,您可以使用包mgcv,并为您的模型添加二元样条曲线(空间坐标)。通过这种方式,您可以捕获空间模式,甚至对其进行映射。从严格意义上讲,这种方法没有考虑空间自相关,但可以解决问题。如果在您的情况下空间是离散的,您可以使用平滑的随机马尔科夫场。这个网站非常有助于找到一些例子:https ://www.fromthebottomoftheheap.net

第三,您可以使用brms包。这允许您在残差(CAR 和 SAR)中指定具有其他相关结构的非常复杂的模型。该包使用贝叶斯方法。

我希望这会有所帮助。祝你好运


推荐阅读