Exercices M1 SES 2014-2015
Transcription
Exercices M1 SES 2014-2015
Exercices M1 SES 2014-2015 Ana Fermin (http:// fermin.perso.math.cnrs.fr/ ) 14 Avril 2015 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/stat2430/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) 57000, 40200, 21450, 21900, 45000, 32100, 36000, 2190... $ salbegin (int) 27000, 18750, 12000, 13200, 21000, 13500, 18750, 9750... $ jobtime (int) 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 9... $ prevexp (int) 144, 36, 381, 190, 138, 67, 114, 0, 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 Min. : 15750 1st Qu.: 24000 Median : 28875 Mean : 34420 3rd Qu.: 36938 Max. :135000 educ Min. : 8.00 1st Qu.:12.00 Median :12.00 Mean :13.49 3rd Qu.:15.00 Max. :21.00 salbegin Min. : 9000 1st Qu.:12488 Median :15000 Mean :17016 3rd Qu.:17490 Max. :79980 minority sex Non:370 H:258 Oui:104 F:216 jobtime Min. :63.00 1st Qu.:72.00 Median :81.00 Mean :81.11 3rd Qu.:90.00 Max. :98.00 1 prevexp Min. : 0.00 1st Qu.: 19.25 Median : 55.00 Mean : 95.86 3rd Qu.:138.75 Max. :476.00 300 count count 200 100 200 100 0 0 H F Non sex Oui minority 150 90 count count 100 60 50 30 0 0 5e+04 1e+05 20000 salary 40000 60000 80000 salbegin Nous avons déterminé la matrice des corrélations pour l’ensemble des variables quantitatives. ## ## ## ## ## ## salary salbegin jobtime prevexp educ salary 1.00000000 0.88011747 0.084092267 -0.097466926 0.66055891 salbegin 0.88011747 1.00000000 -0.019753475 0.045135627 0.63319565 jobtime 0.08409227 -0.01975347 1.000000000 0.002978134 0.04737878 prevexp -0.09746693 0.04513563 0.002978134 1.000000000 -0.25235252 educ 0.66055891 0.63319565 0.047378777 -0.252352521 1.00000000 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 160000 120000 salary salary 1e+05 80000 5e+04 40000 20000 40000 60000 80000 20000 salbegin ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## 40000 60000 salbegin Call: lm(formula = salary ~ salbegin, data = Salaire) Residuals: Min 1Q Median -35424 -4031 -1154 3Q 2584 Max 49293 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.928e+03 8.887e+02 2.17 0.0305 * salbegin 1.909e+00 4.741e-02 40.28 <2e-16 *** --Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 8115 on 472 degrees of freedom Multiple R-squared: 0.7746, Adjusted R-squared: 0.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 R2 (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 80000 Normal Q−Q 20000 0 −20000 40000 80000 18 218 274 5.0 Standardized residuals Residuals 40000 Residuals vs Fitted 218 18 274 2.5 0.0 −2.5 120000 160000 Fitted values −2 0 2 Theoretical Quantiles 7. Commenter les résultats la régression linéaire multiple suivante. Que vaut R2 ? Donner son interprétation. Que vaut R2 ajusté ? ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## Call: lm(formula = salary ~ salbegin + jobtime + prevexp + educ + sex, data = Salaire) Residuals: Min 1Q Median -28446 -4048 -1014 3Q 2598 Max 45788 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -1.255e+04 3.475e+03 -3.612 0.000337 *** salbegin 1.723e+00 6.051e-02 28.472 < 2e-16 *** jobtime 1.545e+02 3.408e+01 4.534 7.37e-06 *** prevexp -1.944e+01 3.583e+00 -5.424 9.36e-08 *** educ 5.930e+02 1.666e+02 3.559 0.000410 *** sexF -2.233e+03 7.921e+02 -2.819 0.005021 ** --Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 Residual standard error: 7410 on 468 degrees of freedom Multiple R-squared: 0.8137, Adjusted R-squared: 0.8117 F-statistic: 408.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 10000 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: 10000 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.1804, 1073.5492, 529.2506, 785.6559, 919... $ income (dbl) 44361.625, 12106.135, 31767.139, 35704.494, 38463.496,... default No :9667 Yes: 333 student No :7056 Yes:2944 balance Min. : 0.0 1st Qu.: 481.7 Median : 823.6 Mean : 835.4 3rd Qu.:1166.3 Max. :2654.3 income Min. : 772 1st Qu.:21340 Median :34553 Mean :33517 3rd Qu.:43808 Max. :73554 10000 600 count count 7500 5000 400 2500 200 0 0 No Yes 0 default 2000 balance 6000 count 600 count 1000 400 200 0 4000 2000 0 0 20000 40000 60000 80000 No income Yes student 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 -2.2697 -0.1465 -0.0589 3Q -0.0221 Max 3.7589 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -1.065e+01 3.612e-01 -29.49 <2e-16 *** balance 5.499e-03 2.204e-04 24.95 <2e-16 *** --Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 2920.6 Residual deviance: 1596.5 AIC: 1600.5 on 9999 on 9998 degrees of freedom degrees of freedom 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 1000 dollars et 2000 dollars. Que peut-on en conclure ? ## balance ## 1 1000 ## 2 2000 ## 1 2 ## 0.005752145 0.585769370 Modèle 2 : ## ## Call: ## glm(formula = default ~ student, family = binomial(link = "logit"), ## data = Default) ## ## Deviance Residuals: 6 ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## Min -0.2970 1Q -0.2970 Median -0.2434 3Q -0.2434 Max 2.6585 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -3.50413 0.07071 -49.55 < 2e-16 *** studentYes 0.40489 0.11502 3.52 0.000431 *** --Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 2920.6 Residual deviance: 2908.7 AIC: 2912.7 on 9999 on 9998 degrees of freedom degrees of freedom 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 6850 2817 ## Yes 206 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 =0) . Est-ce que vos résultats coïncident avec les sorties ci-dessous ? ## student ## 1 Yes ## 2 No ## 1 2 ## 0.04313859 0.02919501 Modèle 3 : ## ## ## ## ## ## ## ## ## ## ## Call: glm(formula = default ~ student + balance, family = binomial(link = "logit"), data = Default) Deviance Residuals: Min 1Q Median -2.4578 -0.1422 -0.0559 Coefficients: 3Q -0.0203 Max 3.7435 Estimate Std. Error z value Pr(>|z|) 7 ## ## ## ## ## ## ## ## ## ## ## ## ## (Intercept) -1.075e+01 studentYes -7.149e-01 balance 5.738e-03 --Signif. codes: 0 '***' 3.692e-01 -29.116 < 2e-16 *** 1.475e-01 -4.846 1.26e-06 *** 2.318e-04 24.750 < 2e-16 *** 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 2920.6 Residual deviance: 1571.7 AIC: 1577.7 on 9999 on 9997 degrees of freedom degrees of freedom Number of Fisher Scoring iterations: 8 0.4 0.6 Yes No 0.0 0.2 π (x) 0.8 1.0 student (Yes ou 1) et no student (No ou 0) 0 500 1000 1500 2000 2500 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.40 ## 9999 No No 1569.0091 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 ## 0.001409096 0.050602655 0.148507089 Modèle 4 : ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## Call: glm(formula = default ~ balance + income + student, family = binomial, data = Default) Deviance Residuals: Min 1Q Median -2.4691 -0.1418 -0.0557 3Q -0.0203 Max 3.7383 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -1.087e+01 4.923e-01 -22.080 < 2e-16 *** balance 5.737e-03 2.319e-04 24.738 < 2e-16 *** income 3.033e-06 8.203e-06 0.370 0.71152 studentYes -6.468e-01 2.363e-01 -2.738 0.00619 ** --Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 2920.6 Residual deviance: 1571.5 AIC: 1579.5 on 9999 on 9996 degrees of freedom degrees of freedom Number of Fisher Scoring iterations: 8 10. Utiliser le critère AIC pour choisir un modèle. Lequel choisissez-vous ? Justifier. ## AIC.glm1 AIC.glm2 AIC.glm3 AIC.glm4 ## [1,] 1600.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 à 2500 g. Source : Hosmer, D.W. and Lemeshow, S. (1989). Applied Logistic Regression. New York : Wiley (site http://web.mit.edu/r_v3.0.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 Nom low 1 si poids à la naisance est superieur à 2.5 kg, 0 sinon. age âge de la mère. lwt le poids de la mère lors des dernières menstruations race l’ethnicité de la mère (1 = white, 2 = black, 3 = other). smoke 1 si tabagisme pendant la grossesse, 0 sinon ptl nombre d’accouchement prématuré précédente. ht 1 si antécédent d’hypertension, 0 sinon. ui 1 si présence d’irritabilité utérine, 0 sinon. ftv le nombre de visites médicales durant le premier trimestre de grossesse. bwt poids à la naissance en grammes. Observations: Variables: $ low (int) $ age (int) $ lwt (int) $ race (int) $ smoke (int) $ ptl (int) $ ht (int) $ ui (int) $ ftv (int) $ bwt (int) 189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,... 19, 33, 20, 21, 18, 21, 22, 17, 29, 26, 19, 19, 22, 30, ... 182, 155, 105, 108, 107, 124, 118, 103, 123, 113, 95, 15... 2, 3, 1, 1, 1, 3, 1, 3, 1, 1, 3, 3, 3, 3, 1, 1, 2, 1, 3,... 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0,... 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,... 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,... 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,... 0, 3, 1, 2, 0, 0, 1, 1, 1, 0, 0, 1, 0, 2, 0, 0, 0, 3, 0,... 2523, 2551, 2557, 2594, 2600, 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, 20, 21, 18, 21, 22, 17, 29, 26, 19, 19, 22, 30, ... $ lwt (int) 182, 155, 105, 108, 107, 124, 118, 103, 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) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,... $ 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) 0, 3, 1, 2, 0, 0, 1, 1, 1, 0, 0, 1, 0, 2, 0, 0, 0, 3, 0,... $ bwt (int) 2523, 2551, 2557, 2594, 2600, 2622, 2637, 2637, 2663, 26... 10 100 75 count count 100 50 50 25 0 0 normal low white black low other race 120 15 count count 90 60 10 30 5 0 0 no yes 20 30 smoke 40 age 100 30 75 count count 20 50 10 25 0 0 100 150 200 250 0 lwt 2 4 ftv 11 6 15 150 count count 10 100 5 50 0 0 1000 2000 3000 4000 5000 0 1 bwt 2 3 ptl 150 100 count count 150 100 50 50 0 0 no yes no ui yes ht 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.00 19.00 23.00 23.66 28.00 45.00 ## -------------------------------------------------------## low: low ## Min. 1st Qu. Median Mean 3rd Qu. Max. ## 14.00 19.50 22.00 22.31 25.00 34.00 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 -1.0951 -0.9022 -0.8018 3Q 1.3609 Max 1.9821 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 0.99831 0.78529 1.271 0.2036 lwt -0.01406 0.00617 -2.279 0.0227 * --Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 234.67 Residual deviance: 228.69 AIC: 232.69 on 188 on 187 degrees of freedom degrees of freedom 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 -1.1352 -0.9088 -0.7480 3Q 1.3392 Max 2.0595 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 1.748773 0.997097 1.754 0.0795 . lwt -0.012775 0.006211 -2.057 0.0397 * age -0.039788 0.032287 -1.232 0.2178 --Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 234.67 Residual deviance: 227.12 AIC: 233.12 on 188 on 186 degrees of freedom degrees of freedom 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 -1.4163 -0.8931 -0.7113 3Q 1.2454 Max 2.0755 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 1.295366 1.071443 1.209 0.2267 lwt -0.014245 0.006541 -2.178 0.0294 * raceblack 1.003898 0.497859 2.016 0.0438 * raceother 0.433108 0.362240 1.196 0.2318 ftv -0.049308 0.167239 -0.295 0.7681 age -0.023823 0.033730 -0.706 0.4800 --Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 234.67 Residual deviance: 222.57 AIC: 234.57 on 188 on 183 degrees of freedom degrees of freedom Number of Fisher Scoring iterations: 4 14