Publié le :
Statistique CREATION_INTERNE

Analyses de Régression Linéaire et Visualisation

Ce code est également disponible en : Deutsch English
En attente de validation
Le script est composé de deux analyses indépendantes. La première partie crée une table 'drinking' pour analyser le lien entre la consommation d'alcool et le taux de cirrhose par pays. Elle génère un nuage de points, exécute plusieurs modèles de régression avec PROC REG, y compris un modèle excluant un pays spécifique (la France), et identifie les observations influentes. La deuxième partie crée une table 'universe' contenant des données sur la distance et la vitesse de galaxies. Elle visualise ces données et ajuste un modèle de régression linéaire sans ordonnée à l'origine pour illustrer la loi de Hubble, en identifiant également les points à forte influence (leverage).
Analyse des données

Type : CREATION_INTERNE


Les deux jeux de données, 'drinking' et 'universe', sont générés au sein du script à l'aide d'un DATA STEP et de l'instruction 'cards' ou 'datalines', les rendant autonomes.

1 Bloc de code
DATA STEP Data
Explication :
Crée la table de travail 'drinking' à partir de données saisies manuellement avec l'instruction 'cards'. La table contient trois variables : le nom du pays, la consommation d'alcool et le taux de cirrhose.
Copié !
1DATA drinking;
2 INPUT country $ 1-12 alcohol cirrhosis;
3CARDS;
4France 24.7 46.1
5Italy 15.2 23.6
6W.Germany 12.3 23.7
7Austria 10.9 7.0
8Belgium 10.8 12.3
9USA 9.9 14.2
10Canada 8.3 7.4
11E&W 7.2 3.0
12Sweden 6.6 7.2
13Japan 5.8 10.6
14Netherlands 5.7 3.7
15Ireland 5.6 3.4
16Norway 4.2 4.3
17Finland 3.9 3.6
18Israel 3.1 5.4
19;
20RUN;
2 Bloc de code
PROC SGPLOT
Explication :
Génère un nuage de points (scatter plot) pour visualiser la relation entre la consommation d'alcool ('alcohol') et la cirrhose ('cirrhosis'). Chaque point est étiqueté avec le nom du pays. Le bloc de code commenté montre une méthode plus ancienne pour obtenir un résultat similaire avec PROC GPLOT.
Copié !
1PROC SGPLOT DATA=drinking;
2 scatter x=alcohol y=cirrhosis / datalabel=country;
3RUN;
4 
5/*
6symbol1 pointlabel=('#country');
7proc gplot data=drinking;
8 plot cirrhosis*alcohol ;
9run;
10*/
3 Bloc de code
PROC REG
Explication :
Effectue une régression linéaire simple pour modéliser le taux de cirrhose en fonction de la consommation d'alcool. `ODS GRAPHICS ON` permet de générer automatiquement les graphiques de diagnostic de la régression. Le code commenté présente une alternative pour superposer une droite de régression sur un nuage de points avec PROC SGPLOT.
Copié !
1ods graphics on;
2PROC REG DATA=drinking;
3 model cirrhosis=alcohol;
4RUN;
5ods graphics off;
6 
7/*
8proc sgplot data=drinking;
9 scatter x=alcohol y=cirrhosis ;
10 reg x=alcohol y=cirrhosis / clm;
11run;
12*/
4 Bloc de code
PROC REG
Explication :
Exécute un nouveau modèle de régression linéaire en excluant l'observation pour la France, qui a été identifiée comme un point potentiellement influent dans le graphique précédent.
Copié !
1PROC REG DATA=drinking;
2 model cirrhosis=alcohol;
3 where country ne 'France';
4RUN; QUIT;
5 Bloc de code
PROC REG Data
Explication :
Ré-exécute la régression sur l'ensemble des données et sauvegarde les statistiques de diagnostic dans une nouvelle table 'regout'. La procédure PROC PRINT est ensuite utilisée pour afficher les observations qui sont considérées comme des points atypiques (résidu studentisé absolu > 2) ou des points influents (levier > 0.3).
Copié !
1PROC REG DATA=drinking;
2 model cirrhosis=alcohol;
3 OUTPUT out=regout predicted=pred student=zres h=leverage;
4RUN; QUIT;
5 
6PROC PRINT DATA=regout;
7 where abs(zres)>2 or leverage>.3;
8RUN;
6 Bloc de code
DATA STEP Data
Explication :
Crée la table de travail 'universe' à partir de données de galaxies (ID, nom, vitesse, distance) saisies manuellement avec l'instruction 'datalines'.
Copié !
1DATA universe;
2 INPUT id Galaxy $ Velocity Distance;
3DATALINES;
41 NGC0300 133 2.00
52 NGC0925 664 9.16
63 NGC1326A 1794 16.14
74 NGC1365 1594 17.95
85 NGC1425 1473 21.88
96 NGC2403 278 3.22
107 NGC2541 714 11.22
118 NGC2090 882 11.75
129 NGC3031 80 3.63
1310 NGC3198 772 13.80
1411 NGC3351 642 10.00
1512 NGC3368 768 10.52
1613 NGC3621 609 6.64
1714 NGC4321 1433 15.21
1815 NGC4414 619 17.70
1916 NGC4496A 1424 14.86
2017 NGC4548 1384 16.22
2118 NGC4535 1444 15.78
2219 NGC4536 1423 14.93
2320 NGC4639 1403 21.98
2421 NGC4725 1103 12.36
2522 IC4182 318 4.49
2623 NGC5253 232 3.15
2724 NGC7331 999 14.72
28;
29RUN;
7 Bloc de code
PROC SGPLOT
Explication :
Génère un nuage de points pour visualiser la relation entre la distance d'une galaxie et sa vitesse d'éloignement, en ajoutant des libellés aux axes. Le code commenté montre l'équivalent avec la procédure obsolète PROC GPLOT.
Copié !
1PROC SGPLOT DATA=universe;
2 scatter y=velocity x=Distance;
3 yaxis label='velocity (kms)';
4 xaxis label='Distance (mega-parsec)';
5RUN;
6 
7/*
8proc gplot data=universe;
9 plot velocity*Distance;
10 label velocity='velocity (kms)' distance='Distance (mega-parsec)';
11run;
12*/
8 Bloc de code
PROC REG
Explication :
Ajuste un modèle de régression linéaire pour la vitesse en fonction de la distance. L'option `NOINT` force la droite de régression à passer par l'origine, ce qui est cohérent avec la loi de Hubble (Vitesse = H0 * Distance).
Copié !
1ods graphics on;
2PROC REG DATA=universe;
3 model velocity= distance / noint;
4RUN;
5ods graphics off;
6QUIT;
9 Bloc de code
PROC REG Data
Explication :
Exécute à nouveau la régression sans ordonnée à l'origine et sauvegarde les statistiques de diagnostic dans la table 'regout' (en écrasant la précédente). PROC PRINT affiche ensuite les observations avec un levier (leverage) supérieur à 0.08, identifiant ainsi les points les plus influents sur l'estimation du modèle.
Copié !
1PROC REG DATA=universe;
2 model velocity= distance / noint;
3 OUTPUT out=regout predicted=pred student=zres h=leverage;
4RUN; QUIT;
5 
6PROC PRINT DATA=regout;
7 where leverage>.08;
8RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« Cette série d'analyses SAS illustre deux piliers fondamentaux de la modélisation statistique : la détection des points influents et l'ajustement théorique des modèles. À travers deux cas d'école — la santé publique et l'astrophysique — nous observons comment la donnée brute est soumise à la rigueur de la PROC REG. »