逻辑回归中Odd Ratio(OR)与描述性统计方向相反的问题咨询
逻辑回归OR值与描述性统计矛盾的原因分析
你遇到的矛盾核心原因是模型的自变量和因变量搞反了,完全搞错了分析的方向。
1. 研究目标与实际模型的偏差
你原本想分析的是:新冠感染史(post_covid)对独立功能能力的影响,也就是应该把「独立功能能力(Independent/Not independent)」作为因变量,「新冠感染史(Yes/No)」作为自变量,看感染新冠后出现功能非独立的Odds是多少。
但你实际运行的glm公式是:
logistic= glm(post_covid_dic ~ function_dependent_dic, family = binomial, data= subsetted_data_for_regression)
这个模型的逻辑是:用独立功能能力来预测新冠感染史,也就是把「新冠感染史」当成了因变量,「独立功能能力」当成了自变量,和你的研究目标完全相反。
2. 数据与模型结果的对应拆解
先把你的描述性统计转成清晰表格:
| 新冠感染史 | 功能独立 | 功能非独立 |
|---|---|---|
| 是(Yes) | 72 | 37 |
| 否(No) | 345 | 58 |
- 功能独立组的新冠感染率:
72/(72+345) ≈ 17.27% - 功能非独立组的新冠感染率:
37/(37+58) ≈ 38.95%
确实非独立组的感染占比更高,符合你的观察。
再看你运行的反向模型:
模型计算的是「功能非独立相对于功能独立,新冠感染史为Yes的Odds比值」。具体来说:
- 功能独立组的感染Odds:
72/345 ≈ 0.2087(感染人数/未感染人数) - 功能非独立组的感染Odds:
37/58 ≈ 0.6379
但因为模型把新冠感染史设为因变量,系数对应的是「功能非独立」相对于「功能独立」时未感染/感染的Odds比值(从exp(Intercept)=4.79能看出,Intercept是功能独立组的未感染/感染Odds:345/72≈4.79),所以功能非独立组的未感染/感染Odds是4.79 * 0.327 ≈ 1.566,对应的感染率就是1/(1+1.566)≈38.97%——和描述性统计完全一致,只是这个OR的含义和你想要的完全相反。
3. 修正方法
把模型公式反过来,改成你真正需要的分析方向:
# 正确模型:因变量是独立功能能力,自变量是新冠感染史 logistic_correct = glm(function_dependent_dic ~ post_covid_dic, family = binomial, data= subsetted_data_for_regression) summary(logistic_correct) exp(cbind(OR= coef(logistic_correct), confint(logistic_correct)))
这样得到的OR值会大于1,对应「感染新冠的人群,出现功能非独立的Odds是未感染人群的多少倍」,和你的描述性统计结论一致。
内容的提问来源于stack exchange,提问作者user3315563
相关产品推荐
相关产品推荐

