Recherche…


Régression logistique sur le jeu de données Titanic

La régression logistique est un cas particulier du modèle linéaire généralisé , utilisé pour modéliser les résultats dichotomiques ( les modèles log-log probit et complémentaires sont étroitement liés).

Le nom provient de la fonction de lien utilisée, de la fonction logit ou log-odds . La fonction inverse du logit s'appelle la fonction logistique et est donnée par:

Cette fonction prend une valeur entre ] -Inf; + Inf [ et renvoie une valeur entre 0 et 1 ; c'est-à-dire que la fonction logistique prend un prédicteur linéaire et renvoie une probabilité.

La régression logistique peut être effectuée en utilisant la fonction glm avec l'option family = binomial (raccourci pour family = binomial(link="logit") , le logit étant la fonction de lien par défaut pour la famille binomiale).

Dans cet exemple, nous essayons de prédire le sort des passagers à bord du RMS Titanic.

Lire les données:

url <- "http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt"
titanic <- read.csv(file = url, stringsAsFactors = FALSE)

Nettoyez les valeurs manquantes:

Dans ce cas, nous remplaçons les valeurs manquantes par une approximation, la moyenne.

titanic$age[is.na(titanic$age)] <- mean(titanic$age, na.rm = TRUE) 

Entraînez le modèle:

titanic.train <- glm(survived ~ pclass + sex + age,
                         family = binomial, data = titanic)

Résumé du modèle:

summary(titanic.train)

Le résultat:

Call:
glm(formula = survived ~ pclass + sex + age, family = binomial, data = titanic)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.6452  -0.6641  -0.3679   0.6123   2.5615  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)  3.552261   0.342188  10.381  < 2e-16 ***
pclass2nd   -1.170777   0.211559  -5.534 3.13e-08 ***
pclass3rd   -2.430672   0.195157 -12.455  < 2e-16 ***
sexmale     -2.463377   0.154587 -15.935  < 2e-16 ***
age         -0.042235   0.007415  -5.696 1.23e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1686.8  on 1312  degrees of freedom
Residual deviance: 1165.7  on 1308  degrees of freedom
AIC: 1175.7

Number of Fisher Scoring iterations: 5
  • La première chose affichée est l'appel. C'est un rappel du modèle et des options spécifiées.

  • Ensuite, nous voyons les résidus de déviance, qui sont une mesure de l'ajustement du modèle. Cette partie de la sortie montre la distribution des résidus de déviance pour les cas individuels utilisés dans le modèle.

  • La partie suivante de la sortie montre les coefficients, leurs erreurs standard, la statistique z (parfois appelée statistique z Wald) et les valeurs p associées.

    • Les variables qualitatives sont "dummified". Une modalité est considérée comme la référence. La modalité de référence peut être modifiée avec I dans la formule.
    • Les quatre prédicteurs sont statistiquement significatifs à un niveau de 0,1%.
    • Les coefficients de régression logistique donnent la variation de la cote de log du résultat pour une augmentation d'une unité de la variable prédictive.
    • Pour voir le rapport de cotes (variation multiplicative de la probabilité de survie par unité d’augmentation dans une variable prédictive), exponez le paramètre.
    • Pour voir l'intervalle de confiance (IC) du paramètre, utilisez confint .
  • Au-dessous du tableau des coefficients se trouvent les indices d'ajustement, y compris les résidus nuls et déviants et le critère d'information d'Akaike (AIC), qui peuvent être utilisés pour comparer les performances du modèle.

    • Lorsque l'on compare des modèles ajustés par maximum de vraisemblance aux mêmes données, plus l'AIC est petit, meilleur est l'ajustement.
    • Une mesure de l'ajustement du modèle est la signification du modèle global. Ce test demande si le modèle avec prédicteurs s'adapte significativement mieux qu'un modèle avec seulement une interception (c'est-à-dire un modèle nul).

Exemple de rapports de cotes:

exp(coef(titanic.train)[3])

 pclass3rd 
0.08797765 

Avec ce modèle, comparé à la première classe, les passagers de 3ème classe ont environ un dixième de chances de survie.

Exemple d'intervalle de confiance pour les paramètres:

confint(titanic.train)

Waiting for profiling to be done...
                  2.5 %      97.5 %
(Intercept)  2.89486872  4.23734280
pclass2nd   -1.58986065 -0.75987230
pclass3rd   -2.81987935 -2.05419500
sexmale     -2.77180962 -2.16528316
age         -0.05695894 -0.02786211

Exemple de calcul de la signification du modèle global:

La statistique de test est distribuée au carré avec des degrés de liberté égaux aux différences de degrés de liberté entre le modèle actuel et le modèle nul (c.-à-d. Le nombre de variables prédictives dans le modèle).

with(titanic.train, pchisq(null.deviance - deviance, df.null - df.residual
, lower.tail = FALSE))
[1] 1.892539e-111

La valeur de p est proche de 0, montrant un modèle fortement significatif.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow