关于在 R 中为具有附加嵌套结构的重复测量数据指定线性混合模型的问题

机器算法验证 r 混合模式 重复测量 模型选择 lme4-nlme
2022-03-10 10:30:06

数据结构

> str(data)
 'data.frame':   6138 obs. of  10 variables:
 $ RT     : int  484 391 422 516 563 531 406 500 516 578 ...
 $ ASCORE : num  5.1 4 3.8 2.6 2.7 6.5 4.9 2.9 2.6 7.2 ...
 $ HSCORE : num  6 2.1 7.9 1 6.9 8.9 8.2 3.6 1.7 8.6 ...
 $ MVMNT  : Factor w/ 2 levels "_Withd","Appr": 2 2 1 1 2 1 2 1 1 2 ...
 $ STIM   : Factor w/ 123 levels " arti"," cele",..: 16 23 82 42 105 4 93 9 34 25 ...
 $ DRUG   : Factor w/ 2 levels "Inactive","Pharm": 1 1 1 1 1 1 1 1 1 1 ...
 $ FULLNSS: Factor w/ 2 levels "Fasted","Fed": 2 2 2 2 2 2 2 2 2 2 ...
 $ PATIENT: Factor w/ 25 levels "Subj01","Subj02",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ SESSION: Factor w/ 4 levels "Sess1","Sess2",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ TRIAL  : Factor w/ 6138 levels "T0001","T0002",..: 1 2 3 4 5 6 7 8 9 10 ...

完整的模特候选人

model.loaded.fit <- lmer(RT ~ ASCORE*HSCORE*MVMNT*DRUG*FULLNSS
                              + (1|PATIENT) + (1|SESSION), data, REML = TRUE)
  • 试验的反应时间聚集在会话中,而会话又聚集在患者中
  • 每个试验都可以通过 ASCORE 和 HSCORE 的两个连续协变量(范围在 1-9 之间)和运动响应(退出或接近)来表征
  • 会议的特点是药物摄入(安慰剂或活性药物)和饱腹感(禁食或进食前)

建模和 R 语法?

我正在尝试指定一个适当的完整模型,该模型具有加载的平均结构,可用作自上而下模型选择策略的起点。

具体问题:

  • 语法是否正确指定了聚类和随机效应?
  • 除了语法之外,这个模型是否适合上述主题内设计?
  • 完整模型应该指定固定效应的所有交互,还是只指定我真正感兴趣的交互?
  • 我没有在模型中包含 STIM 因子,它表征了试验中使用的特定刺激类型,但我不想以任何方式估计它——我是否应该指定它作为随机因子,因为它有 123 个级别并且很少每个刺激类型的数据点?
1个回答

我将依次回答您的每个问题。

语法是否正确指定了聚类和随机效应?

你在这里拟合的模型,用数学术语来说,就是模型

Yijk=Xijkβ+ηi+θij+εijk

在哪里

  • Yijk是在会话对个体的反应时间kji

  • Xijk是在会话期间对个体的预测向量(在您编写的模型中,这由所有主要效应和所有交互作用组成)。kji

  • ηi是人随机效应,它导致对同一人的观察之间产生相关性。是个体的会话的随机效应,是剩余误差项。iθijijεijk

  • β是回归系数向量。

第 14-15 页所述,此模型对于指定会话嵌套在个人中是正确的,您的描述就是这种情况。

除了语法之外,这个模型是否适合上述主题内设计?

我认为这个模型是合理的,因为它确实尊重数据中的嵌套结构,并且我认为个体和会话被合理地设想为随机效应,正如这个模型所断言的那样。您应该使用散点图等查看预测变量和响应之间的关系,以确保正确指定线性预测变量 ( )。其他标准回归诊断也应该检查。Xijkβ

完整模型应该指定固定效应的所有交互,还是只指定我真正感兴趣的交互?

我认为从这样一个高度饱和的模型开始可能不是一个好主意,除非它在本质上有意义。正如我在评论中所说,这往往会过度拟合您的特定数据集,并可能使您的结果不那么具有普遍性。关于模型选择,如果您确实从完全饱和的模型开始并进行反向选择(此站点上的某些人有充分的理由反对),那么您必须确保尊重模型中的层次结构。也就是说,如果您从模型中消除了较低级别的交互,那么您还应该删除所有涉及该变量的较高级别的交互。有关这方面的更多讨论,请参阅链接的线程。

我没有在模型中包含 STIM 因子,它表征了试验中使用的特定刺激类型,但我不想以任何方式估计它——我是否应该指定它作为随机因子,因为它有 123 个级别并且很少每个刺激类型的数据点?

诚然,对应用程序一无所知(所以对它持保留态度),这听起来像是一个固定的效果,而不是随机的效果。也就是说,治疗类型听起来像是一个变量,它对应于平均反应的固定变化,而不是会在具有相同刺激类型的受试者之间引起相关性的东西。但是,它是一个 123 的水平因子,这使得进入模型变得很麻烦。我想我想知道您希望这会产生多大的影响。无论效果的大小如何,它都不会导致斜率估计出现偏差,因为这是一个线性模型,但将其排除在外可能会使您的标准误差大于其他情况。