You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ggplot2绘制连续预测变量对二分类结局的影响图

ggplot2实现方案

你在base R中调用plot(outcome ~ predictor)绘制二分类结局的概率变化图,本质是软件自动拟合了Logistic回归模型,输出预测概率随连续预测变量的变化曲线及95%置信区间,用ggplot2可通过geom_smooth()直接复现,无需手动计算预测值。

完整代码示例

首先我们先构造和你描述一致的测试数据集:

library(ggplot2)
# 构造数据集:二分类结局+3~6范围的连续预测变量
set.seed(123)
predictor <- runif(1000, min = 3, max = 6)
# 基于logistic回归生成二分类结局
prob <- plogis(-4.8 + 1.1 * predictor)
outcome <- factor(rbinom(1000, size = 1, prob = prob), levels = c(0, 1), labels = c("No", "Yes"))
mydata <- data.frame(outcome, predictor)

接下来是绘图代码,输出效果和base R默认效果完全一致:

ggplot(mydata, aes(x = predictor, y = as.numeric(outcome) - 1)) +
  # 拟合logistic回归,输出拟合线和95%置信区间
  geom_smooth(method = "glm", method.args = list(family = binomial), se = TRUE) +
  # 调整轴标签匹配业务含义
  labs(y = "Pr(outcome = Yes)", x = "Predictor") +
  theme_bw()

参数说明

  • y = as.numeric(outcome) - 1:将因子类型的二分类结局转为0/1数值,y轴范围对应0~1的发生概率,和base R输出的y轴逻辑一致
  • method = "glm" + family = binomial:指定拟合Logistic回归,和base R的默认拟合逻辑完全相同
  • se = TRUE:开启95%置信区间的阴影显示,和base R默认效果图的阴影带对应
    如果需要完全还原base R的极简样式,可以调整主题和样式参数:
ggplot(mydata, aes(x = predictor, y = as.numeric(outcome) - 1)) +
  geom_smooth(method = "glm", method.args = list(family = binomial), 
              se = TRUE, fill = "gray", alpha = 0.3, col = "black") +
  labs(y = "outcome", x = "predictor") +
  theme_classic()

内容的提问来源于stack exchange,提问作者user265883

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:15:03