J'ai travaillé pour répondre à ma question en calculant manuellement les cotes et les rapports de cotes:
Acceptance blue red Grand Total
0 158 102 260
1 112 177 289
Total 270 279 549
Donc, le rapport de cotes pour entrer dans l'école de Red over Blue est:
O d d s A c c e p t I f R e dO d d s A c c c e p t I f B l u e=177/102112/158= 1,73530,7089= 2,448
Et c'est le Backgroundred
retour de:
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
En même temps, le (Intercept)
correspond au numérateur du rapport de cotes , qui est exactement la chance de se retrouver dans un milieu familial «bleu»:112 / 158 = 0,7089.
Si à la place, je lance:
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
Les retours sont précisément les chances d'être «bleu»: Backgroundblue
(0,7089) et les chances d'être accepté «rouge»: Backgroundred
(1,7353). Pas de rapport de cotes là-bas. Par conséquent, les deux valeurs de retour ne devraient pas être réciproques.
Enfin, comment lire les résultats s'il y a 3 facteurs dans le régresseur catégorique?
Même calcul manuel que [R]:
J'ai créé un ensemble de données fictives différent avec la même prémisse, mais cette fois il y avait trois origines ethniques: "rouge", "bleu" et "orange", et j'ai exécuté la même séquence:
Tout d'abord, le tableau de contingence:
Acceptance blue orange red Total
0 86 65 130 281
1 64 42 162 268
Total 150 107 292 549
Et calculé les chances d'entrer pour chaque groupe ethnique:
- Cotes acceptées si rouge = 1,246154;
- Cotes acceptées si bleu = 0,744186;
- Cotes acceptées si Orange = 0,646154
Ainsi que les différents rapports de cotes :
- OU rouge v bleu = 1,674519;
- OU rouge v orange = 1,928571;
- OU bleu v rouge = 0,597186;
- OU bleu v orange = 1,151717;
- OU orange v rouge = 0,518519; et
- OU orange v bleu = 0,868269
Et a procédé à la régression logistique désormais systématique suivie d'une exponentiation des coefficients:
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
Donner les chances d'entrer pour des "bleus" comme le (Intercept)
, et les rapports de cotes d'Orange contre Bleu dans Backgroundorange
, et le OU de Rouge contre Bleu dans Backgroundred
.
D'un autre côté, la régression sans interception n'a renvoyé, comme on pouvait le prévoir, que les trois cotes indépendantes :
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
R
qui appelle explicitement les coefficients (via la fonctioncoef
), vous appelez le "rapport de cotes" dans votre sortie. Cela suggère que vous voudrez peut-être revoir la distinction entre les deux.