R 的 lmer 备忘单

机器算法验证 r 混合模式 随机效应模型 固定效应模型 lme4-nlme
2022-01-22 11:37:32

这个论坛上有很多关于使用lmer.

我认为将所有信息集中在一个地方会很棒。有几个问题要开始:

  1. 如何指定多个级别,其中一个组嵌套在另一个组中:是它(1|group1:group2)还是(1+group1|group2)
  2. (~1 + ....)(1 | ...)有什么区别(0 | ...)
  3. 如何指定组级交互?
3个回答

(~1 +....) 和 (1 | ...) 和 (0 | ...) 等有什么区别?

假设您有变量 V1 由分类变量 V2 预测,它被视为随机效应,连续变量 V3 被视为线性固定效应。使用 lmer 语法,最简单的模型(M1)是:

V1 ~ (1|V2) + V3

该模型将估计:

P1:全局拦截

P2: V2 的随机效应截距(即对于 V2 的每个级别,该级别的截距与全局截距的偏差)

P3:对 V3 的影响(斜率)的单一全局估计

下一个最复杂的模型 (M2) 是:

V1 ~ (1|V2) + V3 + (0+V3|V2)

该模型估计来自 M1 的所有参数,但还会额外估计:

P4: V3 在 V2 的每个级别内的影响(更具体地说,给定级别内的 V3 效果偏离 V3 的全局效果的程度),同时在跨级别的截距偏差和 V3 效果偏差之间强制为零相关性V2 的

最后一个最复杂的模型(M3)放宽了后一个限制:

V1 ~ (1+V3|V2) + V3

其中来自 M2 的所有参数都被估计,同时允许 V2 水平内的截距偏差和 V3 效应偏差之间存在相关性。因此,在 M3 中,估计了一个附加参数:

P5:跨 V2 水平的截距偏差和 V3 偏差之间的相关性

通常会计算 M2 和 M3 等模型对,然后进行比较以评估固定效应(包括全局截距)之间相关性的证据。

现在考虑添加另一个固定效应预测器 V4。该模型:

V1 ~ (1+V3*V4|V2) + V3*V4

估计:

P1:全局拦截

P2:对 V3 影响的单一全局估计

P3:对 V4 影响的单一全局估计

P4:对 V3 和 V4 之间相互作用的单一全局估计

P5:在 V2 的每个级别中,截距与P1的偏差

P6: V3 效果与P2在 V2 的每个级别中的偏差

P7: V4 效果与V2 各级别P3的偏差

P8: V3-by-V4 交互在 V2 的每个级别中与P4的偏差

P9跨 V2 水平的P5P6之间的相关性

P10 P5P7跨 V2 水平的相关性

P11 P5P8跨 V2 水平的相关性

P12 P6P7跨 V2 水平的相关性

P13 P6P8跨 V2 水平的相关性

P14 P7P8跨 V2 水平的相关性

,参数太多了!我什至懒得列出模型估计的方差参数。更重要的是,如果您有一个超过 2 个级别的分类变量,您希望将其建模为固定效应,而不是该变量的单个效应,您将始终估计 k-1 个效应(其中 k 是水平数) ,从而进一步扩大模型估计的参数数量。

如另一个答案所述,一般技巧是公式遵循形式dependent ~ independent | groupinggrouping通常是一个随机因素,您可以包含没有任何分组的固定因素,并且您可以拥有没有任何固定因素的其他随机因素(仅截距模型)。+因子之间的 A表示没有交互作用,a*表示交互作用。

对于随机因素,您有三个基本变量:

  1. 仅按随机因子截取:(1 | random.factor)
  2. 仅按随机因子的斜率:(0 + fixed.factor | random.factor)
  3. 随机因子的截距和斜率:(1 + fixed.factor | random.factor)

请注意,变体 3 的斜率和截距在同一分组中计算,即同时计算。如果我们想要独立计算斜率和截距,即两者之间没有任何假设的相关性,我们需要第四个变体:

  • 通过随机因子分别截取和倾斜:(1 | random.factor) + (0 + fixed.factor | random.factor)另一种写法是使用双杠表示法fixed.factor + (fixed.factor || random.factor)

在对这个问题的另一个回答中也有一个很好的总结,你应该看看。

如果你想深入研究数学,Barr 等人。(2013)lmer在他们的表 1 中很好地总结了语法,在这里进行了调整以满足无表降价的约束。那篇论文处理的是心理语言学数据,所以两个随机效应是SubjectItem

模型和等效lme4公式语法:

    • Ysi=β0+β1Xi+esi
    • 不适用(不是混合效应模型)
    • Ysi=β0+S0s+β1Xi+esi
    • Y ∼ X+(1∣Subject)
    • Ysi=β0+S0s+(β1+S1s)Xi+esi
    • Y ∼ X+(1 + X∣Subject)
    • Ysi=β0+S0s+I0i+(β1+S1s)Xi+esi
    • Y ∼ X+(1 + X∣Subject)+(1∣Item)
    • Ysi=β0+S0s+I0i+β1Xi+esi
    • Y ∼ X+(1∣Subject)+(1∣Item)
    • 如 (4),但 ,独立 S0sS1s
    • Y ∼ X+(1∣Subject)+(0 + X∣ Subject)+(1∣Item)
    • Ysi=β0+I0i+(β1+S1s)Xi+esi
    • Y ∼ X+(0 + X∣Subject)+(1∣Item)

参考:

Barr、Dale J、R. Levy、C. Scheepers 和 HJ Tily(2013 年)。验证性假设检验的随机效应结构:保持最大记忆与语言杂志,68:255-278。

|符号表示混合方法中的分组因素。

根据皮涅罗和贝茨:

...该公式还指定一个响应,并且在可用时指定一个主要协变量它被给出为

response ~ primary | grouping

其中response是响应primary的表达式, 是主协变量grouping的表达式, 是分组因子的表达式。

根据您在 中用于执行混合方法分析的方法R,您可能需要创建一个groupedData对象才能在分析中使用分组(请参阅nlme包了解详细信息,lme4似乎不需要这个)。我无法谈论您指定lmer模型语句的方式,因为我不知道您的数据。然而,(1|foo)从我所看到的情况来看,模型线中有多个是不寻常的。你想建模什么?