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

如何在R中从泊松回归提取因子各水平的95%CI率估计

提取泊松回归中X各水平的率估计及95%置信区间

你的模型采用log链接的泊松回归,且包含offset(log(time)),因此拟合的是事件率(即单位时间内的事件发生数,公式为E(outcome) = rate × time)。要提取二水平因子X各水平的率估计及95%置信区间,有两种常用方法:

方法一:用emmeans包快速计算(推荐)

emmeans包可直接计算变量的边际均值,并自动转换到响应尺度(即率的尺度):

  1. 安装并加载包:
install.packages("emmeans")
library(emmeans)
  1. 计算X各水平的率估计及置信区间:
# 针对X变量计算边际均值,type="response"将结果转换为率尺度
emm_result <- emmeans(mod, ~ X, type = "response")
# 查看结果
emm_result

运行后会直接输出X两个水平的率估计值、标准误及95%置信区间。

方法二:手动计算(无需额外包)

如果不想安装新包,可以手动构建预测数据并转换尺度:

  1. 构建包含X所有水平及协变量典型取值的数据集:
    连续协变量取均值,分类协变量取参考水平,time固定为1(方便解释单位时间的率):
new_dat <- expand.grid(
  X = levels(dat$X),
  A = mean(dat$A, na.rm = TRUE),  # 处理连续协变量A
  B = levels(dat$B)[1],           # 处理分类协变量B,取参考水平
  C = mean(dat$C, na.rm = TRUE),  # 处理连续协变量C
  time = 1                        # 固定time为1,对应单位时间的率
)
  1. 预测log尺度的估计值及置信区间:
pred_log <- predict(mod, newdata = new_dat, se.fit = TRUE, interval = "confidence")
  1. 将log尺度结果指数化,得到率及置信区间:
rate_est <- exp(pred_log$fit[, "fit"])
lower_ci <- exp(pred_log$fit[, "lwr"])
upper_ci <- exp(pred_log$fit[, "upr"])
  1. 整理成清晰的结果表格:
result_df <- data.frame(
  X水平 = new_dat$X,
  率估计值 = rate_est,
  95%置信区间下限 = lower_ci,
  95%置信区间上限 = upper_ci
)
print(result_df)

注意事项

  • 协变量的固定值可根据需求调整:比如连续协变量用中位数,分类协变量取特定水平,只需修改new_dat中的对应值即可。
  • emmeans默认的协变量固定规则和手动计算的典型取值一致,两种方法的结果会保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 10:30:25