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

R语言逻辑回归提取分类变量OR、置信区间及绘图方法

R语言Logistic回归分类变量OR提取与可视化实现

基础建模代码(已运行)

sample_data = read.table("http://freakonometrics.free.fr/db.txt",
                         header=TRUE, sep=";")
head(sample_data)
model = glm(Y~0+X1+X2+X3,family=binomial,data=sample_data)
summary(model)
exp(coef(model ))
exp(cbind(OR = coef(model ), confint(model )))

待实现需求

  • 从模型输出的OR及置信区间结果中,仅提取分类变量X3各水平对应的OR值、95%置信区间上下限
  • 基于提取的X3结果,绘制点估计+置信区间误差线的可视化图形(森林图)

完整实现代码

1. 提取X3各水平OR与置信区间

# 计算所有变量的OR值与95%置信区间,存入对象
or_ci <- exp(cbind(OR = coef(model), confint(model)))
# 匹配行名中包含"X3"的记录,筛选分类变量结果
x3_or_result <- or_ci[grepl("X3", rownames(or_ci)), ]
# 打印输出目标结果
print(x3_or_result)

运行上述代码后将输出目标格式的结果:

OR       2.5 %     97.5 %
X3A 0.01157565 0.001429430 0.08726854
X3B 0.06627849 0.008011818 0.54419759
X3C 0.01118084 0.001339984 0.08721028
X3D 0.01254032 0.001545240 0.09539880
X3E 0.10654454 0.013141540 0.87369972

2. 绘制OR值置信区间图(森林图)

如果本地未安装ggplot2,先运行install.packages("ggplot2")完成安装,再运行以下绘图代码:

library(ggplot2)
# 将提取结果转为数据框,适配ggplot2输入格式
plot_df <- as.data.frame(x3_or_result)
plot_df$x3_level <- rownames(plot_df)

ggplot(plot_df, aes(x = x3_level, y = OR)) +
  # 绘制OR点估计
  geom_point(size = 3, color = "#222222") +
  # 绘制95%置信区间误差线
  geom_errorbar(aes(ymin = `2.5 %`, ymax = `97.5 %`), width = 0.2, color = "#222222") +
  # 添加OR=1的无效参考线
  geom_hline(yintercept = 1, linetype = "dashed", color = "red") +
  # OR值默认使用对数坐标轴展示,符合统计可视化规范
  scale_y_log10() +
  # 设置坐标轴与标题文本
  labs(
    x = "X3分类水平",
    y = "OR值(对数尺度)",
    title = "X3各水平Logistic回归OR值及95%置信区间"
  ) +
  # 套用简洁主题
  theme_bw()

图中红色虚线为OR=1的无效线,若某水平的置信区间未跨越该虚线,代表该水平相对于参照组的效应有统计学意义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:51:32