2 La régression linéaire multiple

Exercice 1 (Question de cours) A, A, B, B, B, C.

Exercice 2 (Covariance de ε^ et Y^) Nous allons montrer que, pour tout autre estimateur β~ de β linéaire et sans biais, V(β~)V(β^). Décomposons la variance de β~ V(β~)=V(β~β^+β^)=V(β~β^)+V(β^)2Cov(β~β^,β^). Les variances étant définies positives, si nous montrons que Cov(β~β^,β^)=0, nous aurons fini la démonstration.\ Puisque β~ est linéaire, β~=AY. De plus, nous savons qu’il est sans biais, c’est-à-dire E(β~)=β pour tout β, donc AX=I. La covariance devient : Cov(β~β^,β^)=Cov(AY,(XX)1XY)V(β^)=σ2AX(XX)1σ2(XX)1=0.

Exercice 3 (Théorème de Gauss Markov) Nous devons montrer que, parmi tous les estimateurs linéaires sans biais, l’estimateur de MC est celui qui a la plus petite variance. La linéarité de β^ est évidente. Calculons sa variance : V(β^)=V((XX)1XY)=(XX)1XV(Y)X(XX)1=σ2(XX)1. Nous allons montrer que, pour tout autre estimateur β~ de β linéaire et sans biais, V(β~)V(β^). Décomposons la variance de β~ V(β~)=V(β~β^+β^)=V(β~β^)+V(β^)2Cov(β~β^,β^). Les variances étant définies positives, si nous montrons que Cov(β~β^,β^)=0, nous aurons fini la démonstration.\ Puisque β~ est linéaire, β~=AY. De plus, nous savons qu’il est sans biais, c’est-à-dire E(β~)=β pour tout β, donc AX=I. La covariance devient : Cov(β~β^,β^)=Cov(AY,(XX)1XY)V(β^)=σ2AX(XX)1σ2(XX)1=0.

Exercice 4 (Représentation des variables) Nous représentons les données dans R2 pour le premier jeu et dans R3 pour le second.

Dans le premier modèle, nous projetons Y sur l’espace engendré par X, soit la droite de vecteur directeur OX. Nous trouvons par le calcul β^=1.47, résultat que nous aurions pu trouver graphiquement car OY^=β^.OX.

Considérons R3 muni de la base orthonormée (i,j,k). Les vecteurs OX et OZ engendrent le même plan que celui engendré par (i,j). La projection de Y sur ce plan donne OY^. Il est quasiment impossible de trouver β^ et γ^ graphiquement mais nous trouvons par le calcul β^=3.33 et γ^=5.

Exercice 5 (Modèles emboîtés) Nous obtenons Y^p=Xβ^etY^q=Xqγ^. Par définition du R2, il faut comparer la norme au carré des vecteurs Y^p et Y^q. Notons les espaces engendrés par les colonnes de Xq et X, MXq et MX, nous avons MXqMX. Nous obtenons alors Y^p=PXpY=(PXq+PXq)PXpY=PXqPXpY+PXqPXpY=PXqY+PXqXpY=Y^q+PXqXpY. En utilisant le théorème de Pythagore, nous avons Y^p2=Y^q2+PXqXpY2Y^q2, d’où R2(p)=Y^p2Y2Y^q2Y2=R2(q).

En conclusion, lorsque les modèles sont emboîtés MXqMX, le R2 du modèle le plus grand (ayant le plus de variables) sera toujours plus grand que le R2 du modèle le plus petit.

Exercice 6 La matrice XX est symétrique, n vaut 30 et x¯=z¯=0. Le coefficient de corrélation ρx,z=i=130(xix¯)(ziz¯)i=130(xix¯)2i=130(ziz¯)2=i=130xizii=130xi2i=130zi2=7150=0.57. Nous avons yi=2+xi+zi+ε^i et la moyenne vaut alors y¯=2+x¯+z¯+1niε^i. La constante étant dans le modèle, la somme des résidus est nulle car le vecteur ε^ est orthogonal au vecteur 1. Nous obtenons donc que la moyenne de Y vaut 2 car x¯=0 et z¯=0. Nous obtenons en développant Y^2=i=130(2+xi+2zi)2=4+10+60+14=88. Par le théorème de Pythagore, nous concluons que SCT=SCE+SCR=88+12=100.

Exercice 7 (Changement d’échelle des variables explicatives) Nous avons l’estimation sur le modèle avec les variables originales qui minimise MCO(β)=Yj=1pXjβj2 Cette solution est notée β^.

Nous avons l’estimation sur le modèle avec les variables prémultipliées par aj (changement d’échelle) qui minimise

MCO~(β)=Yj=1pX~jβj2=Yj=1pajXjβj2=Yj=1pXjγj2=MCO(γ),

en posant en dernière ligne γj=ajβj. La solution de de MCO(γ) (ou encore MCO(β)) est β^. La solution de MCO~(β) est alors donnée par β^j=ajβ~j.

Exercice 8 (Différence entre régression multiple et régressions simples)  

  1. Calculons l’estimateur des MCO noté traditionnellement (XX)1XY avec la matrice X qui possède ici deux colonnes (notées ici X et Z) et n lignes. On a donc (XX)=(X2<X,Z><X,Z>Z2) Son déterminant est Δ=X2Z22<X,Z> et son inverse est 1Δ(Z2<X,Z><X,Z>X2) Ensuite XY est simplement le vecteur colonne de coordonnées <X,Y> et <Z,Y>. En rassemblant le tout nous avons β^1=1Δ(Z2<X,Y><X,Z><Z,Y>),β^2=1Δ(X2<Z,Y><X,Z><X,Y>). Si <X,Z>=0 (les deux vecteurs sont orthogonaux) alors cette écriture se simplifie en β^1=<X,Y>X2,β^2=<Z,Y>Z2.

  2. Calculons l’estimateur des MCO noté traditionnellement (XX)1XY avec la matrice X qui possède ici une colonne (notée ici X) et n lignes. On a donc β^X=<X,Y>X2. Passons maintenant à la matrice qui possède ici une colonne (notée ici Z) et n lignes. On a donc β^Z=<Z,Y>Z2.

  3. En général les coefficients des régressions simples ne sont pas ceux obtenus par régression multiple sauf si les variables sont orthogonales.

  4. Nous avons ici les résidus de la première régression qui sont ε^=Yβ^XX. La deuxième régression (sur les résidus) donne le coefficient β^Z=<Z,ε^>Z2=β^Zβ^X<Z,X>Z2 La régression séquentielle donne des coefficients différents des régressions univariées ou bivariées sauf si les variables sont orthogonales. \end{enumerate}

Exercice 9 (TP : différence entre régression multiple et régressions simples)  

  1. Simulons 2 variables explicatives avec GNU-R pour n=100 individus selon selon deux loi uniforme [0,1] :

    n <- 100
    set.seed(4321) # pour fixer les simulations
    X1 <- runif(n)
    X2 <- runif(n)

    Ensuite simulons Y selon le modèle avec σ=0.5

    sigma <- 0.5
    set.seed(321) # pour fixer les simulations
    Y <- 2 -3*X1 + 4*X2  + rnorm(n, sd=sigma)
    don <- cbind.data.frame(Y,X1,X2)
    head(don)
             Y         X1        X2
    1 4.213477 0.33477802 0.5913398
    2 1.602748 0.90913948 0.6715464
    3 2.958646 0.41152969 0.5830570
    4 3.215113 0.04384097 0.3516151
    5 3.367004 0.76350011 0.9298713
    6 3.555247 0.75043889 0.9181180
  2. Le graphique est obtenu avec

    rgl::plot3d(X1,X2,Y)
  3. On observe grâce au code ci-dessus que les points sont répartis autour d’un plan (d’équation z=23x+4y).

  4. Effectuons la régression multiple et stockons Y^ dans Yhat :

    (regmult <- lm(Y~1+X1+X2, data=don))
    
    Call:
    lm(formula = Y ~ 1 + X1 + X2, data = don)
    
    Coefficients:
    (Intercept)           X1           X2  
          2.080       -2.972        3.827  

    Nous sommes assez proches des coefficients recherchés (2, -3 et 4)

  5. Effectuons les régression simples

    (regX1 <- lm(Y~1+X1, data=don))
    
    Call:
    lm(formula = Y ~ 1 + X1, data = don)
    
    Coefficients:
    (Intercept)           X1  
          3.803       -2.441  

    Nous voyons que le paramètre ne correspond pas à celui de X1 dans la régression multiple.

    (regX2 <- lm(Y~1+X2, data=don))
    
    Call:
    lm(formula = Y ~ 1 + X2, data = don)
    
    Coefficients:
    (Intercept)           X2  
         0.7221       3.4424  

    Nous voyons que le paramètre ne correspond pas à celui de X2 dans la régression multiple.

  6. Enchainons après la régression simple sur X1 la régression des résidus (ce que X1 n’a pas réussi à modéliser) sur X2:

    residX1 <- residuals(regX1)
    don <- cbind(don, residX1)
    regX2residX1 <- lm(residX1~1+X2, data=don)
    regX2residX1
    
    Call:
    lm(formula = residX1 ~ 1 + X2, data = don)
    
    Coefficients:
    (Intercept)           X2  
         -1.965        3.758  

    Là encore le coefficient sur X2 ne correspond pas à celui de X2 dans la régression multiple. :La prévision est différente

    (predict(regX2residX1) + predict(regX1))[1:5]
           1        2        3        4        5 
    3.242781 2.142450 3.024335 3.051894 3.468733 
  7. Changeons l’ordre

    residX2 <- residuals(regX2)
    don <- cbind(don, residX2)
    regX1residX2 <- lm(residX2~1+X1, data=don)
    regX1residX2
    
    Call:
    lm(formula = residX2 ~ 1 + X1, data = don)
    
    Coefficients:
    (Intercept)           X1  
          1.531       -2.918  

    On a là encore des différences

    (predict(regX1residX2) + predict(regX2))[1:5]
           1        2        3        4        5 
    3.311895 1.911850 3.059400 3.335703 3.226125 
  8. Envisageons la covariance empirique

    cov(X1,X2)    
    [1] 0.01050429

    et leur produit scalaire

    sum(X1*X2)
    [1] 28.47696

    Les deux variables sont loin d’être orthogonales. Centrons les

    X1c <- X1 - mean(X1)
    X2c <- X2 - mean(X2)
    sum(X1c*X2c) 
    [1] 1.039925

    Refaisons les régressions: la multiple

    donc <- cbind.data.frame(Y,X1c,X2c)
    (regmultc <- lm(Y~1+X1c+X2c, data=donc))
    
    Call:
    lm(formula = Y ~ 1 + X1c + X2c, data = donc)
    
    Coefficients:
    (Intercept)          X1c          X2c  
          2.522       -2.972        3.827  

    Nous retrouvons que seul la constante change puis l’enchainement

    (regX1c <- lm(Y~1+X1c, data=donc))
    
    Call:
    lm(formula = Y ~ 1 + X1c, data = donc)
    
    Coefficients:
    (Intercept)          X1c  
          2.522       -2.441  

    Ici les variables X1c et X2c étant centrées elles sont orthogonales à la constante. Nous avons donc (1,X1c,X2c)=(1)(X1c,X2c) Le modèle précédent nous donne grâce à l’orthogonalité ci-dessus Y^1c=P1,X1cY=P1Y+PX1cY. Le modèle complet donne de son côté Y^=P1,X1c,X2cY=P1Y+PX1c,X2cY. Nous retrouvons donc le coefficient constant qui est la coordonnée sur 1 de P1Y dans les deux cas.

    Enchainons sur la régression sur résidus

    residX1c <- residuals(regX1c)
    donc <- cbind(donc, residX1c)
    (regX2residX1c <- lm(residX1c~1+X2c, data=don))
    
    Call:
    lm(formula = residX1c ~ 1 + X2c, data = don)
    
    Coefficients:
    (Intercept)          X2c  
      1.669e-16    3.758e+00  

    Puisque le vecteur est YY^1=YP1YPX1cY et que X2c1 on a la projection des résidus sur (1,X2c) qui vaut P1,X2c(YY^1c)=P1(YY^1c)+PX2c(YY^1c)=P1YP1P1,X1cY+PX2cYPX2cP1,X1cY=P1YP1Y0+PX2cY0PX2cPX1cY=PX2cYPX2cPX1cY Cette dernière somme de projection est dans (X1c,X2c) qui est un sous-espace orthogonal à (1), d’où le coefficient 0 pour la constante.

    Pour les prévisions rien ne change :

    predict(regmultc)[1:5]
           1        2        3        4        5 
    3.348336 1.948483 3.088559 3.295485 3.369866 

Exercice 10 (TP : régression multiple et code R)  

  1. ozone <- read.table("../donnees/ozone_complet.txt",sep=";",header=TRUE)
    nomvar <- names(ozone)
  2. (ch <- paste(nomvar[-1],collapse = "+"))
    [1] "T6+T9+T12+T15+T18+Ne6+Ne9+Ne12+Ne15+Ne18+Vdir6+Vvit6+Vdir9+Vvit9+Vdir12+Vvit12+Vdir15+Vvit15+Vdir18+Vvit18+Vx+maxO3v"
  3. (ch2 <- paste("maxO3~",ch,sep=""))
    [1] "maxO3~T6+T9+T12+T15+T18+Ne6+Ne9+Ne12+Ne15+Ne18+Vdir6+Vvit6+Vdir9+Vvit9+Vdir12+Vvit12+Vdir15+Vvit15+Vdir18+Vvit18+Vx+maxO3v"
  4. form <- formula(ch2)
    lm(form,data=ozone)
    
    Call:
    lm(formula = form, data = ozone)
    
    Coefficients:
    (Intercept)           T6           T9          T12          T15          T18  
      31.628418    -1.937194     0.121834     1.522143     0.609047     0.091871  
            Ne6          Ne9         Ne12         Ne15         Ne18        Vdir6  
       0.091969    -0.692891    -0.941925    -0.033847    -0.107068    -0.001344  
          Vvit6        Vdir9        Vvit9       Vdir12       Vvit12       Vdir15  
       1.586427    -0.009728    -1.163728    -0.007144     0.182232    -0.003468  
         Vvit15       Vdir18       Vvit18           Vx       maxO3v  
       0.246885     0.006251     0.560660     0.255474     0.465541  

Exercice 11 (Régression orthogonale) Les vecteurs étant orthogonaux, nous avons MX=MUMV. Nous pouvons alors écrire Y^X=PXY=(PU+PU)PXY=PUPXY+PUPXY=PUY+PUXY=Y^U+Y^V. La suite de l’exercice est identique. En conclusion, effectuer une régression multiple sur des variables orthogonales revient à effectuer p régressions simples.

Exercice 12 (Centrage, centrage-réduction et coefficient constant)  

  1. Comme la dernière colonne de X, notée Xp vaut 1n sa moyenne empirique vaut 1 et la variable centrée issue de Xp est donc Xp1×1n=0n.

  2. Nous avons le modèle sur variable centrée Y~=X~β~+εYY¯1n=j=1p1(XjX¯j1n)β~j+εY=j=1p1β~jXj+(Y¯j=1p1X¯jβ~j)1n+ε. En identifiant cela donne (1)βj=β~j, j{1,,p1},βp=Y¯1nj=1p1X¯jβ~j. Si l’on utilise des variables centrées dans le modèle de régression, on ne met pas de colonne 1 (pas de coefficient constant - intercept). Les coefficients du modèle sur les variables originales sont égaux à ceux sur les variables centrées et le coefficient constant est donné par la formule ().

  3. Maintenant les variables explicatives sont centrées et réduites : Y~=X~β~+εYY¯1n=j=1p1(XjX¯j1n)σ^Xjβ~j+εY=j=1p1β~jσ^XjXj+(Y¯j=1p1X¯jβ~jσ^Xj)1n+ε. En identifiant cela donne βj=β~jσ^Xj, j{1,,p1},βp=Y¯1nj=1p1X¯jβ~jσ^Xj. Nous obtenons ici que les coefficients du modèle sur les variables originales sont égaux à ceux sur les variables centrées-réduites divisés par l’écart-type empirique des variables explicatives. Plus la variable explicative Xj est dispersée, plus son coefficient βj sera réduit par rapport à β~j. Le coefficient constant est donné par la formule ci-dessus.

  4. La variable à expliquer Y est elle aussi centrée-réduite~: Y~=X~β~+ε~YY¯1nσ^Y=j=1p1(XjX¯j1n)σ^Xjβ~j+ε~Y=σ^Yj=1p1β~jσ^XjXj+(Y¯σ^Yj=1p1X¯jβ~jσ^Xj)1n+σ^Yε~. En identifiant cela donne βj=σ^Yβ~jσ^Xj, j{1,,p1},βp=Y¯1nσ^Yj=1p1X¯jβ~jσ^Xj,ε=σ^Yε~. L’écart-type empirique de Y entre en jeu et nous constatons que les résidus du modèle “centré-réduit” sont égaux à ceux initiaux divisés par l’écart-type empirique de Y.

  5. Simulons 3 variables explicatives avec GNU-R pour n=100 individus selon une loi uniforme [0,1] et équirépartie sur [1;10]:

    n <- 100
    set.seed(1234) # pour fixer les simulations
    X1 <- runif(n)
    X2 <- seq(1, 10, length=100)
    X3 <- rep(1,n)
    X <- cbind(X1, X2, X3)
    head(X)
                X1       X2 X3
    [1,] 0.1137034 1.000000  1
    [2,] 0.6222994 1.090909  1
    [3,] 0.6092747 1.181818  1
    [4,] 0.6233794 1.272727  1
    [5,] 0.8609154 1.363636  1
    [6,] 0.6403106 1.454545  1

    Simulons maintenant Y selon le modèle en fixant par exemple β=(1,2,0.1,4) et σ=0.1

    beta <- c(1, 0.1, -4)
    sigma <- 0.1
    set.seed(12345) # pour fixer les simulations
    Y <- X%*%beta + rnorm(n, sd=sigma)
    Y[1:5]
    [1] -3.727744 -3.197663 -3.283474 -3.294698 -2.942132

    Centrons les variables avec

    Ytilde <- scale(Y, scale = FALSE)
    Ytilde[1:5]
    [1] -0.73976069 -0.20968007 -0.29549076 -0.30671453  0.04585078
    Xtilde <- scale(X, scale = FALSE)
    head(Xtilde)
                 X1        X2 X3
    [1,] -0.3237939 -4.500000  0
    [2,]  0.1848021 -4.409091  0
    [3,]  0.1717775 -4.318182  0
    [4,]  0.1858822 -4.227273  0
    [5,]  0.4234181 -4.136364  0
    [6,]  0.2028133 -4.045455  0

    Et éliminons la dernière colonne de X~

    Xtilde <- Xtilde[, -3]

    Effectuons les deux régressions en constituant deux data-frames. Nous n’ajoutons pas la constante dans les modèles (-1) car elle est déjà dans la dernière colonne de X pour le premier modèle et on ne la souhaite pas pour le second.

    don <- cbind.data.frame(Y,X)
    dontilde <- cbind.data.frame(Ytilde,Xtilde)
    names(dontilde) <- c("Ytilde", "X1tilde", "X2tilde")
    mod <- lm(Y~-1+X1+X2+X3, data=don)
    modtilde <- lm(Ytilde~-1+X1tilde+X2tilde, data=dontilde)

    On retrouve bien que les coefficients des variables centrées ou non sont identiques

    coef(mod)
            X1         X2         X3 
     1.0225207  0.1030809 -4.0022782 

    et que l’intercept est simplement est bien celui donné dans la formule ()

    mean(don$Y)- sum( coef(modtilde)*colMeans(X[,1:2]))
    [1] -4.002278

    Centrons et réduisons les variables explicatives (les 2 premières colonnes de X)

    Xtilde <- scale(X[, 1:2], scale = TRUE)
    head(Xtilde)
                 X1        X2
    [1,] -1.1617874 -1.706220
    [2,]  0.6630787 -1.671751
    [3,]  0.6163456 -1.637282
    [4,]  0.6669539 -1.602813
    [5,]  1.5192439 -1.568344
    [6,]  0.7277037 -1.533875

    Reconstuisons le data-frame qui a changé et le modèle correspondant

    dontilde <- cbind.data.frame(Ytilde,Xtilde)
    names(dontilde) <- c("Ytilde", "X1tilde", "X2tilde")
    modtilde <- lm(Ytilde~-1+X1tilde+X2tilde, data=dontilde)

    Retrouvons les coefficients de départ pour les variables explicatives et pour la constante

    mean(don$Y)- sum( coef(modtilde)/apply(X[,-3], 2, sd) *
                      colMeans(X[,1:2]) )
    [1] -4.002278

    Centrons et réduisons les variables explicatives et la variable à expliquer

    Ytilde <- scale(Y, scale = TRUE)
    Ytilde[1:5]
    [1] -1.8943177 -0.5369313 -0.7566682 -0.7854091  0.1174109

    Reconstuisons le data frame qui a changé et le modèle correspondant

    dontilde <- cbind.data.frame(Ytilde, Xtilde)
    names(dontilde) <- c("Ytilde", "X1tilde", "X2tilde")
    modtilde <- lm(Ytilde~-1+X1tilde+X2tilde, data=dontilde)

    Retrouvons les coefficients de départ pour les variables explicatives

    coef(modtilde)/apply(X[,-3],2,sd)*sd(Y)
      X1tilde   X2tilde 
    1.0225207 0.1030809 

    et pour la constante

    mean(don$Y)- sum( coef(modtilde)/apply(X[,-3], 2, sd) *
                      sd(Y)*colMeans(X[, 1:2]) )
    [1] -4.002278

Exercice 13 (Moindres carrés contraints)  

  1. L’estimateur des MC vaut β^=(XX)1XY,

  2. Calculons maintenant l’estimateur contraint. Nous pouvons procéder de deux manières différentes.

    La première consiste à écrire le lagrangien L=S(β)λ(Rβr). Les conditions de Lagrange permettent d’obtenir un minimum {Lβ=2XY+2XXβ^cRλ^=0,Lλ=Rβ^cr=0, Multiplions à gauche la première égalité par R(XX)1, nous obtenons 2R(XX)1XY+2R(XX)1XXβ^cR(XX)1Rλ^=02R(XX)1XY+2Rβ^cR(XX)1Rλ^=02R(XX)1XY+2rR(XX)1Rλ^=0. Nous obtenons alors pour λ^ λ^=2[R(XX)1R]1[rR(XX)1XY]. Remplaçons ensuite λ^ 2XY+2XXβ^cRλ^=02XY+2XXβ^c2R[R(XX)1R]1[rR(XX)1XY]=0, d’où nous calculons β^c β^c=(XX)1XY+(XX)1R[R(XX)1R]1(rRβ^)=β^+(XX)1R[R(XX)1R]1(rRβ^). La fonction S(β) à minimiser est une fonction convexe sur un ensemble convexe (contraintes linéaires), le minimum est donc unique.

    Une autre façon de procéder consiste à utiliser les projecteurs. Supposons pour commencer que r=0, la contrainte vaut donc Rβ=0. Calculons analytiquement le projecteur orthogonal sur M0. Rappelons que dim(M0)=pq, nous avons de plus Rβ=0βKer(R)R(XX)1XXβ=0UXβ=0U=X(XX)1R. Nous avons donc que βker(R), UXβ=0, c’est-à-dire que MU, l’espace engendré par les colonnes de U, est orthogonal à l’espace engendré par Xβ, βker(R). Nous avons donc que MUM0. Comme U=X[(XX)1R], MUMX. En résumé, nous avons MUMXetMUM0doncMU(MXM0). Afin de montrer que les colonnes de U engendrent MXM0, il faut démontrer que la dimension des deux sous-espaces est égale. Or le rang de U vaut q (R est de rang q, (XX)1 est de rang p et X est de rang p) donc la dimension de MU vaut q. De plus, nous avons vu que MX=M0(M0MX) et donc, en passant aux dimensions des sous-espaces, nous en déduisons que dim(M0MX)=q. Nous venons de démontrer que MU=MXM0. Le projecteur orthogonal sur MU=MXM0 s’écrit PU=U(UU)1U=X(XX)1R[R(XX)1R]1R(XX)1X. Nous avons alors Y^Y^0=PUYXβ^Xβ^0=X(XX)1R[R(XX)1R]1R(XX)1XY=X(XX)1R[R(XX)1R]1Rβ^. Cela donne β^0=β^(XX)1R[R(XX)1R]1Rβ^. Si maintenant r0, nous avons alors un sous-espace affine défini par {βRp:Rβ=r} dans lequel nous cherchons une solution qui minimise les moindres carrés. Un sous-espace affine peut être défini de manière équivalente par un point particulier βpRp tel que Rβp=r et le sous-espace vectoriel associé M0v={βRp:Rβ=0}. Les points du sous-espace affine sont alors {β0Rp:β0=βp+β0v,β0vM0vetβp:Rβp=r}. La solution qui minimise les moindres carrés, notée β^0, est élément de ce sous-espace affine et est définie par β^0=βp+β^0vβ^0v=β^(XX)1R[R(XX)1R]1Rβ^. Nous savons que Rβp=r donc Rβp=[R(XX)1R][R(XX)1R]1r donc une solution particulière est βp=(XX)1R[R(XX)1R]1r. La solution β^0 qui minimise les moindres carrés sous la contrainte Rβ=r est alors (2)β^0=βp+β^0v=(XX)1R[R(XX)1R]1r+β^(XX)1R[R(XX)1R]1Rβ^=β^+(XX)1R[R(XX)1R]1(rRβ^).

  3. Calculons l’EQM de β^ qui vaut selon la formule classique: EQM=(E(β^)β)(E(β^)β)+V(β^) avec E(β^)=β (sous l’hypothèse que Y est généré par le modèle de régression) etV(β^)=σ2(XX)1.

    Pour l’EQM de β^0 qui vaut selon la formule classique: EQM=(E(β^0)β0)(E(β^0)β0)+V(β^0) calculons d’abord E(β^0) en utilisant l’équation (): E(β^0)=E(β^)+E[(XX)1R[R(XX)1R]1(rRβ^)]=β+(XX)1R[R(XX)1R]1(rRβ) puisque β^ est sans biais. Si nous supposons que le modèle satisfait la contrainte (Rβ=r) alors là encore le biais est nul.

    Calculons maintemant la variance: V(β^0)=V[β^+(XX)1R[R(XX)1R]1(rRβ^)]=V(β^)+V[(XX)1R[R(XX)1R]1(rRβ^)]+2Cov[β^;(XX)1R[R(XX)1R]1(rRβ^)]=σ2VX1+(II)+(III) Intéressons nous à la seconde partie (II). Comme X est déterministe ainsi que R et r on a en posant pour alléger VX=(XX) (matrice symétrique) (II)=VX1R[RVX1R]1V(rRβ^)[RVX1R]1RVX1=VX1R[RVX1R]1V(Rβ^)[RVX1R]1RVX1=VX1R[RVX1R]1Rσ2VX1R[RVX1R]1RVX1=σ2VX1R[RVX1R]1RVX1 La troisième partie est (III)=2VX1R[RVX1R]1Cov[β^;(rRβ^)]=2VX1R[RVX1R]1RCov[β^;β^]=2VX1R[RVX1R]1Rσ2VX1 Ce qui donne au final V(β^0)=σ2(XX)1σ2(XX)1R[R(XX)1R]1R(XX)1 L’écart entre les 2 variances est donc de σ2(XX)1R[R(XX)1R]1R(XX)1 qui est une matrice de la forme AA donc semi-définie positive.