使用R语言marginaleffects包对logistics回归模型进行边际效应图绘制,自变量存在分类变量和连续变量
16条回答 默认 最新
关注获得0.45元问题酬金 引自免费微信小程序:皆我百晓生
在R语言中,要使用
marginaleffects包对logistic回归模型进行边际效应图绘制,涉及分类变量和连续变量,可以按照以下步骤操作:-
安装并加载所需库: 确保已安装
marginaleffects、ggplot2和tidyverse库。如果没有,请先安装:install.packages(c("marginaleffects", "ggplot2", "tidyverse"))然后加载这些库:
library(marginaleffects) library(ggplot2) library(tidyverse) -
拟合logistic回归模型: 假设您的数据集为
my_data,因变量为outcome,分类变量为cat_var,连续变量为cont_var。拟合logistic回归模型如下:model <- glm(outcome ~ cat_var + cont_var, data = my_data, family = binomial) -
计算边际效应: 使用
marginaleffects()函数计算所有自变量(包括分类变量)的边际效应。这里将使用by = "cat_var"参数来分别计算每个分类变量水平的边际效应。me <- marginaleffects(model, by = "cat_var") -
整理数据以便绘图: 将边际效应数据转换为适合绘图的长格式,并添加必要的标签:
me_plot_data <- me %>% summary(by = c("cat_var", "term")) %>% group_by(cat_var, term) %>% summarize( estimate = mean(estimate), conf_low = mean(conf.low), conf_high = mean(conf.high) ) %>% mutate(term_label = case_when( grepl("cat_var", term) ~ str_replace(term, "cat_var", ""), TRUE ~ term )) %>% ungroup() me_plot_data$term <- factor(me_plot_data$term, levels = c("cont_var", levels(my_data$cat_var))) -
绘制边际效应图: 使用
ggplot2创建边际效应图,展示分类变量各水平下的连续变量边际效应及其置信区间:ggplot(me_plot_data, aes(x = estimate, y = term_label)) + geom_pointrange(aes(xmin = conf_low, xmax = conf_high), shape = 19, size = 0.7) + scale_x_continuous(labels = scales::label_percent()) + labs( x = "Marginal Effect (%)", y = NULL, title = "Marginal Effects of Continuous Variable on Outcome by Categorical Variable", subtitle = paste0("Logistic Regression Model: outcome ~ cat_var + cont_var"), caption = "Error bars represent 95% confidence intervals" ) + theme_bw() + theme( axis.text.y = element_text(size = 12, hjust = 0.5), plot.title = element_text(hjust = 0.5), plot.subtitle = element_text(size = 10), plot.caption = element_text(size = 8, hjust = 0), legend.position = "none" )
这段代码首先安装并加载所需的R库,然后拟合logistic回归模型。接着,计算所有自变量的边际效应,并整理数据以便于绘图。最后,使用
ggplot2创建边际效应图,展示了分类变量各水平下连续变量边际效应及其置信区间。根据您提供的数据和模型调整上述代码中的变量名和细节即可得到所需的边际效应图。解决 无用评论 打赏 举报 编辑记录-