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

如何用emmeans的pairs函数输出95%置信区间?

问题:emmeans的pairs结果无法提取置信区间

我希望用emmeans输出control_str2各组间的差异,但pairs函数仅显示均值±标准误,尝试提取置信区间时失败,相关代码如下:

# 计算各组em均值
em_means <- emmeans(ComPAS_MUAC115_LinearGrowth_ForAnalysis_completecases_2.1, specs = ~ control_str2, digits=1)
# 计算组间两两差异
pairwise_diff <- pairs(em_means, conf.level=0.95, digits=1)

# 尝试提取置信区间(执行失败)
lower_CI <- pairwise_diff$lower.CL  # 提取置信区间下限
upper_CI <- pairwise_diff$upper.CL  # 提取置信区间上限
# 合并结果以便查看或后续处理
result <- data.frame(lower_CI, upper_CI)  # 创建包含置信区间上下限的数据框
print(result)
解决方案

pairs()返回的是emmGrid类型对象,不是普通数据框,无法直接用$提取列。可以通过以下方式解决:

方法1:转换为数据框后提取

先把pairwise_diff转为数据框,再操作置信区间列:

# 转换为数据框
pairwise_df <- as.data.frame(pairwise_diff)
# 提取置信区间上下限
lower_CI <- pairwise_df$lower.CL
upper_CI <- pairwise_df$upper.CL
# 合并结果
result <- data.frame(lower_CI, upper_CI)
print(result)

方法2:用confint()直接生成置信区间结果

直接对pairwise_diff调用confint(),可以直接查看或转为数据框保存:

# 直接查看带置信区间的差异结果
confint(pairwise_diff, digits = 1)
# 转为数据框
result <- as.data.frame(confint(pairwise_diff, digits = 1))
print(result)

额外技巧:让pairs()直接输出置信区间

如果希望调用pairs()时直接显示置信区间,添加infer = c(TRUE, TRUE)参数即可:

pairwise_diff <- pairs(em_means, conf.level=0.95, digits=1, infer = c(TRUE, TRUE))
print(pairwise_diff)

内容的提问来源于stack exchange,提问作者Grace Heymsfield

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 11:52:11