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

R语言finalfit包逻辑回归OR值反转方法(仿Stata风格)

解决finalfit中Logistic回归OR值反向的问题

在finalfit中,OR值的方向由因子变量的参照组设定决定,你遇到的是参照组与目标对比组倒置的情况,以下两种方法可以实现类似Stata的OR反转效果:

方法1:调整因子变量的参照组(推荐)

直接将需要作为基准的组别设为因子的参照组,finalfit会自动输出该基准组对比其他组的OR值:

library(finalfit)
# 将hospital的参照组指定为hospital_1(你的基准组)
colon_s$hospital <- relevel(colon_s$hospital, ref = "hospital_1")
# 重新运行回归分析
colon_s %>%
  finalfit("mort_5yr", c("hospital", "sex.factor"))

此时输出的hospital_2对应的OR值就是其相对于hospital_1的比值,即你需要的1/12.36≈0.08(或你举例的0.8)。

方法2:手动反转已生成的OR及置信区间

如果已经得到了反向的结果,不想重新拟合模型,可以直接对目标行的OR值和置信区间取倒数,注意反转后置信区间的上下限需要交换:

# 先获取原分析结果
result_df <- colon_s %>%
  finalfit("mort_5yr", c("hospital", "sex.factor"))

# 定位到hospital_2的行,反转OR和置信区间
target_row <- result_df$label == "hospital_2"
result_df[target_row, c("OR", "Lower CI", "Upper CI")] <- 
  1 / result_df[target_row, c("OR", "Lower CI", "Upper CI")]
# 交换置信区间的上下限
result_df[target_row, c("Lower CI", "Upper CI")] <- 
  rev(result_df[target_row, c("Lower CI", "Upper CI")])

# 查看调整后的结果
print(result_df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:57:20