我需要运行一个混合效果模型,但我被卡住了,因为我的数据比我习惯运行的更复杂。这是我的数据框架的一个例子。这是假数据,但它很好地表达了重点。
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_score
和condition
是否可以预测与另一个合作伙伴相比,有多少捐款流向了这个合作伙伴。
我非常熟悉R包lme4,并假设我将使用该数据来运行GLMM。我还找到了一篇链接在这里的论文,上面有一个类似的例子,但很多内容都超出了我的理解。
有没有人有建议或代码运行这种模型?最终,我试图找出closeness_score
和condition
是否预测了受试者对每个伴侣的拉动频率。
我想作为一个开始
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)
形式的随机效应项),但你很可能耗尽数据/在拟合这些模型时遇到麻烦…
你应该记得检查过度分散。