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

如何在R中对多重插补数据的线性混合模型做III型ANOVA分析?

多重插补下线性混合模型的固定效应显著性检验方案

核心思路:用mitml::TestModels的D3 LRT做模型比较

目前没有直接支持多重插补混合模型的III型ANOVA工具,嵌套模型比较是可行的替代方案——通过对比包含目标效应的全模型与去掉该效应的简化模型,用D3似然比检验(LRT)判断效应是否显著。

具体操作步骤(以lme4的lmer模型为例)

假设你已用mice生成多重插补数据集(mira对象),并转换为mitml对象(通过mitml::complete(mira_obj, "all")):

  1. 拟合全模型
    示例模型代码:

    library(mitml)
    library(lme4)
    
    # 给所有插补数据集拟合全模型,必须设置REML=FALSE(LRT要求ML拟合)
    full_model <- with(data = mitml_obj, expr = lmer(y ~ x1 + x2 + (1|group), REML = FALSE))
    
  2. 拟合去掉目标效应的简化模型
    要检验x1的显著性,就拟合剔除x1的模型:

    reduced_model_x1 <- with(data = mitml_obj, expr = lmer(y ~ x2 + (1|group), REML = FALSE))
    
  3. 执行D3 LRT检验

    test_x1 <- TestModels(full_model, reduced_model_x1, method = "D3")
    print(test_x1)
    

    输出中的p值即为该主效应的显著性结果。

  4. 批量检验所有主效应
    针对多个主效应,可通过循环批量处理:

    # 列出所有需检验的固定效应(排除截距项)
    effects <- c("x1", "x2")
    results <- list()
    
    for(eff in effects){
      # 构造简化模型的公式
      reduced_formula <- as.formula(paste0("y ~ ", paste(setdiff(effects, eff), collapse = " + "), " + (1|group)"))
      reduced_model <- with(data = mitml_obj, expr = lmer(reduced_formula, REML = FALSE))
      test_res <- TestModels(full_model, reduced_model, method = "D3")
      results[[eff]] <- test_res
    }
    
    # 查看所有检验结果
    lapply(results, print)
    

关键注意事项

  • 必须用ML拟合模型(REML=FALSE),REML下的LRT结果不具备统计可靠性。
  • 交互效应的检验逻辑一致:全模型保留交互项,简化模型移除交互项即可。
  • 若使用nlme::lme拟合模型,仅需将lmer替换为lme,并设置method="ML",其余步骤完全相同。

内容的提问来源于stack exchange,提问作者Alexandra Chapdelaine

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 15:30:58