使用 broom::tidy 向嵌套数据框中的线性模型添加置信区间
Using the broom::tidy to add confidence intervals to linear models in nested data frame
我一直在尝试按照 Hadley Wickham 为 运行 嵌套数据框中的多个模型制定的方法 https://r4ds.had.co.nz/many-models.html
我已经设法在下面编写了这段代码来创建多个线性模型:
#create nested data frame
by_clin_grp <- df_long %>%
group_by(clin_risk) %>%
nest()
#create a function to run the linear models
model <- function(df){
lm(outcome ~ age + sex + clin_sub_grp, data =df)
}
#run the models
by_clin_grp <- by_clin_grp %>%
mutate(model = map(data,model))
#unnest the models using the broom package
by_clin_grp_unnest <- by_clin_grp %>%
mutate(tidy = map(model, broom::tidy))%>%
unnest(tidy)
但是,我需要在我的回归估计值周围添加置信区间。似乎我应该能够按照 the help page 使用 broom::tidy
添加它们,但我无法弄清楚如何在上面的代码中正确指定它?
您必须在map
中指定相关参数。有两种可能:
by_clin_grp_unnest <- by_clin_grp %>%
mutate(tidy = map(model, ~broom::tidy(.x, conf.int = TRUE, conf.level = 0.99)))%>%
unnest(tidy)
或
by_clin_grp_unnest <- by_clin_grp %>%
mutate(tidy = map(model, broom::tidy, conf.int = TRUE, conf.level = 0.99)) %>%
unnest(tidy)
两者是等价的,只是语法不同
我一直在尝试按照 Hadley Wickham 为 运行 嵌套数据框中的多个模型制定的方法 https://r4ds.had.co.nz/many-models.html
我已经设法在下面编写了这段代码来创建多个线性模型:
#create nested data frame
by_clin_grp <- df_long %>%
group_by(clin_risk) %>%
nest()
#create a function to run the linear models
model <- function(df){
lm(outcome ~ age + sex + clin_sub_grp, data =df)
}
#run the models
by_clin_grp <- by_clin_grp %>%
mutate(model = map(data,model))
#unnest the models using the broom package
by_clin_grp_unnest <- by_clin_grp %>%
mutate(tidy = map(model, broom::tidy))%>%
unnest(tidy)
但是,我需要在我的回归估计值周围添加置信区间。似乎我应该能够按照 the help page 使用 broom::tidy
添加它们,但我无法弄清楚如何在上面的代码中正确指定它?
您必须在map
中指定相关参数。有两种可能:
by_clin_grp_unnest <- by_clin_grp %>%
mutate(tidy = map(model, ~broom::tidy(.x, conf.int = TRUE, conf.level = 0.99)))%>%
unnest(tidy)
或
by_clin_grp_unnest <- by_clin_grp %>%
mutate(tidy = map(model, broom::tidy, conf.int = TRUE, conf.level = 0.99)) %>%
unnest(tidy)
两者是等价的,只是语法不同