今天看到一个帖子,主要介绍forestmodel
包,可以轻松制作回归模型结果森林图,图片简洁、美观大方,忍不住要分享一下。
原帖地址:如何根据回归模型制作森林图?一行代码搞定!; 公众号为:R语言和统计
- 加载R包
#install.packages("forestmodel")
library(forestmodel) # 森林图
library(ggplot2) # 使用到里面的数据集“msleep”
library(dplyr) # 数据处理
library(survival) # 生存分析
- 使用内置数据集
msleep
拟合线性回归模型
# 拟合线性回归模型
linear_model <- lm(sleep_total ~ brainwt + bodywt + sleep_rem + vore, data = msleep)
# 森林图
forest_model(linear_model)
image.png
- 使用内置数据集
lung
拟合logistic回归模型
# 数据预处理
# 将lung做一些修改,再保存到mydata
mydata <- lung %>%
mutate(gender = factor(sex, labels = c("Male", "Female")),
status = factor(status))
# 建立回归模型
logit_model <- glm(status ~ age + gender + ph.ecog, data = mydata, family = "binomial")
# 制作森林图
forest_model(logit_model)
image.png
- 使用内置数据集
lung
拟合cox回归模型
# 数据预处理
# 创建数据mydata1
mydata1 <- lung %>%
mutate(gender = factor(sex, labels = c("Male", "Female")))
# 拟合生存分析模型
surv_model <- coxph(Surv(time, status) ~ age + gender + ph.ecog, data = mydata1)
# 制作森林图
forest_model(surv_model)
image.png
- 个性化美化
forest_model(
surv_model,
format_options = forest_model_format_options(colour = "steelblue", # 修改颜色
shape = 15, # 改变形状
text_size = 3.8, # 字体文本的大小
point_size = 6, # 森林图中“方框”的大小
banded = TRUE), # 如“FALSE”,可去掉森林图背景条带
factor_separate_line = TRUE # 如为分类变量,需换行;比如Male,Female与gender不在同一行。
)
image.png
网友评论