Eu tenho trabalhado para responder minha pergunta calculando manualmente as probabilidades e os índices de chances:
Acceptance blue red Grand Total
0 158 102 260
1 112 177 289
Total 270 279 549
Portanto, a razão de chances de entrar na escola de vermelho sobre azul é:
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
E este é o Backgroundred
retorno 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
(Intercept)
112 / 158 = 0,7089
Se, em vez disso, eu corro:
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
Os retornos são precisamente as chances de ser 'azul': Backgroundblue
(0,7089) e as chances de ser aceito como 'vermelho': Backgroundred
(1,7353). Não há Odds Ratio lá. Portanto, não se espera que os dois valores de retorno sejam recíprocos.
Finalmente, como ler os resultados se houver três fatores no regressor categórico?
Mesmo cálculo manual versus [R]:
Criei um conjunto de dados fictícios diferente com a mesma premissa, mas desta vez havia três origens étnicas: "vermelho", "azul" e "laranja" e executei a mesma sequência:
Primeiro, a tabela de contingência:
Acceptance blue orange red Total
0 86 65 130 281
1 64 42 162 268
Total 150 107 292 549
E calculou as chances de entrar para cada grupo étnico:
- As probabilidades aceitam se vermelho = 1,246154;
- As probabilidades aceitam se azul = 0,744186;
- As probabilidades aceitam se laranja = 0.646154
Bem como os diferentes Odds Ratios :
- OR vermelho v azul = 1,674519;
- OR vermelho v laranja = 1,928571;
- OR azul v vermelho = 0,597186;
- OR azul v laranja = 1,151717;
- OR laranja v vermelho = 0,518519; e
- OR laranja v azul = 0,868269
E prosseguiu com a regressão logística agora rotineira seguida pela exponenciação dos coeficientes:
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
Obtendo as chances de entrar para "blues" como o (Intercept)
, e as Odds Ratios de Orange versus Blue in Backgroundorange
, e o OR de Red v Blue in Backgroundred
.
Por outro lado, a regressão sem interceptação retornou previsivelmente apenas as três probabilidades independentes :
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
chama explicitamente os coeficientes (através da funçãocoef
) que você está chamando de "odds ratio" em sua saída. Isso sugere que você pode revisar a distinção entre os dois.