本文主要介绍如何对回归系数进行可视化。图形如下图所示,其中圆点表示回归系数估计值,上下误差线表示回归系数的95%置信区间,以0为分界线,置信区间经过0则表示该变量对应的回归系数不显著,未经过0则表示该变量对应的回归系数显著:
1、数据准备
library(tidyverse)
states <- as.data.frame(state.x77) %>% select("Murder", "HS Grad", "Life Exp", "Illiteracy")
head(states)
# Murder HS Grad Life Exp Illiteracy
#Alabama 15.1 41.3 69.05 2.1
#Alaska 11.3 66.7 69.31 1.5
#Arizona 7.8 58.1 70.55 1.8
#Arkansas 10.1 39.9 70.66 1.9
#California 10.3 62.6 71.71 1.1
#Colorado 6.8 63.9 72.06 0.7
states.model <- lm(Murder~. ,data = states)
summary(states.model)

model.est <- summary(states.model)$coefficients %>% round(digits = 3) %>% as.data.frame() #Estimate
model.ci <- confint(states.model) %>% round(digits = 3) %>% as.data.frame() #95% CI
model.df <- cbind(model.est,model.ci) #合并
model.df$variable <- rownames(model.df); rownames(model.df) <- NULL
model.df <- model.df %>% relocate(variable) %>% filter(variable != "(Intercept)") %>% rename("lower" = "2.5 %", "upper" = "97.5 %")
model.df

2、图形绘制
2.1 geom_errorbar() 图层
# theme set
theme_set(theme_bw() +
theme(text = element_text(size = 15),
panel.grid = element_blank()))
#geom_errorbar
ggplot(model.df, aes(variable, Estimate)) +
geom_errorbar(aes(ymin = lower, ymax = upper), size = 1, width = 0.3) +
geom_point(size = 4, alpha = 1, color = "red") +
#geom_point(size = 6, alpha = 0.6, color = "red") +
geom_hline(yintercept = 0, linetype = "dashed", size = 1) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))

2.2 coord_flip() 函数
ggplot(model.df, aes(variable, Estimate)) +
geom_errorbar(aes(ymin = lower, ymax = upper), size = 1, width = 0.3) +
geom_point(size = 4, alpha = 1, color = "red") +
geom_hline(yintercept = 0, linetype = "dashed", size = 1) +
theme(axis.text.x = element_text(angle = 0, hjust = 1)) +
coord_flip()

2.3 geom_pointrange() 图层
ggplot(model.df, aes(variable, Estimate)) +
geom_pointrange(aes(ymin = lower, ymax = upper)) +
geom_hline(yintercept = 0, linetype = "dashed", size = 1) +
coord_flip()

2.4 geom_linerange() 图层
ggplot(model.df, aes(variable, Estimate)) +
geom_linerange(aes(ymin = lower, ymax = upper)) +
geom_hline(yintercept = 0, linetype = "dashed", size = 1) +
coord_flip()

2.5 geom_linerange() + geom_pointrange() 图层
ggplot(model.df, aes(variable, Estimate)) +
geom_linerange(aes(ymin = lower, ymax = upper)) +
geom_pointrange(aes(ymin = lower, ymax = upper)) +
geom_hline(yintercept = 0, linetype = "dashed", size = 1) +
coord_flip()

回归系数可视化的主要思路为:首先进行回归模型的拟合,其次分别获得回归系数值以及95%置信区间,将二者合并到同一个dataframe中,最后选择geom_errorbar、geom_pointrange、geom_linerange其中一个或多个绘图函数进行图形绘制。
3、其他
其他绘图方法可进一步阅读公众号其他文章。
如有帮助请多多点赞哦!
文章转载自日常分享的小懒猫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




