Le script commence par examiner la structure et les métadonnées du jeu de données `sashelp.cars` à l'aide de `PROC CONTENTS`. Il procède ensuite à des statistiques récapitulatives : d'abord une synthèse globale affichée par `PROC PRINT`, puis des moyennes spécifiques de `MSRP` regroupées par `origin` et `make`. Il calcule également les moyennes globales de `WheelBase` et `Weight`. Une section du script tente de calculer manuellement le coefficient de corrélation de Pearson entre `WheelBase` et `Weight` en dérivant les déviations par rapport à la moyenne et leurs produits. Il est important de noter qu'une erreur de syntaxe dans le `DATA STEP` où `xy_dev = x_dev = y_dev;` effectue une comparaison logique au lieu d'une multiplication, rendant le calcul manuel de Pearson incorrect. Le script valide ensuite la corrélation par un calcul direct via `PROC CORR`. Enfin, une analyse de régression linéaire simple est effectuée avec `PROC REG` pour modéliser la relation entre `weight` et `wheelbase`.
Analyse des données
Type : MIXTE
Le script utilise le jeu de données intégré `sashelp.cars` comme source principale. Plusieurs jeux de données intermédiaires (`cars_summary`, `msrp`, `WW_means`, `cars`, `dev`) sont créés dynamiquement au cours de l'exécution pour stocker les résultats des procédures et les données transformées, qui sont ensuite utilisées dans les étapes suivantes.
1 Bloc de code
PROC CONTENTS
Explication : Cette procédure affiche le dictionnaire des données (métadonnées) pour le jeu de données `sashelp.cars`. Elle fournit des informations sur les variables, leurs types, formats et longueurs, ce qui est essentiel pour la compréhension de la structure des données.
Copié !
proc contents data=sashelp.cars;
run;
1
PROC CONTENTSDATA=sashelp.cars;
2
RUN;
2 Bloc de code
PROC SUMMARY Data
Explication : La première `PROC SUMMARY` calcule des statistiques descriptives de base pour toutes les variables numériques du jeu de données `sashelp.cars` et stocke ces statistiques dans un nouveau jeu de données nommé `cars_summary`. La `PROC PRINT` suivante affiche le contenu du jeu de données `cars_summary`.
Explication : Cette `PROC SUMMARY` calcule le prix moyen de détail (`MSRP`) des voitures. Les statistiques sont regroupées par `origin` et `make` (variables de classification). L'option `NWAY` assure que la sortie ne contient que les combinaisons les plus détaillées des variables `CLASS`. Le résultat, avec la variable `average_msrp`, est stocké dans le jeu de données `msrp`.
Copié !
proc summary data = sashelp.cars nway;
class origin make;
var msrp;
output out = msrp mean(msrp) = average_msrp;
run;
1
PROC SUMMARYDATA = sashelp.cars nway;
2
class origin make;
3
var msrp;
4
OUTPUT out = msrp mean(msrp) = average_msrp;
5
RUN;
4 Bloc de code
PROC SUMMARY Data
Explication : Cette `PROC SUMMARY` calcule les moyennes des variables `wheelbase` et `weight` à partir du jeu de données `sashelp.cars`. Les moyennes calculées sont stockées dans le jeu de données `WW_means` sous les noms `mean_wheelbase` et `mean_weight`.
Copié !
proc summary data = sashelp.cars;
var wheelbase weight;
output out = WW_means mean(WheelBase Weight) = mean_wheelbase mean_weight;
run;
1
PROC SUMMARYDATA = sashelp.cars;
2
var wheelbase weight;
3
OUTPUT out = WW_means mean(WheelBase Weight) = mean_wheelbase mean_weight;
4
RUN;
5 Bloc de code
DATA STEP Data
Explication : Cette étape `DATA` crée un nouveau jeu de données `cars`. Elle fusionne les moyennes (`mean_wheelbase`, `mean_weight`) du jeu de données `WW_means` avec `sashelp.cars` en utilisant une technique de 'set persistant' où les moyennes sont lues une seule fois au premier enregistrement (`_n_ eq 1`). Elle calcule ensuite les déviations de `wheelbase` (`x_dev`) et `weight` (`y_dev`) par rapport à leurs moyennes. La ligne `xy_dev = x_dev = y_dev;` effectue une comparaison logique, affectant 1 à `xy_dev` si `x_dev` est égal à `y_dev`, et 0 sinon. Pour un calcul de corrélation de Pearson, cette ligne devrait être `xy_dev = x_dev * y_dev;`.
Copié !
data cars;
set sashelp.cars;
if (_n_ eq 1) then set ww_means;
x_dev = wheelbase - mean_wheelbase;
y_dev = weight - mean_weight;
xy_dev = x_dev = y_dev;
output;
run;
1
DATA cars;
2
SET sashelp.cars;
3
IF (_n_ eq 1) THENSET ww_means;
4
x_dev = wheelbase - mean_wheelbase;
5
y_dev = weight - mean_weight;
6
xy_dev = x_dev = y_dev;
7
OUTPUT;
8
RUN;
6 Bloc de code
PROC SUMMARY Data
Explication : Cette `PROC SUMMARY` prend le jeu de données `cars` en entrée. Elle calcule la somme des carrés non corrigée (`USS`) pour `x_dev` et `y_dev` (stockées dans `x_ss` et `y_ss`), et la somme (`SUM`) de `xy_dev` (stockée dans `xy_ss`). Ces statistiques sont intermédiaires pour le calcul manuel du coefficient de corrélation de Pearson.
Copié !
proc summary data = cars;
var x_dev y_dev xy_dev;
output out = dev uss(x_dev y_dev) = x_ss y_ss sum(xy_dev) = xy_ss;
run;
1
PROC SUMMARYDATA = cars;
2
var x_dev y_dev xy_dev;
3
OUTPUT out = dev uss(x_dev y_dev) = x_ss y_ss sum(xy_dev) = xy_ss;
4
RUN;
7 Bloc de code
DATA STEP Data
Explication : Cette étape `DATA` prend le jeu de données `dev` et y ajoute une nouvelle variable `PearsonCorrelation`. Elle utilise la formule standard pour calculer le coefficient de corrélation de Pearson à partir des sommes des carrés (`x_ss`, `y_ss`) et de la somme des produits des déviations (`xy_ss`). Cependant, en raison de l'erreur dans le calcul de `xy_dev` dans une étape `DATA` précédente, le `PearsonCorrelation` calculé ici ne représentera pas la vraie corrélation.
Copié !
data dev;
set dev;
PearsonCorrelation = xy_ss/(sqrt(x_ss) *sqrt(y_ss));
run;
Explication : Cette `PROC CORR` calcule directement le coefficient de corrélation de Pearson entre les variables `WheelBase` et `Weight` du jeu de données `sashelp.cars`. C'est la méthode standard et recommandée pour obtenir des corrélations.
Copié !
proc corr data = sashelp.cars;
var WheelBase Weight;
run;
1
2
PROC CORR
3
DATA = sashelp.cars;
4
var WheelBase Weight;
5
RUN;
6
9 Bloc de code
PROC REG
Explication : Cette `PROC REG` effectue une analyse de régression linéaire. Elle modélise la variable `weight` (dépendante) en fonction de la variable `wheelbase` (indépendante) en utilisant le jeu de données `sashelp.cars`, fournissant des statistiques sur l'ajustement du modèle, les coefficients de régression et l'ANOVA.
Copié !
proc reg data=sashelp.cars;
model weight=wheelbase;
run;
1
2
PROC REG
3
DATA=sashelp.cars;
4
model weight=wheelbase;
5
RUN;
6
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.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.