用于纵向设计的 Lmer

Lmer for longitudinal design

我有一个纵向数据集,其中每个主题都有以下变量:

IV:3 个因素(factorAfactorBfactorCfactorD),每个因素在干预开始和结束时测量两次。

DV:一个结果变量(行为),也在干预开始和结束时测量两次。

我想创建一个模型,使用 因子 A、因子 B、因子 C、因子 D 的变化(干预从开始到结束的变化)来预测 行为改变(再次从头到尾)。

我想使用 factorAfactorBfactorCfactorD(从干预前到 post 的增量值)并使用这些增量值来预测 D1 的增量值。我还想对每个因子(ABCD)的绝对值进行协变(例如,仅使用对每个因素进行干预)以确保我考虑到这些 IV 的绝对值(而不是变化)可能对 DV 产生的变化。

这是我的数据集: enter image description here

到目前为止,这是我的模型:

Model <- lmer(Delta_behavior ~ Absolute_factorA + Absolute_factorB + 
              Absolute_factorC + Absolute_factorD + Delta_factorA + 
              Delta_factorB + Delta_factorC + Delta_factorD + 
              (1|Subject),a)

我认为我做错了什么,因为我得到这个错误:

Error: number of levels of each grouping factor must be < number of observations

我做错了什么?数据集的结构是否奇怪?我不应该使用增量值吗?我应该使用另一个测试(不是 lmer)吗?

因为您已将数据减少到每个受试者的单个观察值,所以您不需要使用 multi-level/mixed 模型。 lmer 给你一个错误的原因是在这种情况下 between-subject 方差与残差方差混淆。

您或许可以继续使用线性模型 (lm) 进行此分析。

更多技术细节

i 个观测值的分布方程类似于 [fixed-effect predictors] + eps(subject(i)) + eps(i),其中 eps(subject(i)) 是与第 i 个相关的主体的正态误差项观察,eps(i) 是与第 i 个观察相关的正态残差。如果每个受试者只有一个观察值,那么每个观察值都有两个唯一的误差项。 V1 和 V2 的均值和方差为零的两个正态变量之和也是均值为零且方差为 V1+V2 的正态变量...因此 V1 和 V2 无法共同识别。如果你真的想,你可以使用 lmerControl 来覆盖错误; lmer 将 return V1V2 的任意组合估计总方差。

有一个类似的示例 here