我需要多个随机斜率吗?

机器算法验证 r 混合模式 咕噜咕噜 lme4-nlme
2022-04-12 04:10:31

在 R 中构建 GLMM 时,如果我“看到”多个连续变量的斜率不同,我是否需要多个随机斜率?

就我而言,我正在分析S在南部非洲的几个大面积单位(生物群落)中发现的植物物种数量( )。我有几个连续的预测变量,主要是气候参数。为此,我使用这样的 (G)LMM 公式:

myModel <- lmer(S ~ X1 + X2 + X3 + (1|biome), ...) # random intercept model

现在,我看到生物群系的坡度差异很大:

S1000 跨生物群落单元的斜率差异示例图

因此:我会将我的公式调整为:

myModel <- lmer(S ~ X1 + X2 + X3 + (X1|biome), ...) # random intercept - slope model

但是,如果我现在也看到了这一点X2并且X3变量之间的斜率不同,我的模型应该看起来像这样吗?

myModel <- lmer(S ~ X1 + X2 + X3 + (X1|biome) + (X2|biome) + (X3|biome), ...) 
# random intercept - (multiple) slope model

我问这个问题,因为我根本不确定最后一个公式是否使模型过于复杂,或者在统计意义上可能不是“允许”的,简而言之:我只是“不确定”并且我没有找到任何示例估计不止一个斜率。

1个回答

这确实有道理,但是在设置模型时您必须小心一点。你编写模型的方式,

 S ~ X1 + X2 + X3 + (X1|biome) + (X2|biome) + (X3|biome)

它隐含地将截距项与每个随机效应斜率结合在一起。你可以把它写成

 S ~ X1 + X2 + X3 + (1|biome) + (X1+0|biome) + (X2+0|biome) + (X3+0|biome)

这将分别估计截距和所有斜率。(按照Schielzeth 2010的建议将协变量居中可能是个好主意……)

或者,原则上(但请参阅下面的警告)您可以使用

 S ~ X1 + X2 + X3 + (X1+X2+X3|biome)

这将适合斜率之间的相关性。

然而,更根本的是,我会考虑(推荐?)将生物群落之间的变化拟合为固定效应而不是随机效应,

 S ~ (X1+X2+X3)*biome

(那么你可以只使用lm而不是lmer)。因为您只有 6 个生物群落的样本,您将(X1+X2+X3|biome)仅从 6 个参数估计随机效应方差(在 的情况下,一个 4x4 随机效应方差-协方差矩阵)。

还有一条评论:从您的数据来看,您似乎有多个具有相同协变量(温度范围)值的观测值,这表明您从同一个站点获得了多个观测值。我会考虑将网站合并为随机效果...