Publicado el :
Reporting SASHELP

Análisis y Visualización Comparativa del IMC

Este código también está disponible en: Deutsch English Français
El script se divide en tres partes principales. Primero, PROC FCMP se utiliza para crear cuatro funciones personalizadas: BMI (IMC estándar), newBMI (una variante del IMC), BMIDiff (la diferencia entre los dos IMC) y absBMIDiff (el valor absoluto de esta diferencia). Estas funciones se almacenan en la biblioteca sasuser.cmplib. Segundo, PROC TEMPLATE define un modelo STATGRAPH llamado 'bmi'. Este modelo incluye un rangeAttrMap para colorear las burbujas del gráfico según la diferencia de IMC y un bubblePlot que visualiza la altura, el peso y la diferencia absoluta de IMC. El color de las burbujas indica si el nuevo IMC es superior o inferior al antiguo. Finalmente, PROC SGRENDER utiliza el modelo 'bmi' con los datos de sashelp.class para generar el gráfico, visualizando así la comparación de los dos métodos de cálculo del IMC para cada individuo del conjunto de datos.
Análisis de datos

Type : SASHELP


Los datos utilizados para la representación del gráfico provienen del conjunto de datos `sashelp.class`, que es un conjunto de datos de demostración integrado en SAS y, por lo tanto, interno al sistema.

1 Bloque de código
PROC FCMP
Explicación :
Este bloque utiliza `PROC FCMP` para definir cuatro funciones personalizadas que se utilizarán más adelante. `BMI` calcula el Índice de Masa Corporal clásico. `newBMI` calcula una versión alternativa del IMC con una fórmula diferente (potencia 2.5 en lugar de 2). `BMIDiff` calcula la diferencia entre el nuevo IMC y el antiguo. Finalmente, `absBMIDiff` devuelve el valor absoluto de esta diferencia. Estas funciones se compilan y almacenan en la biblioteca `sasuser.cmplib.test` para ser reutilizables. La instrucción `options cmplib=sasuser.cmplib;` hace que estas funciones sean accesibles para los pasos siguientes.
¡Copiado!
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 Bloque de código
PROC TEMPLATE (STATGRAPH)
Explicación :
Este bloque define un modelo de gráfico SG (SGPLOT) llamado 'bmi' utilizando `PROC TEMPLATE`. Configura un `rangeAttrMap` (`ram1`) para gestionar la coloración de las burbujas: de verde a blanco para las diferencias negativas de IMC (nuevo IMC < antiguo IMC), y de blanco a rojo para las diferencias positivas (nuevo IMC > antiguo IMC). La variable `bmiDiff` se crea dinámicamente evaluando la función `BMIDiff` definida previamente. El título del gráfico se define y se crea un `bubblePlot` donde el tamaño de la burbuja es proporcional al valor absoluto de la diferencia de IMC (`absBMIDiff`), y el color está determinado por `bmiDiff` a través del `rangeAttrMap`. Se añade una leyenda continua para explicar la coloración. Un pie de página indica la fuente de las fórmulas de IMC.
¡Copiado!
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 Bloque de código
PROC SGRENDER
Explicación :
Este bloque utiliza `PROC SGRENDER` para generar el gráfico. Especifica que los datos provienen del conjunto de datos `sashelp.class` y que el modelo de gráfico a utilizar es 'bmi', definido en el bloque `PROC TEMPLATE` anterior. Este paso ejecuta la creación visual del diagrama de burbujas, aplicando las funciones FCMP y las reglas de estilo definidas en la plantilla.
¡Copiado!
1 
2PROC SGRENDER
3DATA=sashelp.class template=bmi;
4RUN;
5 
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : URL de referencia para las fórmulas de IMC: http://people.maths.ox.ac.uk/trefethen/bmi.html, citada en el código.