r语言 - 如何运行具有交叉独立随机效应的GLMM



我需要运行一个混合效果模型,但我被卡住了,因为我的数据比我习惯运行的更复杂。这是我的数据框架的一个例子。这是假数据,但它很好地表达了重点。

My fake data:

df <- data.frame(subject = c("Matt", "Matt", "Matt", "Matt", "Tom", 
"Tom", "Tom", "Tom", "Sarah", "Sarah", "Sarah", "Sarah"), partner = c("Tom", 
"Sarah", "Tom", "Sarah", "Matt", "Sarah", "Matt", "Sarah", "Matt", 
"Tom", "Matt", "Tom"), closeness_score = c(100, 76, 100, 76, 100, 12, 100, 
12, 76, 42, 76, 12), condition = c("control", "control", "experimental", 
"experimental", "control", "control", "experimental", "experimental", 
"control", "control", "experimental", "experimental"), donations = c(9, 
1, 15, 4, 15, 0, 10, 2, 1, 1, 1, 1), total_donations = c(10, 10, 20, 
20, 15, 15, 12, 12, 2, 2, 3, 3))

这个数据来自一个群体水平的实验,在这个实验中,受试者可以在任何时候向任何一个搭档捐赠一件物品。一个会话中的总捐赠数量在total_donations下指定,而专门捐给该合作伙伴的捐赠数量在donations下指定。

我有三个受试者,在任何给定的session中,subject可以给partner中的任何一个。我试图确定closeness_scorecondition是否可以预测与另一个合作伙伴相比,有多少捐款流向了这个合作伙伴。

我非常熟悉R包lme4,并假设我将使用该数据来运行GLMM。我还找到了一篇链接在这里的论文,上面有一个类似的例子,但很多内容都超出了我的理解。

有没有人有建议或代码运行这种模型?最终,我试图找出closeness_scorecondition是否预测了受试者对每个伴侣的拉动频率。

我想作为一个开始

glmer(donations/total_donations ~ closeness_score*condition + 
(1|subject) + (1|partner), 
data = df, 
family = binomial, 
weights = total_donations)

应该能让你非常接近。在示例数据集中没有session变量,也可以添加(1|session)。(我假设你的研究对象每个人都参加了多个会议。)

原则上,你可以考虑不同的人对亲密度得分或条件的反应是否不同(即(closeness_score|subject)(closeness_score*condition|subject)形式的随机效应项),但你很可能耗尽数据/在拟合这些模型时遇到麻烦…

你应该记得检查过度分散。

最新更新