De exp (coefficients) à Odds Ratio et leur interprétation en régression logistique avec facteurs

14

J'ai effectué une régression linéaire de l'acceptation à l'université par rapport aux scores SAT et à l'origine familiale / ethnique. Les données sont fictives. Il s'agit d'un suivi d'une question précédente, déjà répondu. La question se concentre sur la collecte et l'interprétation des rapports de cotes lorsque l'on laisse les scores SAT de côté pour plus de simplicité.

Les variables sont Accepted(0 ou 1) et Background("rouge" ou "bleu"). J'ai configuré les données pour que les personnes de fond "rouge" soient plus susceptibles d'entrer:

fit <- glm(Accepted~Background, data=dat, family="binomial")
exp(cbind(Odds_Ratio_RedvBlue=coef(fit), confint(fit)))

                        Odds_Ratio_RedvBlue             2.5 %       97.5 %
(Intercept)             0.7088608                     0.5553459   0.9017961
Backgroundred           2.4480042                     1.7397640   3.4595454

Des questions:

  1. Est-ce que 0,7 est le rapport impair d'une personne de fond "bleu" acceptée? Je pose cette question car j'obtiens également 0,7 pour " Backgroundblue" si à la place j'exécute le code suivant:

    fit <- glm(Accepted~Background-1, data=dat, family="binomial")
    exp(cbind(OR=coef(fit), confint(fit)))
  2. UNEccepte/Re:UNEccepte/BlueOsBlue=1/OsRe

Antoni Parellada
la source
1
Ce Rqui appelle explicitement les coefficients (via la fonction coef), vous appelez le "rapport de cotes" dans votre sortie. Cela suggère que vous voudrez peut-être revoir la distinction entre les deux.
whuber
J'ai lu le post sur votre hyperlien.
Antoni Parellada
Les coefficients sont exponentiels: exp (coef (fit)).
Antoni Parellada
Oui: et comme expliqué dans ma réponse dans ce fil, l'exponentiation de l'interception vous donne les chances du cas de référence.
whuber

Réponses:

13

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:

Os UNEccept jeF ReOs UNEcccept jeF Blue=177/102112/158=1.73530,7089=2,448

Et c'est le Backgroundredretour 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
Antoni Parellada
la source
Félicitations, vous avez fait un bon travail pour comprendre cela.
gung - Rétablir Monica