我一直在通过手动计算优势和优势比来回答我的问题:
Acceptance blue red Grand Total
0 158 102 260
1 112 177 289
Total 270 279 549
所以进入红蓝学校的几率是:
Odds Accept If RedOdds Acccept If Blue=177/102112/158=1.73530.7089=2.448
这是Backgroundred
返回:
fit <- glm(Accepted~Background, data=dat, family="binomial")
exp(cbind(Odds_and_OR=coef(fit), confint(fit)))
Odds_and_OR 2.5 % 97.5 %
(Intercept) 0.7088608 0.5553459 0.9017961
Backgroundred 2.4480042 1.7397640 3.4595454
同时,(Intercept)
对应于优势比的分子,也就是成为“蓝色”家庭背景的几率。112/158=0.7089
相反,我运行:
fit2 <- glm(Accepted~Background-1, data=dat, family="binomial")
exp(cbind(Odds=coef(fit2), confint(fit2)))
Odds 2.5 % 97.5 %
Backgroundblue 0.7088608 0.5553459 0.9017961
Backgroundred 1.7352941 1.3632702 2.2206569
回报正是成为“蓝色”的几率:(Backgroundblue
0.7089)和被接受为“红色”的几率: (Backgroundred
1.7353)。那里没有赔率。因此,预计这两个返回值不会是互惠的。
最后,如果分类回归变量中有 3 个因子,如何读取结果?
相同的手动与 [R] 计算:
我在相同的前提下创建了一个不同的虚构数据集,但这次有三个种族背景:“红色”、“蓝色”和“橙色”,并运行相同的序列:
一、列联表:
Acceptance blue orange red Total
0 86 65 130 281
1 64 42 162 268
Total 150 107 292 549
并计算了每个种族的进入几率:
- 如果红色 = 1.246154,则接受赔率;
- 如果蓝色 = 0.744186,则接受赔率;
- 如果橙色 = 0.646154,赔率接受
以及不同的赔率:
- 或红色 v 蓝色 = 1.674519;
- 或红色 v 橙色 = 1.928571;
- 或蓝色 v 红色 = 0.597186;
- 或蓝色 v 橙色 = 1.151717;
- 或橙色 v 红色 = 0.518519;和
- 或橙色 v 蓝色 = 0.868269
并继续进行现在常规的逻辑回归,然后对系数进行取幂:
fit <- glm(Accepted~Background, data=dat, family="binomial")
exp(cbind(ODDS=coef(fit), confint(fit)))
ODDS 2.5 % 97.5 %
(Intercept) 0.7441860 0.5367042 1.026588
Backgroundorange 0.8682692 0.5223358 1.437108
Backgroundred 1.6745192 1.1271430 2.497853
产生进入“蓝色”的几率为 ,橙色与蓝色(Intercept)
的赔率比Backgroundorange
为,红色与蓝色的 OR 为Backgroundred
。
另一方面,没有截距的回归可以预见地只返回三个独立的几率:
fit2 <- glm(Accepted~Background-1, data=dat, family="binomial")
exp(cbind(ODDS=coef(fit2), confint(fit2)))
ODDS 2.5 % 97.5 %
Backgroundblue 0.7441860 0.5367042 1.0265875
Backgroundorange 0.6461538 0.4354366 0.9484999
Backgroundred 1.2461538 0.9900426 1.5715814