【发布时间】:2020-12-01 06:30:38
【问题描述】:
我正在寻找反馈,以确定如何正确指定随机效应以解释重复测量设计中的相关性,但具有多个相关级别(包括对于每个预测变量组合的纵向数据 )。结果是二元的,所以我将拟合一个逻辑混合模型。我打算使用lme4 包中的glmer() 函数。如果您想知道这些数据是如何产生的,一个例子来自眼动仪:人们的眼睛被“跟踪”了 30 秒,例如,在不同级别的预测器下,确定他们是否在看屏幕上的某个对象(因此是二元结果)。
研究设计(可以通过在R中处理下面“Dummy dataset”下的代码看到):
- 结果 (Binary_outcome) 是二进制的。
- 有重复测量:在每个预测变量组合中多次记录每个受试者的二元反应(有关结构,请参见下面的“虚拟数据集”)。
- 有两个感兴趣的预测变量(二进制、分类):
- 一个受试者之间因素,性别(男性/女性)。
- 一个受试者内因素,干预(前/后)。
- 每个受试者在六次试验中进行测量(在这些试验下有重复测量),试验。
- 请注意,一个人可以分配 12 个可能试验。因此,并非每个受试者都参加了全部 12 次试验,而是随机的一组 6 次试验。
- 试用是不是感兴趣的变量。只是认为个体内部的观察结果,试验中可能更相似,因此试验也应该被认为是聚类相关的一种形式。
虚拟数据集:显示我的数据的一般结构(尽管这不是实际数据集):
structure(list(Subject = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), Trial = c("A", "A",
"A", "B", "B", "B", "C", "C", "C", "D", "D", "D", "E", "E", "E",
"F", "F", "F", "G", "G", "G", "E", "E", "E", "D", "D", "D", "A",
"A", "A", "J", "J", "J", "L", "L", "L"), Intervention = c("Pre", "Pre", "Pre", "Pre",
"Pre", "Pre", "Pre", "Pre", "Pre", "Post", "Post", "Post", "Post",
"Post", "Post", "Post", "Post", "Post", "Pre", "Pre", "Pre",
"Pre", "Pre", "Pre", "Pre", "Pre", "Pre", "Post", "Post", "Post",
"Post", "Post", "Post", "Post", "Post", "Post"), Sex = c("Female",
"Female", "Female", "Female", "Female", "Female", "Female", "Female",
"Female", "Female", "Female", "Female", "Female", "Female", "Female",
"Female", "Female", "Female", "Male", "Male", "Male", "Male",
"Male", "Male", "Male", "Male", "Male", "Male", "Male", "Male",
"Male", "Male", "Male", "Male", "Male", "Male"), Binary_outcome = c(1L,
1L, 1L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L,
1L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 0L, 1L, 1L, 1L, 0L, 1L,
1L, 1L, 1L)), class = "data.frame", row.names = c(NA, -36L))
当前正在使用的代码:这是我目前正在使用的,但我不知道我是否应该根据数据的结构以不同的方式指定随机效应(在下面的“正确考虑相关性”)。
install.packages("lme4")
library(lme4)
logit_model <- glmer(Binary_outcome ~ factor(Sex)*factor(Intervention) +
(1 | Trial) +
(1 | Subject),
data = data01,
family="binomial")
正确计算相关性:这就是我的问题所在。意见/问题:
- 我相信 Subject 和 Trial 随机效应是交叉的(不是嵌套的),因为 Subject 1 始终是 Subject 1,而 Trial A 始终是 Trial A。如果设计是嵌套的,则无法为这些重新编号/重新字母(参见,例如:https://stats.stackexchange.com/questions/228800/crossed-vs-nested-random-effects-how-do-they-differ-and-how-are-they-specified)。
- 如上面“正在使用的当前代码”下所示,我已经包含了感兴趣的固定效果(Sex、Intervention 和 Sex em>**Intervention*),以及使用
+ (1 | Trial) + (1 | Subject)随机截取Trial 和Subject。-
+ (1 | Trial) + (1 | Subject)是否正确地“告诉”模型考虑人体内的相关性,在试验中,还是需要以其他方式指定?虽然我不认为随机效果是嵌套的,但感觉还是有一个“层次结构”,但也许+ (1 | Trial) + (1 | Subject)已经说明了这一点。 - 这些数据似乎是独一无二的,即使在试验中,每个受试者也有多个测量值 (0s/1s)。我不确定这对模型拟合的影响。
- 我是否需要进一步告诉模型区分受试者内和受试者间的固定效应?或者代码是否使用
+ (1 | Trial) + (1 | Subject)“自动”“提取”?例如,当您简单地为lme()和+ (1 | Subject)或aov()和+ Error(Subject)指定随机截距时,它会正确执行此操作。这就是我在这里简单使用+ (1 | Trial) + (1 | Subject)的原因。
-
- 最后,我不知道不是每个受试者都接受每次试验(而是 12 次可能的试验中的 6 次)是否重要,以及这是否会影响代码的某些方面。
我正在寻找您的反馈,最好还有用于确定您的反馈的参考资料(文本、同行评议的论文)。我有多篇关于逻辑回归、更广泛的分类数据分析和混合模型的文章,但是 - 据我所知 - 它们都没有将我在这里提出的想法结合在一起。因此,了解对这种情况特别有用的资源是否也会有所帮助。
【问题讨论】:
-
1/2 Baayen 等人的论文可能会有所帮助(尽管它是线性的,而不是逻辑的,混合模型)。 (2008 年):具有交叉随机效应的主题和项目的混合效应建模。他们至少有重复的项目(试验),以及一个受试者内变量(在论文中称为 SOA)。但是有一些差异:没有受试者之间的变量,对所有受试者(以及跨 SOA 的两个级别)使用相同的项目/试验,并且在项目/试验中没有重复测量(这是我的二进制文件中固有的)数据,同样,每个人都在一段时间内)。
-
2/2 但是,这篇论文向我展示了随机效应规范可能至少在某种程度上与您的模型“需要”多少才能进行良好的估计/参数化有关。它们以更复杂的随机效果开始,但最终以
+ (1 | Item) + (1 | Subj)结束,这相当于我在帖子中的+ (1 | Trial) + (1 | Subject)。 -
Baayen 等人的另一个见解。 (2008 年):具有交叉随机效应的主题和项目的混合效应建模:在他们的第二个示例中,并非每个主题都得到相同的单词,但随机效应再次指定为
+ (1 | Word) + (1 | Subject),所以这可能表明我的答案关于并非所有受试者都进行相同试验(在我的情况下是图像)是否重要的问题是不重要的。 -
这属于CrossValidated。我已投票决定将其关闭/迁移到那里。
-
谢谢你,@Ben Bolker。我不确定在哪里发帖最好。我支持迁移到 CrossValidated。
标签: r logistic-regression lme4 mixed-models panel-data