Exercices M1 SES 214-215 Ana Fermin (http:// fermin.perso.math.cnrs.fr/ ) 14 Avril 215 Les exemples numériques présentés dans ce document d exercices ont été traités sur le logiciel R, téléchargeable par l intermédiaire du CRAN (Comprehensive R Archive Network) à l adresse http://www.r-project.org. Dans chaque exercice, nous ne donnerons que les sorties de R (ici nous ne donnerons pas les commandes utilisées). Exercice 1 : Nous souhaitons étudier les données enregistrées dans le fichier salaires.txt (téléchargeable sur http://www.stat.ucl.ac.be/cours/stat243/exercices.html et également sur ma page web). Ce fichier contient les données observées sur un échantillon de 474 employés tirés au sort dans une entreprise canadienne. Les variables étudiées sont les suivantes : salary : salaire brut actuel, en $/an salbegin : salaire de départ, en $/an jobtime : nombre de mois depuis l entrée dans l entreprise prevexp : expérience professionnelle antérieure (nombre de mois de travail avant l entrée dans l entreprise) educ : nombre d années d étude minority : appartenance à une minorité (Non, Oui) sex : sexe (H = Homme, F = Femme) 1. Décrire les données à l aide du résumé de variables et des graphiques ci-dessous. Indiquer quelles sont les variables quantitatives et qualitatives. Commenter les graphiques. Observations: 474 Variables: $ salary (int) 57, 42, 2145, 219, 45, 321, 36, 219... $ salbegin (int) 27, 1875, 12, 132, 21, 135, 1875, 975... $ jobtime (int) 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 9... $ prevexp (int) 144, 36, 381, 19, 138, 67, 114,, 115, 244, 143, 26... $ educ (int) 15, 16, 12, 8, 15, 15, 15, 12, 15, 12, 16, 8, 15, 15,... $ minority (fctr) Non, Non, Non, Non, Non, Non, Non, Non, Non, Non, No... $ sex (fctr) H, H, F, F, H, H, H, F, F, F, F, H, H, F, H, H, H, H... salary salbegin jobtime prevexp Min. : 1575 Min. : 9 Min. :63. Min. :. 1st Qu.: 24 1st Qu.:12488 1st Qu.:72. 1st Qu.: 19.25 Median : 28875 Median :15 Median :81. Median : 55. Mean : 3442 Mean :1716 Mean :81.11 Mean : 95.86 3rd Qu.: 36938 3rd Qu.:1749 3rd Qu.:9. 3rd Qu.:138.75 Max. :135 Max. :7998 Max. :98. Max. :476. educ minority sex Min. : 8. Non:37 H:258 1st Qu.:12. Oui:14 F:216 Median :12. Mean :13.49 3rd Qu.:15. Max. :21. 1
2 3 1 2 1 H sex F Non minority Oui 15 9 6 1 3 5 5e+4 1e+5 salary 2 4 6 8 salbegin Nous avons déterminé la matrice des corrélations pour l ensemble des variables quantitatives. salary salbegin jobtime prevexp educ salary 1..8811747.8492267 -.97466926.6655891 salbegin.8811747 1. -.19753475.45135627.63319565 jobtime.849227 -.1975347 1..2978134.4737878 prevexp -.9746693.4513563.2978134 1. -.25235252 educ.6655891.63319565.47378777 -.252352521 1. 2. Indiquer pour quels couples de variables la corrélation linéaire observée est la plus forte, la plus faible. Nous avons tracé, ci-dessous, à gauche le nuage de points représentant les observations conjointes des deux variables salaire de départ salbegin et salaire actuel salary et à droite l ajustement avec un modèle de régression linéaire simple. Nous avons également relevé les sorties de la régression linéaire simple. 2
16 1e+5 12 salary salary 8 5e+4 4 2 4 6 8 salbegin 2 4 6 8 salbegin Call: lm(formula = salary ~ salbegin, data = Salaire) Residuals: Min 1Q Median 3Q Max -35424-431 -1154 2584 49293 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) 1.928e+3 8.887e+2 2.17.35 * salbegin 1.99e+ 4.741e-2 4.28 <2e-16 *** --- Signif. codes: '***'.1 '**'.1 '*'.5 '.'.1 ' ' 1 Residual standard error: 8115 on 472 degrees of freedom Multiple R-squared:.7746, Adjusted R-squared:.7741 F-statistic: 1622 on 1 and 472 DF, p-value: < 2.2e-16 3. Que peut-on dire de la corrélation linéaire entre le salaire de départ et le salaire actuel? La dispersion des salaires actuels augmente-t-elle quand le salaire de départ augmente? Commenter. 4. Commenter les résultats de la régression linéaire simple. On veut savoir si la variable salaire du départ a une influence sur le salaire actuel. Effectuer un test d hypothèses au niveau α = 5% pour répondre à la question (écrire les hypothèses du test, donner la p-valeur et conclure). 5. Que vaut R 2 (coefficient de détermination)? Donner son interprétation. 6. Quel est le graphe qui permet de vérifier la normalité des résidus? Quel est le graphe qui permet de vérifier l homoscédasticité des résidus? Commenter ces deux graphiques : pensez vous que ces deux conditions sur le modèle sont vérifiées? Justifier. 3
4 Residuals vs Fitted 218 18 274 5. Normal Q Q 18 218 274 Residuals 2 2 Standardized residuals 2.5. 2.5 4 8 12 16 Fitted values 2 2 Theoretical Quantiles 7. Commenter les résultats la régression linéaire multiple suivante. Que vaut R 2? Donner son interprétation. Que vaut R 2 ajusté? Call: lm(formula = salary ~ salbegin + jobtime + prevexp + educ + sex, data = Salaire) Residuals: Min 1Q Median 3Q Max -28446-448 -114 2598 45788 Coefficients: Estimate Std. Error t value Pr(> t ) (Intercept) -1.255e+4 3.475e+3-3.612.337 *** salbegin 1.723e+ 6.51e-2 28.472 < 2e-16 *** jobtime 1.545e+2 3.48e+1 4.534 7.37e-6 *** prevexp -1.944e+1 3.583e+ -5.424 9.36e-8 *** educ 5.93e+2 1.666e+2 3.559.41 *** sexf -2.233e+3 7.921e+2-2.819.521 ** --- Signif. codes: '***'.1 '**'.1 '*'.5 '.'.1 ' ' 1 Residual standard error: 741 on 468 degrees of freedom Multiple R-squared:.8137, Adjusted R-squared:.8117 F-statistic: 48.7 on 5 and 468 DF, p-value: < 2.2e-16 4
Exercice 2 : Nous traitons un problème de défaut bancaire (données du livre An Introduction to Statistical Learning de Gareth James, Daniela Witten Trevor Hastie et Robert Tibshirani, également disponibles sur R). Nous cherchons à déterminer quels clients seront en défaut sur leur dette de carte de crédit (ici defaut = yes si le client fait défaut). La variable defaut est la variable réponse. Nous disposons d un échantillon de taille 1 et 3 variables explicatives : student: Yes si le client est un étudiant et No sinon balance: montant moyen mensuel d utilisation de la carte de crédit income: revenu du client. 1. Décrire les données à l aide du résumé des variables et des graphiques suivants : Observations: 1 Variables: $ default (fctr) No, No, No, No, No, No, No, No, No, No, No, No, No, N... $ student (fctr) No, Yes, No, No, No, Yes, No, Yes, No, No, Yes, Yes,... $ balance (dbl) 729.5265, 817.184, 173.5492, 529.256, 785.6559, 919... $ income (dbl) 44361.625, 1216.135, 31767.139, 3574.494, 38463.496,... default student balance income No :9667 No :756 Min. :. Min. : 772 Yes: 333 Yes:2944 1st Qu.: 481.7 1st Qu.:2134 Median : 823.6 Median :34553 Mean : 835.4 Mean :33517 3rd Qu.:1166.3 3rd Qu.:4388 Max. :2654.3 Max. :73554 1 75 6 5 25 4 2 No default Yes 1 2 balance 6 6 4 2 4 2 2 4 6 8 income No student Yes Sans perte de généralité, nous notons X une variable ou un vecteur de plusieurs variables explicatives. Nous allons estimer π(x) = P(default = 1 X = x) à l aide du modèle logistique. Pour illustrer un peu le problème 5
et le jeu de données, nous commencerons par des modèles simples et nous terminerons par des modèles multiples. Modèle 1 : Call: glm(formula = default ~ balance, family = binomial(link = "logit"), data = Default) Deviance Residuals: Min 1Q Median 3Q Max -2.2697 -.1465 -.589 -.221 3.7589 Coefficients: Estimate Std. Error z value Pr(> z ) (Intercept) -1.65e+1 3.612e-1-29.49 <2e-16 *** balance 5.499e-3 2.24e-4 24.95 <2e-16 *** --- Signif. codes: '***'.1 '**'.1 '*'.5 '.'.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 292.6 on 9999 degrees of freedom Residual deviance: 1596.5 on 9998 degrees of freedom AIC: 16.5 Number of Fisher Scoring iterations: 8 1. On veut savoir si la variable balance a une influence sur la variable default. Effectuer un test d hypothèses au niveau α = 5% pour répondre à la question (écrire les hypothèses du test. donner la p-valeur et conclure). 2. Utiliser les résultats ci-dessus pour donner l équation du modèle logistique ave les coefficients estimés. 3. Relever la valeur de la probabilité de défaut pour un client qui a un balance de 1 dollars et 2 dollars. Que peut-on en conclure? balance 1 1 2 2 1 2.5752145.58576937 Modèle 2 : Call: glm(formula = default ~ student, family = binomial(link = "logit"), data = Default) Deviance Residuals: 6
Min 1Q Median 3Q Max -.297 -.297 -.2434 -.2434 2.6585 Coefficients: Estimate Std. Error z value Pr(> z ) (Intercept) -3.5413.771-49.55 < 2e-16 *** studentyes.4489.1152 3.52.431 *** --- Signif. codes: '***'.1 '**'.1 '*'.5 '.'.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 292.6 on 9999 degrees of freedom Residual deviance: 298.7 on 9998 degrees of freedom AIC: 2912.7 Number of Fisher Scoring iterations: 6 4. Relever les coefficients estimées du modèle 2 et donner l équation du modèle logistique avec les coefficients estimés. Calculer aussi à la main les coefficients estimés du modèle à l aide du tableau de contingence suivant : student No Yes default No 685 2817 Yes 26 127 Est-ce que vous obtenez les mêmes résultats que celui du logiciel R? 5. Donner à la main les estimations de P(default = Yes student = Yes) et P(default = Yes student = No) (aide : considerer Yes = 1 et No =). Est-ce que vos résultats coïncident avec les sorties ci-dessous? student 1 Yes 2 No 1 2.4313859.291951 Modèle 3 : Call: glm(formula = default ~ student + balance, family = binomial(link = "logit"), data = Default) Deviance Residuals: Min 1Q Median 3Q Max -2.4578 -.1422 -.559 -.23 3.7435 Coefficients: Estimate Std. Error z value Pr(> z ) 7
(Intercept) -1.75e+1 3.692e-1-29.116 < 2e-16 *** studentyes -7.149e-1 1.475e-1-4.846 1.26e-6 *** balance 5.738e-3 2.318e-4 24.75 < 2e-16 *** --- Signif. codes: '***'.1 '**'.1 '*'.5 '.'.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 292.6 on 9999 degrees of freedom Residual deviance: 1571.7 on 9997 degrees of freedom AIC: 1577.7 Number of Fisher Scoring iterations: 8 π (x)..2.4.6.8 1. Yes No student (Yes ou 1) et no student (No ou ) 5 1 15 2 25 balance 6. Commenter le graphique obtenu avec les sorties du Modèle 3. Que pouvez vous suggérer? 7. Relever les valeurs estimées des trois coefficients du Modèle 3. Donner l équation du modèle logistique avec les coefficients estimés pour les student=yes et pour les student=no. 8. Commenter les sorties R suivantes : default student balance income 1 No No 729.5265 44361.63 137 Yes Yes 1486.9981 17854.4 9999 No No 1569.91 36669.11 9. Nous avons relevé les valeurs estimées de la proportion de defaut selon les caractéristiques de trois clients au hasard. Est-ce qu on peut dire si ces trois clients feront default? Que peut-on en conclure? 8
1 137 9999.14996.562655.1485789 Modèle 4 : Call: glm(formula = default ~ balance + income + student, family = binomial, data = Default) Deviance Residuals: Min 1Q Median 3Q Max -2.4691 -.1418 -.557 -.23 3.7383 Coefficients: Estimate Std. Error z value Pr(> z ) (Intercept) -1.87e+1 4.923e-1-22.8 < 2e-16 *** balance 5.737e-3 2.319e-4 24.738 < 2e-16 *** income 3.33e-6 8.23e-6.37.71152 studentyes -6.468e-1 2.363e-1-2.738.619 ** --- Signif. codes: '***'.1 '**'.1 '*'.5 '.'.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 292.6 on 9999 degrees of freedom Residual deviance: 1571.5 on 9996 degrees of freedom AIC: 1579.5 Number of Fisher Scoring iterations: 8 1. Utiliser le critère AIC pour choisir un modèle. Lequel choisissez-vous? Justifier. AIC.glm1 AIC.glm2 AIC.glm3 AIC.glm4 [1,] 16.452 2914.683 1579.682 1581.682 9
Exercice 3 : Une étude conduite aux USA en 1986 cherche à cerner les facteurs pouvant augmenter le risque de donner naissance à des bébés de faible poids inférieur à 25 g. Source : Hosmer, D.W. and Lemeshow, S. (1989). Applied Logistic Regression. New York : Wiley (site http://web.mit.edu/r_v3..1/lib/r/library/mass/html/birthwt.html). Les données sont stockées aussi dans le fichier birthwt.txt téléchargeables sur ma page web et également sous R dans le package MASS. Les variables considérées sont mesurées sur 189 bébés. Variable low age lwt race smoke ptl ht ui ftv bwt Nom 1 si poids à la naisance est superieur à 2.5 kg, sinon. âge de la mère. le poids de la mère lors des dernières menstruations l ethnicité de la mère (1 = white, 2 = black, 3 = other). 1 si tabagisme pendant la grossesse, sinon nombre d accouchement prématuré précédente. 1 si antécédent d hypertension, sinon. 1 si présence d irritabilité utérine, sinon. le nombre de visites médicales durant le premier trimestre de grossesse. poids à la naissance en grammes. Observations: 189 Variables: $ low (int),,,,,,,,,,,,,,,,,,,... $ age (int) 19, 33, 2, 21, 18, 21, 22, 17, 29, 26, 19, 19, 22, 3,... $ lwt (int) 182, 155, 15, 18, 17, 124, 118, 13, 123, 113, 95, 15... $ race (int) 2, 3, 1, 1, 1, 3, 1, 3, 1, 1, 3, 3, 3, 3, 1, 1, 2, 1, 3,... $ smoke (int),, 1, 1, 1,,,, 1, 1,,,,, 1, 1,, 1,,... $ ptl (int),,,,,,,,,,,,, 1,,,,,,... $ ht (int),,,,,,,,,,,, 1,,,,,,,... $ ui (int) 1,,, 1, 1,,,,,,,,, 1,,,,, 1,... $ ftv (int), 3, 1, 2,,, 1, 1, 1,,, 1,, 2,,,, 3,,... $ bwt (int) 2523, 2551, 2557, 2594, 26, 2622, 2637, 2637, 2663, 26... Ces nécessitent quelques recodages. Nous avons transformé certains variables à facteur (variables qualitatives). Observations: 189 Variables: $ low (fctr) normal, normal, normal, normal, normal, normal, normal,... $ age (int) 19, 33, 2, 21, 18, 21, 22, 17, 29, 26, 19, 19, 22, 3,... $ lwt (int) 182, 155, 15, 18, 17, 124, 118, 13, 123, 113, 95, 15... $ race (fctr) black, other, white, white, white, other, white, other,... $ smoke (fctr) no, no, yes, yes, yes, no, no, no, yes, yes, no, no, no... $ ptl (int),,,,,,,,,,,,, 1,,,,,,... $ ht (fctr) no, no, no, no, no, no, no, no, no, no, no, no, yes, no... $ ui (fctr) yes, no, no, yes, yes, no, no, no, no, no, no, no, no,... $ ftv (int), 3, 1, 2,,, 1, 1, 1,,, 1,, 2,,,, 3,,... $ bwt (int) 2523, 2551, 2557, 2594, 26, 2622, 2637, 2637, 2663, 26... 1
1 1 75 5 5 25 normal low low white black other race 12 9 15 6 3 1 5 no smoke yes 2 3 4 age 3 1 2 1 75 5 25 1 15 2 25 lwt 2 4 6 ftv 11
15 15 1 1 5 5 1 2 3 4 5 bwt 1 2 3 ptl 15 15 1 1 5 5 no ui yes no ht yes Parmi les variables d intérêt figurent : low, age, lwt, ftv, race. Nous avons croisé la varaible quantitative age avec la variable catégorielle low. Les résumés numériques séparés pour chaque niveau de la variable catégorielle sont : low: normal Min. 1st Qu. Median Mean 3rd Qu. Max. 14. 19. 23. 23.66 28. 45. -------------------------------------------------------- low: low Min. 1st Qu. Median Mean 3rd Qu. Max. 14. 19.5 22. 22.31 25. 34. Pour comprende le problème nous avons commencé par des modèles simples et nous avons terminé par des modèles plus complexes. Nous avons ajusté un modèle logistique expliquant la probabilité qu un bébé naisse avec un faible poids à partir de la variable explicative lwt. 12
Call: glm(formula = low ~ lwt, family = binomial, data = Poids) Deviance Residuals: Min 1Q Median 3Q Max -1.951 -.922 -.818 1.369 1.9821 Coefficients: Estimate Std. Error z value Pr(> z ) (Intercept).99831.78529 1.271.236 lwt -.146.617-2.279.227 * --- Signif. codes: '***'.1 '**'.1 '*'.5 '.'.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 234.67 on 188 degrees of freedom Residual deviance: 228.69 on 187 degrees of freedom AIC: 232.69 Number of Fisher Scoring iterations: 4 Nous avons ajusté un modèle logistique expliquant la probabilité qu un bébé naisse avec un faible poids à partir des variables explicatives age et lwt. Call: glm(formula = low ~ lwt + age, family = binomial, data = Poids) Deviance Residuals: Min 1Q Median 3Q Max -1.1352 -.988 -.748 1.3392 2.595 Coefficients: Estimate Std. Error z value Pr(> z ) (Intercept) 1.748773.99797 1.754.795. lwt -.12775.6211-2.57.397 * age -.39788.32287-1.232.2178 --- Signif. codes: '***'.1 '**'.1 '*'.5 '.'.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 234.67 on 188 degrees of freedom Residual deviance: 227.12 on 186 degrees of freedom AIC: 233.12 Number of Fisher Scoring iterations: 4 Nous avons ajusté un modèle logistique expliquant la probabilité qu un bébé naisse avec un faible poids à partir des variables explicatives age, lwt, ftv et race. 13
Call: glm(formula = low ~ lwt + race + ftv + age, family = binomial, data = Poids) Deviance Residuals: Min 1Q Median 3Q Max -1.4163 -.8931 -.7113 1.2454 2.755 Coefficients: Estimate Std. Error z value Pr(> z ) (Intercept) 1.295366 1.71443 1.29.2267 lwt -.14245.6541-2.178.294 * raceblack 1.3898.497859 2.16.438 * raceother.43318.36224 1.196.2318 ftv -.4938.167239 -.295.7681 age -.23823.3373 -.76.48 --- Signif. codes: '***'.1 '**'.1 '*'.5 '.'.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 234.67 on 188 degrees of freedom Residual deviance: 222.57 on 183 degrees of freedom AIC: 234.57 Number of Fisher Scoring iterations: 4 14