{"word_count": 814, "character_count": 6943}
Avant de parler davantage du premier devoir, un mot pour expliquer pourquoi dans la première partie il est important d'éviter d'utiliser des données temporelles (le cours présente des outils pour modéliser des données individuelles). Considérons un exemple simple (évoqué voilà plusieurs mois ici même), où on cherche à prédire un tour de poitrine conditionnellement à un tour de taille (pour une personne de sexe féminin, cf. le mannequin ci-contre). L'idée intuitive est qu'il doit exister une relation positive, possiblement linéaire entre les deux mensurations. A partir de données, on devrait pouvoir quantifier cette relation. On dispose pour cela de données, en ligne sur&#62; mensurations&#60;-read.table("+ http://freakonometrics.free.fr/mensurations.csv",+ header=TRUE,sep=";")&#62; head(mensurations[,-1])POITRINE TAILLE HANCHE HAUTEUR POIDS      AGE1       NA     NA     NA      NA    NA       NA2       94     58     89     165    51 22.242303       NA     NA     NA      NA    NA       NA4       94     58     89     165    51 22.403835       91     58     97     165    55       NA6       NA     NA     NA      NA    NA       NASi on regarde rapidement la corrélation entre la taille et la poitrine, cette dernière est faible,&#62; Z=mensurations[,c("TAILLE","POITRINE")]&#62; I=apply(Z,1,function(x) sum(is.na(x)))&#62; cor(Z[I==0,])TAILLE   POITRINETAILLE   1.00000000 0.09700002POITRINE 0.09700002 1.00000000... mais significativement non nulle,&#62; cor.test(Z[,1],Z[,2],,method = "pearson")Pearsons product-moment correlationdata:  Z[, 1] and Z[, 2]t = 2.4559, df = 635, p-value = 0.01432alternative hypothesis: true correlation is not equal to 095 percent confidence interval:0.0194634 0.1733769sample estimates:cor0.09700002Avec une -value de l'ordre de 1.5%, on va rejeter l'hypothèse  de nullité de la corrélation (c'est ici un test basé sur la transformation de Fisher). On peut aussi faire une régression simple,&#62; reg=lm(POITRINE~TAILLE,data=mensurations)&#62; summary(reg)Call:lm(formula = POITRINE ~ TAILLE, data = mensurations)Residuals:Min      1Q  Median      3Q     Max-9.7253 -3.4424 -0.2091  1.5576 13.8579Coefficients:Estimate Std. Error t value Pr(&#62;|t|)(Intercept) 82.67798    2.82953  29.220   &#60;2e-16 ***TAILLE       0.11663    0.04749   2.456   0.0143 *---Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 4.133 on 635 degrees of freedom(22 observations deleted due to missingness)Multiple R-squared: 0.009409,Adjusted R-squared: 0.007849F-statistic: 6.031 on 1 and 635 DF,  p-value: 0.01432(on notera que le test sur la corrélation, le test de significativité de la - seule - variable explicative, et le test de significativité globale donnent ici exactement la même -value de l'ordre de 1.5%). Là encore, on voit que le tour de taille a un effet significativement non nul... mais marginal. Graphiquement, la prédiction avec le tour de taille est le trait rouge,La valeur moyenne est en trait pointillé. On peut voir que la différence est infime,&#62; base=data.frame(TAILLE=seq(50,70,by=5))&#62; base$Pred.POITRINE=predict(reg,newdata=base)&#62; base$Moy.POITRINE=mean(POITRINE,na.rm=TRUE)&#62; baseTAILLE Pred.POITRINE Moy.POITRINE1     50      88.50935     89.615382     55      89.09248     89.615383     60      89.67562     89.615384     65      90.25876     89.615385     70      90.84189     89.61538Le soucis est que cette base est en fait une base sur données individuelles. En fait, il s'agit des mensurations des demoiselles qui ont posé comme playmate dans la version U.S. du magasine Playboy. Si on se restreint sur des sous-période, par exemple les années 70, on a des prédictions relativement différentes,&#62; submensurations=mensurations[abs(DATE-1975)&#60;=5,]&#62; subreg=lm(POITRINE~TAILLE,data=submensurations)&#62; summary(subreg)Call:lm(formula = POITRINE ~ TAILLE, data = submensurations)Residuals:Min     1Q Median     3Q    Max-8.655 -1.871 -0.655  1.750 13.155Coefficients:Estimate Std. Error t value Pr(&#62;|t|)(Intercept)  66.1485     7.3839   8.958 6.12e-15 ***TAILLE        0.4053     0.1230   3.296   0.0013 **---Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 3.574 on 117 degrees of freedom(2 observations deleted due to missingness)Multiple R-squared: 0.08496,Adjusted R-squared: 0.07714F-statistic: 10.86 on 1 and 117 DF,  p-value: 0.001299&#62; base$Pred70s.POITRINE=predict(subreg,newdata=base)&#62; baseTAILLE Pred.POITRINE Moy.POITRINE Pred70s.POITRINE1     50      88.50935     89.61538         86.412742     55      89.09248     89.61538         88.439173     60      89.67562     89.61538         90.465594     65      90.25876     89.61538         92.492015     70      90.84189     89.61538         94.51844que l'on peut visualiser ci-dessous,L'explication est que la morphologie des femmes (ou en tous les cas de celles qui ont posé nues dans Playboy) a beaucoup changé en 60 ans, comme évoquéprécédemment. On peut le voir en regardant l'évolution de la pente, par date (5ans)(le trait horizontal est la pente obtenue sur l'ensemble de la période). On peut d'ailleurs intégrer l'année dans notre modèle, en rajoutant le temps comme variable explicative dans la régression,&#62; reg=lm(POITRINE~TAILLE+DATE,data=mensurations)&#62; summary(reg)Call:lm(formula = POITRINE ~ TAILLE + DATE, data = mensurations)Residuals:Min      1Q  Median      3Q     Max-9.7304 -2.2184 -0.5405  2.0742 12.1041Coefficients:Estimate Std. Error t value Pr(&#62;|t|)(Intercept) 368.296266  18.008455  20.451  &#60; 2e-16 ***TAILLE        0.323319   0.042140   7.673 6.39e-14 ***DATE         -0.150301   0.009393 -16.002  &#60; 2e-16 ***---Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 3.491 on 634 degrees of freedom(22 observations deleted due to missingness)Multiple R-squared: 0.2944,Adjusted R-squared: 0.2922F-statistic: 132.3 on 2 and 634 DF,  p-value: &#60; 2.2e-16Visuellement, on aurait la prédiction suivante,Si on se place autour de 1970,&#62; submensurations=mensurations[abs(DATE-1970)&#60;=5,]&#62; subreg=lm(POITRINE~TAILLE,data=submensurations)&#62; predict(subreg,newdata=data.frame(TAILLE=c(55,70)))1        289.14361 95.75476alors qu'autour de 1990,&#62; submensurations=mensurations[abs(DATE-1990)&#60;=5,]&#62; subreg=lm(POITRINE~TAILLE,data=submensurations)&#62; predict(subreg,newdata=data.frame(TAILLE=c(55,70)))1        287.69853 92.70228Notons qu'on fait ici des régressions locales (dans ces deux derniers calculs), ce qui n'est pas ce qui est représenté visuellement... Si on veut une meilleure modélisation locale, il faudrait quitter le monde des modèles linéaires pour aller un peu plus loin. On verra en fin de cours si on a le temps d'en parlerCela dit, globalement, on avait un effet positif, mais il aurait été tout à fait possible d'avoir un effet (global négatif). C'est ce qui arrive dans le paradoxe de Simpson.