La régression logistique est typiquement utilisée avec des variables à expliquer binaires.

Expliquer un risque suicidaire élevé en prison par :
- la durée de la peine
- l’existence de mesures disciplinaires
- des antécédents d’abus dans l’enfance
Si on utilisait un modèle de régression linéaire multiple, on écrirait \(haut\_risque\_de\_suicide = a + b*durée + c*discip + d*abus + bruit\).

Le problème c’est qu’en utilisant un modèle linéaire, le bruit devant avoir une distribution normale, donc \(a + b*durée + c*discip + d*abus + bruit\) varie entre plus et moins l’infini, or la variable haut_risque_de_suicide est binaire.

Les statisticiens ont eu l’idée de transformer la variable \(Log[\frac{prob(haut\_risque\_de\_suicide)}{1-prob(haut\_risque\_de\_suicide)}] = a + b*durée + c*discip + d*abus\) (parce que ce log va lui aussi pouvoir varier entre plus et moins l’infini).
Comme on régresse une probabilité, le terme de bruit a disparu. # 1. avec une seule variable explicative

mod1 <- glm(suicide.hr ~ abus, data = smp.l, family = 'binomial') # generalised linear model
summary(mod1)
## 
## Call:
## glm(formula = suicide.hr ~ abus, family = "binomial", data = smp.l)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.8446  -0.6020  -0.6020  -0.6020   1.8959  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -1.6161     0.1154 -14.003  < 2e-16 ***
## abus          0.7688     0.1897   4.052 5.07e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 760.21  on 752  degrees of freedom
## Residual deviance: 744.26  on 751  degrees of freedom
##   (46 observations deleted due to missingness)
## AIC: 748.26
## 
## Number of Fisher Scoring iterations: 4

p = 5.07e-05, il existe une association entre les antécédents d’abus dans l’enfance et un haut risque suicidaire.
Le coefficient b n’est pas interprétable en l’état, mais si la variable explicative (ici abus) est codée 0 pour non et 1 pour oui, alors exp(0.7688) = 2.157176 est l’odds ratio qui associe la variable explicative à la variable à expliquer.

Pour preuve, si on cherche à vérifier l’odds ratio, on le retrouve à 2.1571

Epi::twoby2(1-smp.l$suicide.hr, 1-smp.l$abus)
## 2 by 2 table analysis: 
## ------------------------------------------------------ 
## Outcome   : 0 
## Comparing : 0 vs. 1 
## 
##     0   1    P(0) 95% conf. interval
## 0  63  90  0.4118    0.3366   0.4913
## 1 147 453  0.2450    0.2122   0.2810
## 
##                                    95% conf. interval
##              Relative Risk: 1.6807    1.3276   2.1276
##          Sample Odds Ratio: 2.1571    1.4873   3.1287
## Conditional MLE Odds Ratio: 2.1547    1.4577   3.1764
##     Probability difference: 0.1668    0.0837   0.2525
## 
##              Exact P-value: 0.0001 
##         Asymptotic P-value: 0.0001 
## ------------------------------------------------------

2. avec plusieurs variables explicatives

mod2 <- glm(suicide.hr ~ abus + discip + duree, data = smp.l, family = 'binomial')
summary(mod2)
## 
## Call:
## glm(formula = suicide.hr ~ abus + discip + duree, family = "binomial", 
##     data = smp.l)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.3200  -0.6655  -0.6012  -0.4997   2.0700  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -0.02462    0.49635  -0.050 0.960439    
## abus         0.62289    0.22764   2.736 0.006213 ** 
## discip       0.52809    0.23767   2.222 0.026287 *  
## duree       -0.39862    0.11723  -3.400 0.000673 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 555.94  on 549  degrees of freedom
## Residual deviance: 533.26  on 546  degrees of freedom
##   (249 observations deleted due to missingness)
## AIC: 541.26
## 
## Number of Fisher Scoring iterations: 4

Nos trois variables explicatives sont associées à un haut risque suicidaire (toutes choses égales par ailleurs, c’est à dire aux deux autres variables explicatives constantes).
Les coefficients (colonne Estimate), sont positifs pour abus et conditions displinaires (qui sont codées 1 quand présent), donc toute présence d’abus ou de condition disciplinaire augmente le risque suicidaire. La durée, elle codée de 1 à 5 est négative, donc contrairement à ce que l’on aurait pu penser, la durée d’incarcération longue diminue la probabilité d’être à haut risque suicidaire.
Pour interpréter l’amplitude de ces coefficients il faut les mettre en exponentielle

exp(coefficients(mod2))
## (Intercept)        abus      discip       duree 
##   0.9756803   1.8643147   1.6956873   0.6712485

Pour les deux variables abus et discip qui sont codées binaires, on obtient les odds ratio (l’existence d’abus dans l’enfance multiplie par 1.8643147 le risque d’être à haut risque suicidaire en prison et ce, independemment des sanctions disciplinaires ou de la durée d’emprisonnement). Pour la durée d’incarcération (codée de 1 à 5), c’est quand on change de palier de durée d’incarcération, le niveau de haut risque suicidaire diminue de 30% (1 - 0.6712485)

3. autre

On peut utiliser des variables catégorielles à plus de deux classes quand dans la régression linaire, pour obtenir l’effet global de la variable il faudra utiliser drop1(mod1, .~., test = 'chisq') (attention à bien changer le type de test pour un chisq).
On peut également tester une interaction entre deux variables explicatives avec le signe *.

4. conditions de validité de la régression logistique

Il faut au moins 5 à 10 évènements par variable explicative : ce n’est pas le fait d’avoir 799 détenus dans la base de donnée.
Prenons l’exemple de la variable à expliquer “forme sévère de schizophrénie” (54 détenus) et qu’on choisit comme variables explicatives l’âge (1 évènement), le trauma dans l’enfance (1 évènement) et la profession (catégorielle à huit classes, donc sera re-codé en 7 variables binaires). Il faudrait \((1+1+7)*10 = 90\) détenus pour la variable à expliquer (or on n’en a que 54). Ça passe si on prend la fourchette basse \((1+1+7)*5 = 45\), mais c’est franchement limite.

Lire la suite

A-Introduction et représentations graphiques
B-Dispersion et intervalles de confiance
C-Coefficient de corrélation
D-Tests statistiques
E-Régression linéaire
F-Régression logistique
G-Données de survie
H-Statistique exploratoire multidimensionnelle