You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何运行含交叉独立随机效应的广义线性混合模型(GLMM)?

建模方案与代码实现

核心思路

你的数据属于比例计数数据:每个观测是受试者在特定条件下给某搭档的捐赠数(donations),相对于该会话的总捐赠数(total_donations),适合用**二项式广义线性混合模型(GLMM)**分析。这类模型能同时处理固定效应(closeness_score、condition)和随机效应(受试者个体差异),匹配你的研究需求。

代码实现

1. 基础主效应模型

先拟合包含closeness_score、condition主效应,以及受试者随机截距的模型:

# 加载依赖包
library(lme4)
library(lmerTest) # 用于输出固定效应的p值

# 构建二项式GLMM:响应变量为cbind(成功数, 失败数)
base_model <- glmer(
  cbind(donations, total_donations - donations) ~ closeness_score + condition + (1 | subject),
  data = df,
  family = binomial(link = "logit")
)

# 查看模型结果
summary(base_model)

2. 含交互项的模型

如果理论上认为closeness_score对捐赠比例的影响会随condition变化,可加入交互项:

interaction_model <- glmer(
  cbind(donations, total_donations - donations) ~ closeness_score * condition + (1 | subject),
  data = df,
  family = binomial(link = "logit")
)

summary(interaction_model)

3. 模型比较与效应检验

用方差分析判断交互项是否有必要纳入模型:

anova(base_model, interaction_model)

用卡方检验检验固定效应的显著性:

library(car)
Anova(interaction_model, type = "III")

关键说明与注意事项

  • 响应变量结构:cbind(donations, total_donations - donations)表示「给该搭档的捐赠数(成功)」和「给其他搭档的捐赠数(失败)」,完全符合二项分布的建模要求。
  • 随机效应选择:仅加入(1 | subject)是因为你的样本量极小(仅3名受试者),若额外加入(1 | partner)会导致模型难以收敛。
  • 结果解读:模型输出的系数是对数优势比,若要转换为实际概率,可使用plogis()函数,例如plogis(fixef(interaction_model)[1])可得到截距对应的基准概率。
  • 样本量问题:3名受试者的样本量远低于混合效应模型的常规要求,结果的统计效力极低,建议尽快扩充样本量以提升结论可靠性。
  • 模型诊断:用DHARMa包检查拟合质量,避免模型假设违背:
library(DHARMa)
sim_res <- simulateResiduals(base_model)
plot(sim_res)

内容的提问来源于stack exchange,提问作者Matthew Babb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:10:23