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

如何从合并后的lavaan.mi对象获取p值与置信区间?

问题:多重插补SEM结果无法显示p值与置信区间

我按照Hall & Clark (2023)的方法操作:所有分析在R中完成,用lavaan包估计SEM,通过mice包的预测均值匹配处理缺失数据,借助semTools包合并多重插补数据集的lavaan结果。但运行以下代码后,summary和parameterEstimates的输出未显示p值与置信区间,请问如何获取这些结果?

代码:

# Split the completed imputed datasets into a list, excluding original data 
mice.imp0 <- lapply(1:m, function(i) complete(imp_mids, action = i, include = FALSE))

# Fit SEM model to imputed datasets 
model_pooled <- runMI(sem_model, 
                      data = mice.imp0,
                      fun = "sem",
                      cluster = "SerialAuto",
                      meanstructure = TRUE)

# Summarize the pooled SEM model
summary(model_pooled)
parameterEstimates(model_pooled, standardized = TRUE)

解决方案

默认情况下,runMI生成的结果对象不会自动输出p值和置信区间,需要在后续汇总函数中显式开启对应选项,同时指定适配多重插补结果的检验方法:

  1. 调整summary()参数:添加test = "D1"(采用Rubin规则的检验统计量,适配多重插补场景),同时开启ci = TRUE和pvalue = TRUE来输出置信区间与p值。
  2. 调整parameterEstimates()参数:添加ci = TRUE和pvalue = TRUE,确保参数表中包含置信区间与p值。

修改后的代码如下:

# 拆分插补数据集为列表(排除原始数据)
mice.imp0 <- lapply(1:m, function(i) complete(imp_mids, action = i, include = FALSE))

# 拟合SEM到插补数据集
model_pooled <- runMI(sem_model, 
                      data = mice.imp0,
                      fun = "sem",
                      cluster = "SerialAuto",
                      meanstructure = TRUE)

# 汇总合并后的SEM模型,显示p值与置信区间
summary(model_pooled,
        test = "D1",
        ci = TRUE,
        pvalue = TRUE)

# 获取包含标准化估计、置信区间和p值的参数表
parameterEstimates(model_pooled,
                   standardized = TRUE,
                   ci = TRUE,
                   pvalue = TRUE)

补充说明

  • test = "D1"是多重插补结果的经典检验方法,基于Rubin规则合并各插补数据集的检验统计量,适合大多数场景;若你的分析有特殊聚类或加权设计,可按需调整为"D2"或其他检验类型。
  • 若需要稳健标准误,可在runMI()中添加se = "robust"参数,确保标准误计算适配数据特征。

内容的提问来源于stack exchange,提问作者sophie.mayo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:42:49