在R中将logit系数置信区间转换为优势比的方法
解决方法
首先纠正一个概念:你写的exp(d$logitcoef)/(1+exp(d$logitcoef))计算的是事件发生的概率,不是优势比(Odds Ratio, OR)。logit系数转换为优势比的正确公式是直接对logit系数取指数:
d$oddsratio <- exp(d$logitcoef)
优势比置信区间的计算方法
因为logit系数的置信区间(CI)是基于对数尺度的,要得到优势比的置信区间,只需要对logit系数CI的上下限分别取指数即可——对数变换是单调递增的,这个变换会保留置信区间的覆盖性。
假设你的数据框d中已经包含:
logitcoef:logit模型的系数logit_ci_lower:logit系数的置信区间下限logit_ci_upper:logit系数的置信区间上限
对应的R代码如下:
# 计算优势比 d$oddsratio <- exp(d$logitcoef) # 计算优势比的置信区间上下限 d$or_ci_lower <- exp(d$logit_ci_lower) d$or_ci_upper <- exp(d$logit_ci_upper)
补充说明
如果你的原始置信区间是针对概率(而非logit系数)的,方法会不同,但根据你的描述,你是从其他logit模型导出的系数和CI,所以上述方法完全适用。得到的OR和对应CI可直接用于森林图等可视化需求。
内容的提问来源于stack exchange,提问作者a_todd12
相关产品推荐
相关产品推荐

