Publié le :
Reporting SASHELP

Analyse et Visualisation Comparative de l'IMC

Ce code est également disponible en : Deutsch English Español
Le script est divisé en trois parties principales. Premièrement, PROC FCMP est utilisé pour créer quatre fonctions personnalisées : BMI (IMC standard), newBMI (une variante de l'IMC), BMIDiff (la différence entre les deux IMC) et absBMIDiff (la valeur absolue de cette différence). Ces fonctions sont stockées dans la bibliothèque sasuser.cmplib. Deuxièmement, PROC TEMPLATE définit un modèle STATGRAPH nommé 'bmi'. Ce modèle inclut un rangeAttrMap pour colorer les bulles du graphique en fonction de la différence d'IMC et un bubblePlot qui visualise la hauteur, le poids et la différence absolue d'IMC. La couleur des bulles indique si le nouvel IMC est supérieur ou inférieur à l'ancien. Enfin, PROC SGRENDER utilise le modèle 'bmi' avec les données de sashelp.class pour générer le graphique, visualisant ainsi la comparaison des deux méthodes de calcul de l'IMC pour chaque individu de l'ensemble de données.
Analyse des données

Type : SASHELP


Les données utilisées pour le rendu du graphique proviennent de l'ensemble de données `sashelp.class`, qui est un ensemble de données de démonstration intégré à SAS et donc interne au système.

1 Bloc de code
PROC FCMP
Explication :
Ce bloc utilise `PROC FCMP` pour définir quatre fonctions personnalisées qui seront utilisées plus tard. `BMI` calcule l'Indice de Masse Corporelle classique. `newBMI` calcule une version alternative de l'IMC avec une formule différente (pouvoir 2.5 au lieu de 2). `BMIDiff` calcule la différence entre le nouvel IMC et l'ancien. Enfin, `absBMIDiff` retourne la valeur absolue de cette différence. Ces fonctions sont compilées et stockées dans la bibliothèque `sasuser.cmplib.test` pour être réutilisables. L'instruction `options cmplib=sasuser.cmplib;` rend ces fonctions accessibles pour les étapes suivantes.
Copié !
1PROC FCMP outlib=sasuser.cmplib.test;
2/* http://people.maths.ox.ac.uk/trefethen/bmi.html */
3 function BMI(height_inch, weight_lb);
4 return (703 * weight_lb / (height_inch ** 2));
5 endsub;
6 function newBMI(height_inch, weight_lb);
7 return (5734 * weight_lb / (height_inch ** 2.5));
8 endsub;
9 function BMIDiff(height_inch, weight_lb);
10 return (newBMI(height_inch, weight_lb)
11 - BMI(height_inch, weight_lb));
12 endsub;
13 function absBMIDiff(height_inch, weight_lb);
14 return(abs(BMIDiff(height_inch, weight_lb)));
15 endsub;
16RUN; QUIT;
17options cmplib=sasuser.cmplib;
2 Bloc de code
PROC TEMPLATE (STATGRAPH)
Explication :
Ce bloc définit un modèle de graphique SG (SGPLOT) nommé 'bmi' en utilisant `PROC TEMPLATE`. Il configure un `rangeAttrMap` (`ram1`) pour gérer la coloration des bulles : du vert au blanc pour les différences négatives d'IMC (nouvel IMC < ancien IMC), et du blanc au rouge pour les différences positives (nouvel IMC > ancien IMC). La variable `bmiDiff` est créée dynamiquement en évaluant la fonction `BMIDiff` définie précédemment. Le titre du graphique est défini et un `bubblePlot` est créé où la taille de la bulle est proportionnelle à la valeur absolue de la différence d'IMC (`absBMIDiff`), et la couleur est déterminée par `bmiDiff` via le `rangeAttrMap`. Une légende continue est ajoutée pour expliquer la coloration. Un pied de page indique la source des formules d'IMC.
Copié !
1PROC TEMPLATE;
2 define statgraph bmi;
3 beginGraph;
4 rangeAttrMap name="ram1";
5 range min - 0 / rangeColorModel=(green white);
6 range 0 - max / rangeColorModel=(white red);
7 endRangeAttrMap;
8 rangeAttrVar var=eval(BMIDiff(height, weight)) attrVar=bmiDiff attrMap="ram1";
9 entryTitle "BMIs for sashelp.class: New vs Old";
10 layout overlay;
11 bubblePlot x=weight y=height size=eval(absBMIDiff(height, weight)) /
12 name="bp1"
13 dataTransparency=0.3
14 colorResponse=bmiDiff
15 ;
16 continuousLegend "bp1" / title='New - Old' vAlign=bottom;
17 endLayout;
18 entryFootnote halign=left "BMI formulae from: http://people.maths.ox.ac.uk/trefethen/bmi.html";
19 endGraph;
20 END;
21RUN;
3 Bloc de code
PROC SGRENDER
Explication :
Ce bloc utilise `PROC SGRENDER` pour générer le graphique. Il spécifie que les données proviennent de l'ensemble de données `sashelp.class` et que le modèle de graphique à utiliser est 'bmi', défini dans le bloc `PROC TEMPLATE` précédent. Cette étape exécute la création visuelle du bubble plot, en appliquant les fonctions FCMP et les règles de style définies dans le template.
Copié !
1 
2PROC SGRENDER
3DATA=sashelp.class template=bmi;
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.
Informations de Copyright : URL de référence pour les formules BMI: http://people.maths.ox.ac.uk/trefethen/bmi.html, citée dans le code.