如何用broom::tidy()计算0.84和0.95双水平置信区间?
用broom::tidy()计算多水平置信区间的解决方案
broom的tidy()函数本身不支持直接传入多个level参数,不过可以通过映射遍历+结果合并的方式实现同时计算0.84和0.95双水平置信区间的需求,具体步骤如下:
- 加载所需工具包
library(broom) library(dplyr) library(purrr)
- 构建示例模型(替换为你的实际模型)
model <- lm(mpg ~ wt + hp, data = mtcars)
- 计算双水平置信区间
model %>% map_dfr(c(0.84, 0.95), ~ tidy(., conf.int = TRUE, level = .x), .id = "conf_level") %>% mutate(conf_level = as.numeric(conf_level))
代码说明
map_dfr()会遍历传入的置信水平向量,对每个水平调用tidy()生成对应结果,并自动按行合并成一个数据框.id = "conf_level"会添加一列标记当前行对应的置信水平,后续转成数值类型更直观- 最终结果中,每个模型参数会对应两行记录,分别包含0.84和0.95水平的置信上下限
内容的提问来源于stack exchange,提问作者Damon C. Roberts
相关产品推荐
相关产品推荐

