正如 Martin 所言,这个问题似乎更像是一个交叉验证问题。但我会在这里投入 2 美分。
问题通常变成您对实验感兴趣的内容,以及您是否有理由相信您的模型中存在随机效应。在您的示例中,您有 2 个可能是随机的影响:个人和试验。在经典的随机效应模型中,随机效应的选择通常基于一系列经验法则,例如
- 如果参数可以被认为是随机。这通常是指一个因素内的水平变化。在这种情况下,个人和试验都可能在实验之间发生变化。
- 如果您对系统性 效果感兴趣(例如,A 对 B 的影响程度),那么该效果不是随机,应该考虑固定效果.在您的情况下,只有当有足够多的试验可以看到对个体产生系统性影响时,它才真正相关,但人们可能会质疑这种影响与一般结果的相关性。
还有其他一些经验法则,但这至少为我们提供了一个起点。下一个问题是我们真正感兴趣的效果。在您的情况下,这不是很清楚,但听起来您对以下其中一项感兴趣。
- 对于任何给定的试验,我们预计可以提前多少次按键
- 对于任何给定的个人,我们可以预期多少次早期按钮
- 在任何给定试验期间发生早期按钮按下的可能性有多大
对于前 2 个,您可以受益于对个体或试验进行平均,并使用线性混合效应模型和对应部分作为随机效应。尽管我认为 泊松 广义线性模型可能更合适,因为您正在建模只能是 正 的计数。例如。在相当普遍的意义上使用:
#df is assumed contain raw data
#1)
df_agg <- aggregate(. ~ individual, data = df)
lmer(early_clicks ~ . - individual + (1 | individual)) #or better: glmer(early_clicks ~ . - individual + (1 | individual), family = poisson, data = df_agg)
#2)
df_agg <- aggregate(. ~ trial, data = df)
lmer(early_clicks ~ . - trial+ (1 | trial)) #or better: glmer(early_clicks ~ . - trial+ (1 | trial), family = poisson, data = df_agg)
#3)
glmer(early_clicks ~ . + (1 | trial) + (1 | individual), family = binomial, data = df)
请注意,我们可以使用 3) 来获得 1) 和 2) 的答案,方法是使用 3) 来预测概率并使用这些来找到预期的 early_clicks。然而,理论上可以证明线性混合模型中使用的估计方法是精确的,而这对于广义线性模型是不可能的。因此,所有模型之间的结果可能略有不同(或相当大)。特别是在 3) 中,随机效应的数量与观察的数量相比可能相当可观,实际上可能无法估计。
免责声明
我只是非常简要地介绍了一些原则,虽然它们可能是一个非常简短的介绍,但它们绝不是详尽无遗的。在过去的 15 到 20 年里,混合效应模型的理论和实践方面得到了极大的扩展。如果您想了解有关混合效果模型的更多信息,我建议您从 ben bolker(和其他人)旁边的 glmm faq 开始,以及其中列出的参考资料。对于估计和实现,我建议阅读 lme4、glmmTMB 和可能的 merTools 包的小插曲。 glmmTMB 是一个更新且有趣的项目。