Publié le :
Reporting SASHELP

Statistiques Simples avec Graphique Scatter et Lignes de Référence

Ce code est également disponible en : Deutsch English Español
Ce script SAS© définit un modèle `STATGRAPH` nommé `simpleStats` pour la visualisation de données. Il génère un graphique scatter (nuage de points) affichant la relation entre le prix de détail suggéré par le fabricant (msrp) et la consommation de carburant sur autoroute (mpg_highway), regroupé par type de véhicule. Le graphique est enrichi de lignes de référence : une verticale indiquant la médiane du `msrp`, et deux horizontales pour la moyenne de `mpg_highway` plus/moins un écart-type. Une légende est incluse pour les groupes de type, et une note de bas de page dynamique affiche la plage de poids min/max des véhicules. Le modèle est ensuite rendu en utilisant la table `sashelp.cars`.
Analyse des données

Type : SASHELP


Le script utilise la table `cars` de la bibliothèque interne `sashelp`, une source de données standard disponible dans toutes les installations SAS.

1 Bloc de code
PROC TEMPLATE
Explication :
Ce bloc définit un modèle de graphique `STATGRAPH` réutilisable nommé `simpleStats`. Il spécifie les éléments visuels du graphique, y compris un titre, un layout superposé pour combiner des éléments graphiques, un nuage de points (`scatterPlot`) regroupé par la variable `type`, et des lignes de référence (`referenceLine`) calculées dynamiquement en utilisant des fonctions statistiques (`median`, `mean`, `std`) et la fonction `eval`. Une légende discrète est ajoutée, ainsi qu'une note de bas de page (`entryFootnote`) qui affiche des statistiques résumées (min et max de `weight`) du jeu de données en cours de rendu. Ce modèle encapsule la logique de présentation du graphique sans traiter les données à ce stade, le rendant réutilisable.
Copié !
1PROC TEMPLATE;
2 define statgraph simpleStats;
3 beginGraph;
4 entryTitle "Simple Statistics using Expression";
5 layout overlay;
6 scatterPlot x=msrp y=mpg_highway / name="sp1"
7 group=type dataTransparency=0.2;
8 referenceLine x=eval(median(msrp)) / lineAttrs=(pattern=shortDash)
9 curveLabel="x(*ESC*){unicode '0303'x}" curveLabelAttrs=(size=12);
10 referenceLine y=eval(mean(mpg_highway) + std(mpg_highway)) /
11 curveLabel="x(*ESC*){unicode '0304'x} + (*ESC*){unicode sigma}"
12 curveLabelAttrs=(size=12) lineAttrs=(pattern=dashDashDot);
13 referenceLine y=eval(mean(mpg_highway) - std(mpg_highway)) /
14 curveLabel="x(*ESC*){unicode '0304'x} - (*ESC*){unicode sigma}"
15 curveLabelAttrs=(size=12) lineAttrs=(pattern=dashDashDot);
16 discreteLegend "sp1" / across=3 location=inside hAlign=right vAlign=top;
17 endLayout;
18 entryFootnote halign=left "Weight (in lbs) ranges from " eval(min(weight))
19 " to " eval(max(weight)) ;
20 endGraph;
21 END;
22RUN;
2 Bloc de code
PROC SGRENDER
Explication :
Ce bloc de code commence par réinitialiser les options graphiques d'ODS (`ods graphics / reset;`) pour s'assurer d'un environnement graphique propre et éviter les interférences avec les paramètres précédents. Ensuite, la procédure `PROC SGRENDER` est utilisée pour générer le graphique. Elle applique le modèle `simpleStats` précédemment défini (via `template=simpleStats`) aux données contenues dans la table `sashelp.cars` (via `data=sashelp.cars`). Cela produit l'image du graphique avec tous les éléments spécifiés dans le modèle, en utilisant les variables `msrp`, `mpg_highway`, `type` et `weight` de la table `cars` pour le rendu final.
Copié !
1ods graphics / reset;
2PROC SGRENDER
3DATA=sashelp.cars template=simpleStats;
4RUN;
5 
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.