Régression linéaire multiple avec la PROC REG

Cette procédure permet de réaliser la régression linéaire d'une variable numérique y sur le sous-espace engendré par les variables numériques x1,...,xp.

On a : Equation de la régression linéaire
Où u est le résidu et b0,...,bp sont les paramètres.

Il est toujours bon de faire quelques graphiques avant toutes choses afin de ne pas se lancer tête baissée dans une régression linéaire qui ne serait pas pertinente (homoscédasticité, forme de la fonction de régression non linéaire...).

PROC REG data= <options> ;
  MODEL variable_expliquée = variables_explicatives </options> ;
  < BY liste_variables ;>
  < FREQ variable ;>
  < ID liste_variables ;>
  < WEIGHT variable ;>
  < PLOT var_ordonnee*var_abscisse </options> ;>
  < RESTRICT equation ;>
  < <label : > TEST equation ;>
  < OUTPUT OUT= liste_stat_a_garder ;>

Quelques options de la PROC REG :

L'option ALPHA= définit la valeur du seuil utilisé pour calculer les intervalles de confiance.

L'option CORR édite la matrice des corrélations.
L'option SIMPLE édite la somme, moyenne, variance, écart-type et somme des carrés pour la variable expliquée et chacune des variables explicatives.
L'option USSCP édite les sommes des carrés
L'option ALL réunit les trois options précédentes.

L'option OUTEST= permet de récupérer dans une table les paramètres estimés. Il est à peu près possible de récupérer tout ce qu'on veut. On se réfèrera à l'aide de SAS pour les autres options du même type (comment garder une trace des coefficients standardisés, de la matrice des covariances, des graphiques,...).

Quelques instructions :

La syntaxe présentée ci-dessus ne comporte pas toutes les instructions qui sont accessibles avec la PROC REG. On se réfèrera à l'aide de SAS pour en savoir plus.

L'instruction MODEL permet de définir la variable à régresser y ainsi que la liste des variables explicatives x1,...,xn.
Elle donne accès à de nombreuses options dont nous parlerons par la suite.

L'instruction ID définit la variable qui sert d'identifiant à l'observation. En l'absence de cette instruction, c'est le numéro de l'observation qui remplit cet office.

L'instruction RESTRICT permet d'imposer des restrictions sur les paramètres. Par exemple, si l'on sait que deux régresseurs sont liés linéairement par la relation c1 * x1 = c2 * x2, on écrira :

RESTRICT c1*x1=c2*x2 ; ou : RESTRICT c1*x1-c2*x2 ;

Si plusieurs restrictions doivent être imposées, on les sépare par des virgules au sein d'une même instruction RESTRICT. On peut bien sûr aussi utiliser la variable INTERCEPT.

L'instruction TEST permet de faire des tests sur les paramètres estimés.
Par exemple, si l'on veut tester si b1 = b2 , on écrit :

TEST x1=x2 ;

L'instruction PLOT permet de tracer des graphes.
On peut utiliser les statistiques produites dont la liste est donnée plus bas (auquel cas il faut donner leur mot clé suffixé d'un point) aussi bien que des variables de l'instruction model. On peut aussi utiliser la variable numéro d'observation en l'appelant OBS. D'autres encore sont disponibles, pour les connaître on se reportera éventuellement à l'aide de SAS.
Par exemple, pour tracer le graphe des résidus en fonction de l'observation, on écrit :

PLOT r. * obs. ;

Les instructions BY, FREQ, WEIGHT et OUTPUT ont la même fonction que dans les autres procédures.

L'instruction OUTPUT permet de récupérer certaines des grandeurs calculées dans une table qui est celle indiquée dans OUT= . Il suffit d'en donner la suite sous la forme mot_clé = noms_variables.
Par exemple :

OUTPUT OUT=resultat P=yhat R=yres ;

stocke dans la table resultat la valeur estimée de y ainsi que le résidu.
Voir la liste des mots-clés disponibles


Quelques options de l'instruction MODEL :

Par défaut, le modèle intègre une constante parmi les régresseurs. Pour spécifier un modèle sans constante, on peut préciser l'option NOINT.

Les options que nous évoquerons par la suite sont celles le plus communément utilisées pour étudier :

et effectuer une sélection de variables.


Liste des grandeurs que l'on peut récupérer dans PLOT ou dans OUTPUT (et mots-clés associés) :

Cookd
statistique D de Cook relative à l'influence d'une observation
Covratio
mesure de l'influence de l'observation sur la covariance des paramètres
Dffits
mesure de l'influence de l'observation sur la valeur estimée de y
H
levier de l'observation
Lcl (resp. Ucl)
borne inférieure (resp. supérieure) de l'intervalle de confiance pour la valeur prédite yi
Lclm (resp. Uclm)
borne inférieure (resp. supérieure) de l'intervalle de confiance pour la moyenne de y
Predicted ou P
estimation de la variable expliquée
Residual ou R
résidu de la régression = y - ypredicted
Student
résidus studentisés
Rstudent
résidus studentisés à validation croisée
Press
résidu rapporté à 1-H
Stdi
écart-type de l'estimation de yi
Stdp
écart-type de l'estimation de la moyenne de y
Stdr
écart-type des résidus estimés

Lecture de sorties :

Une sortie standard :

proc reg data=malib.employe;
 model salaire = anciennete subor age;
run;
                                        The REG Procedure
                                          Model: MODEL1
                          Dependent Variable: salaire salaire en euros

                                      Analysis of Variance

                                             Sum of           Mean
         Source                   DF        Squares         Square    F Value    Pr > F

         Model                     3       27848720        9282907      23.65    <.0001
         Error                    27       10597854         392513
         Corrected Total          30       38446573


                      Root MSE            626.50866    R-Square     0.7243
                      Dependent Mean     1915.77419    Adj R-Sq     0.6937
                      Coeff Var            32.70264

                                      
                                      Parameter Estimates

                                   Parameter       Standard
           Variable       DF       Estimate          Error       t Value    Pr > |t|

           Intercept       1      1117.36274      573.88399       1.95      0.0620
           anciennete      1        -9.21669       46.23709      -0.20      0.8435
           subor           1       167.11617       22.13012       7.55      <.0001
           age             1        14.21831       21.51873       0.66      0.5144

La sortie standard contient donc :

Un bloc d'analyse de la variance (décomposition de la somme des carrés totaux en somme des carrés résiduels (ligne Error) et somme des carrés estimés (ligne Model)). A ce niveau est aussi réalisé un test de Fischer de validité globale du modèle. L'hypothèse nulle est (H0) : les paramètres sont tous simultanément nuls. Ici la p-value est très inférieure à 0,5, donc on rejette (H0), ce qui signifie que le modèle est globalement valide.

La colonne DF indique le nombre de degrés de liberté (degrees of freedom). Le DF de la ligne Model représente p, c'est à dire le nombre de régresseurs, constante exclus. Le DF de la ligne Corrected Total vaut n-1 où n est la taille de la population. La colonne Mean Square calcule le rapport de Sum of Squares au DF.

Un bloc intermédiaire : Root MSE est l'écart-type estimé. Dependent Mean est la moyenne de y. Coeff Var est le coefficient de variation, défini comme le rapport des deux grandeurs précédentes multiplié par 100. Enfin on a la donnée du R2 (rapport de la somme des carrés estimés à la somme des carrés totaux) et du R2 ajusté. Notons que le R2 n'est pas interprétable dans un modèle sans constante.

Un bloc d'estimation des paramètres liste les régresseurs, avec une estimation du paramètre associé, l'écart-type estimé pour ledit paramètre, ainsi que la statistique et la p-value relatives à un test de Student de nullité du paramètre (l'hypothèse nulle étant justement la nullité du paramètre). Ici on voit que les variables anciennete et age ne sont pas significatives.

On remanie le programme en y incluant plusieurs options comme suit :

proc reg data=malib.employe corr;
 model salaire = anciennete subor age / dw spec vif collinoint r influence ;
 test anciennete=age ;
 plot p.*obs. ;
run;
                               The REG Procedure

                                   Correlation

Variable     Label          anciennete       subor           age          salaire

anciennete                    1.0000         0.3460         0.8419         0.3498
subor       nb subordonnés    0.3460         1.0000         0.3400         0.8463
age                           0.8419         0.3400         1.0000         0.3704
salaire     salaire en E      0.3498         0.8463         0.3704         1.0000


                  Dependent Variable: salaire salaire en E
                             Analysis of Variance

                                   Sum of           Mean
Source                   DF        Squares         Square    F Value    Pr > F

Model                     3       27848720        9282907      23.65    <.0001
Error                    27       10597854         392513
Corrected Total          30       38446573

              Root MSE            626.50866    R-Square     0.7243
              Dependent Mean     1915.77419    Adj R-Sq     0.6937
              Coeff Var            32.70264

                              Parameter Estimates

                         Parameter    Standard                          Variance 
Variable         DF       Estimate       Error     t Value  Pr > |t|    Inflation

Intercept        1       1117.36274    573.88399     1.95    0.0620            0
anciennete       1         -9.21669     46.23709    -0.20    0.8435      3.48267
subor            1        167.11617     22.13012     7.55    <.0001      1.14660
age              1         14.21831     21.51873     0.66    0.5144      3.46648

                   Collinearity Diagnostics(intercept adjusted)

                         Condition     ---------Proportion of Variation---------
Number     Eigenvalue      Index        anciennete       subor          age

  1        2.06323        1.00000        0.05771        0.07283        0.05775
  2        0.77872        1.62773        0.03082        0.92697        0.03287
  3        0.15805        3.61301        0.91147     0.00020110        0.90938


                                    Test of First and Second
                                      Moment Specification

                                   DF    Chi-Square    Pr > ChiSq
                                    9         12.49        0.1873

                              Durbin-Watson D                0.852
                              Number of Observations            31
                              1st Order Autocorrelation      0.484

                                        Output Statistics

     Dep Var  Predicted  Std Error        Std Error      Student                Cook's
Obs  salaire  Value     Mean Predict Residual  Residual Residual  -2-1 0 1 2         D

1     3963     2653     171.6793        1310    602.5    2.175  |      |****  |  0.096
2     2088     1550     128.3430    537.5132    613.2    0.877  |      |*     |  0.008
3     1905     1903     213.4522      1.7724    589.0  0.00301  |      |      |  0.000
4     1875     1575     146.2143    300.2916    609.2    0.493  |      |      |  0.003
5     1356     1535     138.7658   -179.4820    610.9   -0.294  |      |      |  0.001
6     1394     1641     141.6958   -246.7983    610.3   -0.404  |      |      |  0.002
7     1379     1455     190.6224    -76.1737    596.8   -0.128  |      |      |  0.000
8     1844     2280     257.8219   -436.1149    571.0   -0.764  |     *|      |  0.030
9     1097     1435     205.9660   -338.1672    591.7   -0.572  |     *|      |  0.010
10    1372     1627     167.6276   -255.3666    603.7   -0.423  |      |      |  0.003
11    1417     1790     326.9184   -373.3427    534.5   -0.699  |     *|      |  0.046
12    1379     1689     190.2358   -310.2414    596.9   -0.520  |     *|      |  0.007
13    1033     1526     131.9155   -493.2653    612.5   -0.805  |     *|      |  0.008
14    1234     2102     387.5017   -867.7765    492.3   -1.763  |   ***|      |  0.481
15    1021     1440     194.9316   -419.1689    595.4   -0.704  |     *|      |  0.013
16    1067     1626     172.5952   -558.7935    602.3   -0.928  |     *|      |  0.018
17    6097     6775     590.4819   -677.6047    209.4   -3.236  |******|      | 20.820
18    4268     2626     207.2753        1642    591.2    2.778  |      |***** |  0.237
19    3353     2533     199.7933    819.8226    593.8    1.381  |      |**    |  0.054
20    2286     1693     176.9587    593.4051    601.0    0.987  |      |*     |  0.021
21    1905     1679     138.0213    225.8369    611.1    0.370  |      |      |  0.002
22    2507     1751     119.4985    755.9587    615.0    1.229  |      |**    |  0.014
23    2210     1654     217.4930    555.8449    587.5    0.946  |      |*     |  0.031
24    1951     1585     188.4737    366.2884    597.5    0.613  |      |*     |  0.009
25    2241     1900     244.1068    341.2009    577.0    0.591  |      |*     |  0.016
26    1347     1687     299.4044   -339.8818    550.3   -0.618  |     *|      |  0.028
27    1353     1484     161.1971   -130.6104    605.4   -0.216  |      |      |  0.001
28    1361     1607     126.6470   -246.3601    613.6   -0.402  |      |      |  0.002
29    1036     1574     121.7014   -537.9219    614.6   -0.875  |     *|      |  0.008
30    1082     1612     158.8746   -529.5752    606.0   -0.874  |     *|      |  0.013
31     968     1402     236.1441   -433.7290    580.3   -0.747  |     *|      |  0.023


                                        Output Statistics

               Hat Diag    Cov              -----------------DFBETAS-----------------
Obs  RStudent    H         Ratio    DFFITS   Intercept  anciennete    subor      age

1     2.3497    0.0751     0.5820    0.6695    -0.2275     -0.3772    0.3181    0.3600
2     0.8727    0.0420     1.0815    0.1826     0.0918      0.0606   -0.0522   -0.0648
3   0.002953    0.1161     1.3157    0.0011    -0.0008     -0.0004   -0.0003    0.0008
4     0.4859    0.0545     1.1863    0.1166     0.0469      0.0654   -0.0429   -0.0454
5    -0.2887    0.0491     1.2074   -0.0656    -0.0203      0.0204    0.0067   -0.0018
6    -0.3981    0.0512     1.1962   -0.0924     0.0315      0.0227    0.0369   -0.0438
7    -0.1253    0.0926     1.2785   -0.0400    -0.0357     -0.0192    0.0019    0.0298
8    -0.7577    0.1694     1.2829   -0.3421     0.2724      0.1918    0.0317   -0.2940
9    -0.5643    0.1081     1.2419   -0.1964    -0.1348      0.0218   -0.0198    0.0725
10   -0.4165    0.0716     1.2197   -0.1157    -0.0091     -0.0595    0.0518    0.0174
11   -0.6918    0.2723     1.4857   -0.4232     0.1507     -0.1647    0.1893   -0.0691
12   -0.5126    0.0922     1.2306   -0.1634     0.0511     -0.0379    0.0780   -0.0381
13   -0.8000    0.0443     1.1041   -0.1723    -0.0916     -0.0040    0.0256    0.0447
14   -1.8388    0.3826     1.1550   -1.4474    -1.1639     -1.3134   -0.1305    1.3126
15   -0.6973    0.0968     1.1956   -0.2283    -0.1739     -0.0066   -0.0156    0.1083
16   -0.9253    0.0759     1.1055   -0.2652     0.1072      0.1853    0.0524   -0.1789
17   -4.0588    0.8883     1.4618  -11.4459     0.6305      0.3682  -10.5110   -0.3359
18    3.2250    0.1095     0.3399    1.1306     0.3527      0.7929    0.2443   -0.5039
19    1.4054    0.1017     0.9659    0.4729     0.1251     -0.2068    0.2985    0.0176
20    0.9869    0.0798     1.0909    0.2906     0.0517     -0.1690    0.0378    0.0567
21    0.3636    0.0485     1.1977    0.0821     0.0553      0.0108    0.0027   -0.0344
22    1.2414    0.0364     0.9586    0.2412     0.0697      0.0670   -0.0530   -0.0425
23    0.9441    0.1205     1.1555    0.3495     0.0917     -0.2004    0.0677    0.0391
24    0.6058    0.0905     1.2089    0.1911     0.0742      0.1411   -0.0698   -0.0910
25    0.5841    0.1518     1.3014    0.2471    -0.0761      0.0930   -0.0966    0.0365
26   -0.6104    0.2284     1.4238   -0.3321     0.2042      0.2951    0.0326   -0.2849
27   -0.2119    0.0662     1.2368   -0.0564    -0.0455     -0.0196    0.0047    0.0346
28   -0.3952    0.0409     1.1838   -0.0816     0.0100      0.0181    0.0290   -0.0261
29   -0.8714    0.0377     1.0771   -0.1726    -0.0246      0.0303    0.0473   -0.0197
30   -0.8699    0.0643     1.1081   -0.2280     0.0715      0.1477    0.0460   -0.1362
31   -0.7412    0.1421     1.2468   -0.3016    -0.2224      0.0206   -0.0414    0.1311


                          Sum of Residuals                           0
                          Sum of Squared Residuals            10597854
                          Predicted Residual SS (PRESS)       50241922


                          Test 1 Results for Dependent Variable salaire

                                                    Mean
                    Source             DF         Square    F Value    Pr > F

                    Numerator           1          50909       0.13    0.7215
                    Denominator        27         392513

Graphique valeurs prédites par numéro d'observation

L'option CORR édite la matrice des corrélations. On peut déjà repérer que les variables age et anciennete sont fortement corrélées.

Le graphique des valeurs prédites n'invalide pas notre choix de modèle : la forme fonctionnelle n'est pas mauvaise a priori, et on ne repère pas d'hétéroscédasticité au premier coup d'œil. Par contre, on repère une valeur aberrante.

L'option DW réalise un test de Durbin Watson. Dans une table statistique de Durbin Watson, on pourrait relever les seuils relatifs à notre modèle, et on déduirait que l'hypothèse d'autocorrélation à l'ordre 1 peut être acceptée à 5%. Cela dit, ici cela n'a pas beaucoup de sens. Dans un pareil cas, on regarderait plutôt le test de White réalisé par l'option SPEC. Ici l'hypothèse nulle d'homoscédasticité est acceptée à 5%.

L'analyse des observations atypiques et influentes par les options R et INFLUENCE montre que :
Les observations 1, 17 et 18 sont atypiques pour le salaire. Dans la table on peut vérifier qu'il s'agit des trois plus gros salaires, et que les 17 et 18 sont particulièrement éloignés du reste des valeurs.
L'observation 17, et à une moindre mesure l'observation 14, sont atypiques pour les régresseurs. Effectivement, on remarque que la 17 a 30 subordonnés (les autres valeurs se situant entre 0 et 6) et un âge et une ancienneté assez élevés (55 ans et 15 ans) par rapport à la moyenne. Quant à l'observation 14, dont le caractère atypique est moins marqué, on peut noter qu'elle présente une ancienneté et un nombre de subordonnés un peu plus élevé que la moyenne alors que son âge est plutôt inférieur à la moyenne.
L'observation 17 se démarque nettement du lot en ce qui concerne son influence sur l'estimation. La distance de Cook est fortement élevée pour cette observation. La 17 influe sur sa propre prédiction, et particulièrement sur l'estimation du coefficient de la variable subor, ce qui semble logique.
En conclusion de cette analyse, on décidera de supprimer de notre régression l'observation 17.

A ce stade il n'est pas nécessaire de poursuivre l'analyse. On recommencerait la procédure après avoir ôté l'observation aberrante. Mais puisqu'il ne s'agit ici que de savoir lire des sorties, continuons :

Grâce à l'option VIF, on repère que ces variables ont justement un facteur d'influence de la variance plus élevé que les autres ; mais ceci n'est pas flagrant. On porte donc notre regard sur la sortie de l'option COLLINOINT. Même si les CI ne sont pas très importants, les Proportion of Variation sont tels que l'on peut au moins soupçonner une relation de colinéarité entre l'âge et l'ancienneté.
A ce stade, on peut alors décider de supprimer une des deux variables impliquées dans la relation de colinéarité.

Que proposent les procédures de sélection ?

Supprimons l'observation 17 et réitérons la PROC REG, d'abord avec l'option SELECTION=CP puis avec l'option SELECTION=RSQUARE, enfin avec l'option SELECTION=STEPWISE.

                                        The REG Procedure
                                          Model: MODEL1
                                  Dependent Variable: salaire

                                      C(p) Selection Method

                   Number in
                     Model          C(p)    R-Square    Variables in Model

                          1       1.7009      0.6609    subor
                          2       2.3790      0.6771    age subor
                          2       3.3471      0.6652    anciennete subor
                          3       4.0000      0.6817    age anciennete subor
                          1      51.9024      0.0463    age
                          1      52.5471      0.0384    anciennete
                          2      53.8140      0.0474    age anciennete

La procédure n'apporte pas grand chose. Elle semble désigner le modèle que l'on a choisi, mais les trois précédents ne sont pas fondamentalement plus mauvais.

                                        The REG Procedure
                                          Model: MODEL1
                                  Dependent Variable: salaire

                                    R-Square Selection Method

                         Number in
                           Model      R-Square    Variables in Model

                                1       0.6609    subor
                                1       0.0463    age
                                1       0.0384    anciennete
                         ----------------------------------------------
                                2       0.6771    age subor
                                2       0.6652    anciennete subor
                                2       0.0474    age anciennete
                         ----------------------------------------------
                                3       0.6817    age anciennete subor

Il s'agit d'arbitrer entre biais et précision. Le premier souci commande de ne pas trop choisir de régresseurs, tandis que le deuxième pousse à améliorer le R2. Ici on voit que le meilleur R² pour les modèles à 1 variable n'est guère inférieur au meilleur des R2 (qui correspond au modèle total). On est donc amené à choisir le modèle avec le seul régresseur subor.

La procédure stepwise conduit-elle au même résultat ?


                                        The REG Procedure
                                          Model: MODEL1
                          Dependent Variable: salaire salaire en euros

                                   Stepwise Selection: Step 1
                   Variable subor Entered: R-Square = 0.6609 and C(p) = 1.7009

                                      Analysis of Variance

                                             Sum of           Mean
         Source                   DF        Squares         Square    F Value    Pr > F
         Model                     1       13469424       13469424      54.57    <.0001
         Error                    28        6911745         246848
         Corrected Total          29       20381169

                             Parameter     Standard
               Variable       Estimate        Error   Type II SS  F Value  Pr > F
               Intercept    1409.71705    103.40401     45879515   185.86  <.0001
               subor         354.85447     48.03863     13469424    54.57  <.0001

                                Bounds on condition number: 1, 1
----------------------------------------------------------------------------------------
                                   Stepwise Selection: Step 2
                    Variable age Entered: R-Square = 0.6771 and C(p) = 2.3790

                                      Analysis of Variance
                                             Sum of           Mean
         Source                   DF        Squares         Square    F Value    Pr > F

         Model                     2       13799241        6899620      28.30    <.0001
         Error                    27        6581928         243775
         Corrected Total          29       20381169

                             Parameter     Standard
               Variable       Estimate        Error   Type II SS  F Value  Pr > F
               Intercept     997.63890    368.87468      1783111     7.31  0.0117
               subor         348.75934     48.02542     12855788    52.74  <.0001
               age            11.26687      9.68638       329817     1.35  0.2549

                            Bounds on condition number: 1.012, 4.0482
----------------------------------------------------------------------------------------
                                  Stepwise Selection: Step 3
                    Variable age Removed: R-Square = 0.6609 and C(p) = 1.7009

                                      Analysis of Variance
                                             Sum of           Mean
         Source                   DF        Squares         Square    F Value    Pr > F

         Model                     1       13469424       13469424      54.57    <.0001
         Error                    28        6911745         246848
         Corrected Total          29       20381169

                             Parameter     Standard
               Variable       Estimate        Error   Type II SS  F Value  Pr > F
               Intercept    1409.71705    103.40401     45879515   185.86  <.0001
               subor         354.85447     48.03863     13469424    54.57  <.0001
                                
                             Bounds on condition number: 1, 1
----------------------------------------------------------------------------------------

              All variables left in the model are significant at the 0.1500 level.
    The stepwise method terminated because the next variable to be entered was just removed.

                                  

                               Summary of Stepwise Selection

        Variable   Variable    Number     Partial    Model
Step    Entered    Removed     Vars In    R-Square   R-Square   C(p)   F Value   Pr > F

  1     subor                     1       0.6609     0.6609    1.7009   54.57    <.0001
  2     age                       2       0.0162     0.6771    2.3790    1.35    0.2549
  3                age            1       0.0162     0.6609    1.7009    1.35    0.254

La procédure s'arrête au bout de la troisième étape. Le modèle final proposé est bien celui constitué du seul régresseur subor.
Notons que la procédure forward proposerait de garder aussi la variable age.

A ce stade on recommencerait la régression soit avec subor seulement, soit avec subor et age. L'estimation du deuxième modèle indique que la variable age n'apparaît pas significative. Le modèle que l'on retient est donc : salaire = 1410 + 355 * subor