如何从合并后的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值和置信区间,需要在后续汇总函数中显式开启对应选项,同时指定适配多重插补结果的检验方法:
- 调整
summary()参数:添加test = "D1"(采用Rubin规则的检验统计量,适配多重插补场景),同时开启ci = TRUE和pvalue = TRUE来输出置信区间与p值。 - 调整
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
相关产品推荐
相关产品推荐

