{"word_count": 1045, "character_count": 8482}
Hier, on a évoqué en cours le théorème de Frisch-Waugh (évoqué sur ce blog il y a quelques mois). Derrière, il y a l'estimation de modèles sur des sous-ensembles de valeurs. Formellement, on a un modèle de la formeLes équations normales sont ici (cf transparents du cours, ou équations écrites au tableau) , que l'on peut écrire sous la forme d'un système,Le point intéressant est que si les variables dans le premier ensemble et les variables dans le second sont orthogonales, i.e.  et , alors les termes diagonaux du système disparaissent, et on retrouve les équations normales des régressions simples, i.e.On a ici une conséquence du théorème de Frisch-Waugh: si les variables sont orthogonales, les estimateurs dans la régression multiple coïncident avec ceux obtenus avec des régressions simples.Afin de mieux clarifier ce point, écrivons ce qui se passerait avec seulement deux variables. On va associer la constante à la première, i.e.Dans ce cas, les équations normales sontBref, il faut que  et  soient orthogonales pour que le terme sur la seconde diagonale disparaisse. C'est ce qu'on retrouve dans la plupart des livres d'économétrie, il suffit de chercher le théorème de Frisch-Waugh dans l'index (même si le théorème de Frisch-Waugh va beaucoup plus loin puisqu'il explique quels ajustement faire pour lier les estimateurs dans une régression simple, et dans le cas multiple).Mais est-ce un résultat purement théorique ou peut-on l'invoquer dans un cas pratique ? Autrement dit, si deux variables semblent orthogonales, que se passent-il numériquement ? Si je simule des variables explicatives indépendantes, les estimateurs coïncident-ils (comme le suggère la théorie) ?Considérons un modèle linéaire avec deux variables explicative que l'on supposera indépendantes, mais ayant toutes deux un impact sur la variable explicative. Le plus simple est de considérer un triple de variables telles queoù  désigne des valeurs non nulles. Par exemple,&#62; set.seed(1)&#62; n=100&#62; S=matrix(c(1,.4,.3,.4,1,0,.3,0,1),3,3)&#62; S[,1] [,2] [,3][1,]  1.0  0.4  0.3[2,]  0.4  1.0  0.0[3,]  0.3  0.0  1.0&#62; M=c(1,3,6)&#62; Z=rmnorm(n,M,varcov=S)&#62; Y=Z[,1]; X1=Z[,2]; X2=Z[,3]&#62; base=data.frame(Y,X1,X2)&#62; cor(base)Y          X1          X2Y  1.0000000  0.37796580  0.27859381X1 0.3779658  1.00000000 -0.05060539X2 0.2785938 -0.05060539  1.00000000On a simulé ici deux variables indépendantes, mais toutes deux corrélées avec la variable d'intérêt. On notera que numériquement(autrement dit, en moyenne, on simulera des données indépendantes, mais dans ce cas précis, les données ne sont pas rigoureusement orthogonales).&#62; sum(X1*X2)/n[1] 18.20194&#62; sum(X1)*sum(X2)/n^2[1] 18.25097Mais un test rapide nous pousse à accepter l'hypothèse d'indépendance entre les deux variables (sans trop d'hésitations).&#62; cor.test(X1,X2)Pearsons product-moment correlationdata:  X1 and X2t = -0.5016, df = 98, p-value = 0.6171alternative hypothesis: true correlation is not equal to 095 percent confidence interval:-0.2445923  0.1472766sample estimates:cor-0.05060539Si on regarde maintenant la régression,&#62; R=lm(Y~X1+X2,data=base)&#62; summary(R)Call:lm(formula = Y ~ X1 + X2, data = base)Residuals:Min       1Q   Median       3Q      Max-1.87885 -0.57656  0.07957  0.52719  1.77407Coefficients:Estimate Std. Error t value Pr(&#62;|t|)(Intercept)  4.71180    0.28246  16.682  &#60; 2e-16 ***X1           0.37232    0.08441   4.411 2.66e-05 ***X2           0.25975    0.07755   3.350  0.00115 **---Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 0.7954 on 97 degrees of freedomMultiple R-squared: 0.2317,Adjusted R-squared: 0.2159F-statistic: 14.63 on 2 and 97 DF,  p-value: 2.803e-06Quel est le lien avec les régressions simples, sur chacune des variables ? Si on régresse sur la première, on obtient&#62; R1=lm(Y~X1,data=base)&#62; summary(R1)Call:lm(formula = Y ~ X1, data = base)Residuals:Min       1Q   Median       3Q      Max-1.78973 -0.54060  0.04036  0.44138  1.94389Coefficients:Estimate Std. Error t value Pr(&#62;|t|)(Intercept)  5.03165    0.27934  18.013  &#60; 2e-16 ***X1           0.35802    0.08859   4.041 0.000106 ***---Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 0.8358 on 98 degrees of freedomMultiple R-squared: 0.1429,Adjusted R-squared: 0.1341F-statistic: 16.33 on 1 and 98 DF,  p-value: 0.0001058et si on régresse sur la seconde&#62; R2=lm(Y~X2,data=base)&#62; summary(R2)Call:lm(formula = Y ~ X2, data = base)Residuals:Min      1Q  Median      3Q     Max-1.8652 -0.5507  0.1104  0.6109  2.1435Coefficients:Estimate Std. Error t value Pr(&#62;|t|)(Intercept)  5.85053    0.12495  46.824  &#60; 2e-16 ***X2           0.24244    0.08443   2.872  0.00501 **---Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1Residual standard error: 0.867 on 98 degrees of freedomMultiple R-squared: 0.07761,Adjusted R-squared: 0.0682F-statistic: 8.246 on 1 and 98 DF,  p-value: 0.005005Si les données ne sont pas rigoureusement orthogonales, alors  dans le modèle multiple est légèrement différent de  obtenu dans le modèle simple. Si on regarde la distribution de nos estimateurs (n'oublions pas qu'il y a une marge d'erreur), ils sont proches, ou au moins statistiquement proches (avec à gauche la distribution de  et à droite celle de )Si on génère 100 bases de données avec ce modèle (avec 500 observations à chaque fois) on obtient les estimateurs suivants (à gauche les  et à droite les , avec en abscisse le modèle multiple et en ordonnées, le modèle simple).(la valeur centrale étant la vraie valeur, utilisée pour les simulations). On pourrait se demander si les valeurs éloignées du barycentre (ou de cette première bissectrice) correspondent à des cas où l’hypothèse d'indépendance entre les deux variables est rejetée ? On peut mettre des couleurs différentes en fonction de la -value: plus la -value est faible (rejet de l'hypothèse d'indépendance) plus la couleur sera vive (et rouge), et plus la -value est forte (acceptation de l'hypothèse d'indépendance) plus la couleur sera terne (et jaune, voire blanche),sur 1,000 simulations, on obtientLe code est ici&#62; set.seed(1)&#62; library(mnormt)&#62; S=matrix(c(1,.4,.3,.4,1,0,.3,0,1),3,3)&#62; BX1=BX2=matrix(NA,1000,2)&#62; P=rep(NA,1000)&#62; for(s in 1:1000){+   n=500+   Z=rmnorm(n,c(6,3,1),varcov=S)+   Y=Z[,1]; X1=Z[,2]; X2=Z[,3]+   base=data.frame(Y,X1,X2)+   R=lm(Y~X1+X2,data=base)+   BX1[s,1]=coefficients(R)[2]+   BX2[s,1]=coefficients(R)[3]+   BX1[s,2]=coefficients(lm(Y~X1,data=base))[2]+   BX2[s,2]=coefficients(lm(Y~X2,data=base))[2]+   P[s]=cor.test(X1,X2)$p.value+ }&#62; COL=(heat.colors(100))&#62; plot(BX1[,1],BX1[,2],pch=19,cex=.6,col=COL[trunc(100*P)])&#62; abline(a=0,b=1,lty=2)Autrement dit le fait que l'estimation dans le modèle multiple et les modèles simples diffèrent beaucoup n'a rien a voir avec la -value d'un test d'indépendance entre les deux variables... étonnant non ? En revanche, si on rajoute une observation pour rendre le modèle parfaitement non-corrélé, par exemple,&#62; difference=sum(X1*X2)*(n+1)/sum(X1)-sum(X2)&#62; X1=c(X1,0)&#62; X2=c(X2,difference)&#62; n=n+1&#62; sum(X1*X2)/n[1] 18.02172&#62; sum(X1)*sum(X2)/n^2[1] 18.02172On retrouve ici une corrélation parfaitement nulle,&#62; Y=c(Y,0)&#62;  base=data.frame(Y,X1,X2)&#62;  cor(base)Y            X1            X2Y  1.0000000  3.946091e-01  2.923412e-01X1 0.3946091  1.000000e+00 -4.817519e-16X2 0.2923412 -4.817519e-16  1.000000e+00Si on regarde maintenant la régression multiple&#62;  R=lm(Y~X1+X2,data=base)&#62;  coefficients(R)(Intercept)          X1          X2-1.5028358   0.3589776   0.2531358et les deux régressions simples,&#62;  R1=lm(Y~X1,data=base)&#62;  coefficients(R1)(Intercept)          X10.02847362  0.35897764&#62;  R2=lm(Y~X2,data=base)&#62;  coefficients(R2)(Intercept)          X2-0.4334011   0.2531358on obtient exactement les mêmes coefficient.Moralité ? l'hypothèse d'orthogonalité entre les variables explicatives n'est pas à prendre à la légère: il faut une orthogonalité stricte pour que numériquement, la régression multiple soit équivalente aux régressions simples (comme le prédit la théorie). Mais de manière un peu surprenante, si on est très proche de l'indépendance, les valeurs numériques des estimateurs peut différer. Et ce, parfois de manière non négligeable, même si statistiquement, on valide l'hypothèse d'orthogonalité entre les variables explicatives.