Vous êtes sur la page 1sur 3

M2 Pro Ingénierie Mathématique Année 2011-2012

Université d'Angers, Université de Nantes

Régression linéaire avec SAS

Cette planche propose un aperçu de la principale procédure SAS permettant la mise en oeuvre
de la régression linéaire : la procédure reg. Vous pouvez accéder à une description détaillée de la
procédure reg :
 dans le logiciel SAS lui-même, contenant une documentation très fournie ;
 sur le site internet à l'adresse suivante : http ://support.sas.com/onlinedoc/913/docMainpage.jsp.
La procédure reg est implémentée pour l'étude de modèles de régression linéaire simple et multiple,
uni ou multi-dimensionnels. Elle permet entre autres l'estimation des paramètres par la méthode
des moindres carrés, la construction de tests et la mise en place de méthodes de sélection de
modèles.
La syntaxe est la suivante :
PROC REG <options> ;
<label:>MODEL dependents=<regressors> </ options> ;
BY variables ;
FREQ variable ;
ID variables ;
VAR variables ;
WEIGHT variable ;
ADD variables ;
DELETE variables ;
<label:>MTEST <equation, ...,equation> </ options> ;
OUTPUT <OUT=SAS-data-set>< keyword=names> <...keyword=names> ;
PAINT <condition | ALLOBS> </ options > | < STATUS | UNDO> ;
RESTRICT equation, ...,equation ;
REWEIGHT <condition | ALLOBS> </ options > | < STATUS | UNDO> ;
PLOT <yvariable*xvariable> <=symbol> <...yvariable*xvariable> <=symbol> </ options> ;
PRINT <options> <ANOVA> <MODELDATA> ;
REFIT ;
RESTRICT equation, ...,equation ;
REWEIGHT <condition | ALLOBS> </ options > | < STATUS | UNDO> ;
<label:>TEST equation,<,...,equation> </ option> ;
RUN;
Les instructions (model, by, freq, ...) ci-dessus sont très riches et chacune est détaillée dans la
documentation du logiciel. Elles permettent de dénir le modèle de régression considéré (model),
l'estimation des paramètres de la regression, de stocker de multiples statistiques de la régression
(output), la mise en oeuvre des tests (test), le tracé de graphiques (plot), etc...
Les principales options de la procédure reg sont les suivantes :
 data=tab1 : précise le tableau sur lequel doit agir la procédure,
 outest=tab2 : crée un tableau contenant toutes les informations produites,
 simple : demande le calcul de statistiques simples pour toutes les variables nommées dans les
instructions model et var.
L'instruction model permet quand à elle de déclarer la variable réponse ainsi que les diérents
régresseurs du modèle. Les régresseurs sont nécessairement des variables dénies dans le tableau
sur lequel agit la procédure reg, et ces variables doivent être de type numérique. Les diérents
régresseurs doivent être déclarés à droite du signe = et séparés par un blanc.
L'instruction model admet un certain nombre d'options permettant d'aller un peu plus loin dans
l'étude. La liste suivante n'est pas exhaustive :

1
 p calcule les valeurs prédites pour chaque observation,
 cli demande le calcul d'un intervalle de conance à 95% pour chaque valeur future prédite,
 clm demande le calcul d'un intervalle de conance à 95% pour l'espérance de chaque obser-
vation,
 ...

Exercice 1 : Tour de France


On s'intéresse à la vitesse moyenne sur l'épreuve du tour de France en fonction de la distance
totale parcourue. Les données sont contenues dans le cheir "tdf.txt".
1. Importer les données à l'aide du menu Fichier->Importer des données et en utilisant les
options disponibles, renommer les variables d'intérêts distance et vitesse.
2. Etudier la corrélation entre les deux variables en présence grâce à la procédure corr, en tapant
les commandes suivantes :
proc corr data=tdf;
var vitesse distance;
run;
3. Tracer le nuage de points correspondant grâce à la procédure graphique gplot :
proc gplot data=tdf;
plot vitesse*distance;
run;
4. Réaliser la régression linéaire de la vitesse en fonction de la distance grâce à la procédure
reg :
proc reg data=tdf corr;
model vitesse=distance /clb cli clm;
plot vitesse*distance /pred;
plot residual.*distance;
run;
Commenter les sorties du logiciel.
5. Réaliser à nouveau la régression linéaire en ajoutant les commandes suivantes :
proc reg data=tdf corr outest=sortie;
model vitesse=distance;
plot vitesse*distance predicted.*distance ucl.*distance lcl.*distance
uclm.*distance lclm.*distance/overlay;
output out=b p=pred r=residus ucl=ucl lcl=lcl uclm=uclm lclm=lclm;
run;
quit;
Commenter les résultats obtenus. Que contient la table B et la table Sortie ?
6. Proposer d'autres commandes illustrant la richesse de la procédure reg, par exemple :
 ajouter à la table sortie d'autres statistiques (standard deviation, p-value, IC, R2 , ...) →
options de outest ;
 tracer des mesures d'inuences pour le diagnostic (distance de Cook, DFFITS, COVRA-
TIO) → instruction plot ;
 tester la signicativité du modèle → instruction test ;

Exercice 2 : Espérance de vie


Importer le chier "televisions.txt" et réaliser la régression linéaire de l'espérance de vie en
fonction des diérentes variables explicatives. Explorer toutes les possibilités de la procédure reg
pour la régression multiple, par exemple :
 l'ajout ou la suppression de variables → instructions add et delete ;
 la possibilité de traiter plusieurs modèles simultanément → options de model ;
 la richesse des tests proposés → instruction test ;
 la possibilité de choisir le meilleur modèle → option selection de model ;
...

2
Exercice 3 : Régression RIDGE
La régression RIDGE est une variante de la régression linéaire multiple pour traiter le cas de
variables explicatives colinéaires, qui entraîne dans le modèle linéaire Y = Xβ +  un très mauvais
conditionnement de la matrice X 0 X . Son déterminant est presque nul et son inversion dans la
méthode des moindres carrés ordinaire provoque des dicultés. L'idée générale de la régression
RIDGE est de modier la matrice X 0 X rendant l'inversion plus stabble.
On propose dans cet exercice de mettre en oeuvre cette variante avec SAS pour les données
"bodyfat.dat" de manière à améliorer la qualité du modèle.
1. Reprendre le chier "bodyfat.dat". Importer ce chier dans SAS, en modiant au préalable
le chier (extension, séparateurs).
2. Calculer la matrice des corrélations avec la procédure corr et retrouver une forte corrélation
entre deux variables explicatives Thigh et Triceps.
3. Lancer la procédure reg ci-dessous qui utilise la technique de ridge regression :
proc reg data=bodyfat ridge= 0 to 1 by 0.1 outest=ridgest;
model fat=thigh triceps midarm / dw;
run;

Les résultats pour chaque valeur de k sont dans la table ridgest. Se pose alors le problème de choisir
le paramètre de régularisation k optimal.

Exercice 4 : SAS Enterprise Guide


Utiliser le module SAS enterprise Guide, une interface graphique d'analyse sous SAS qui génère
des programmes SAS automatiquement.

Vous aimerez peut-être aussi