Cambie el color de los valores faltantes usando un mapeo de atributos de rango

Cambie el color de los valores faltantes usando un mapeo de atributos de rango


En un artículo sobre la visualización de datos faltantes en un mapa de calor, noté que los procedimientos SAS SG (como PROC SGPLOT) usan el elemento de estilo GraphMissing para colorear una barra o mosaico que representa un valor faltante. En el estilo HTMLBlue ODS, el color de los valores faltantes es gris. Este artículo muestra cómo anular el color GraphMissing mediante una asignación de atributo de rango en SAS. El apéndice de este artículo contiene vínculos a artículos que analizan las asignaciones de atributos de alcance con más detalle.

Un mapa de atributos de rango se usa normalmente para definir un modelo de color (también conocido como degradado) y para asignar cada color a un valor para una variable. Sin embargo, un mapa de atributos de área también admite la asignación del color de la categoría que falta, como se muestra en este artículo.

Al crear un mapa de atributos de rango, puede especificar el color de los valores faltantes para cualquier gráfico que use el mapa. Un artículo futuro mostrará cómo anular el color GraphMissing cambiando un estilo ODS. Al cambiar un estilo ODS, puede cambiar el color de los valores faltantes para todos los gráficos.

Data de muestra

Los siguientes datos y mapa de calor son de un artículo anterior. Los datos provienen de cinco pacientes en un estudio clínico. Después de la medición de referencia inicial (semana = 0), los pacientes deben medirse semanalmente durante 10 semanas. Sólo un paciente cumplió las 10 citas. Los pacientes restantes faltaron al menos a dos citas. El siguiente mapa de calor (a veces denominado Parcela de lasaña) muestra la medición clínica para cada paciente y para cada semana del estudio.

data Clinical;
input patientID @;
do Week = 0 to 10;
   input Value @;
   output;
end;
/* ID Wk1  Wk2  Wk3  Wk4 ... Wk10*/
datalines;
1001  12.0 13.0 13.0   .   .   .  13.0 14.0 14.5 15.0 13.5 
1002  11.5 12.5   .  11.0  .   .    .    .    .   9.5  8.0 
1003  12.0   .    .  11.0  . 10.5 11.0   .    .  10.5  9.0 
1004  11.0 11.0 11.0   .  7.5 6.5   .   7.0  7.5  5.5  4.0 
1005  10.0 10.5 11.0  9.0 7.0 7.5  7.0  7.5  4.0  6.5  5.5 
;
 
%let WhiteYeOrRed = (CXFFFFFF CXFFFFB2 CXFECC5C CXFD8D3C CXE31A1C);
 
title "Missing Values Displayed in GraphMissing Color";
proc sgplot data=Clinical;
   heatmapparm x=Week y=PatientID colorresponse=Value / outline outlineattrs=(color=gray)
        colormodel=&WhiteYeOrRed; 
   gradlegend;
   refline (1000.5 to 1005.5) / axis=Y lineattrs=(color=black thickness=2);
   xaxis integer values=(0 to 10) valueshint;
   legenditem type=fill name='missItem' / fillattrs=GraphMissing label="Missing Data";
   keylegend 'missItem';
run;

El valor de la medición clínica se muestra utilizando un modelo de color blanco-amarillo-naranja-rojo. Las citas perdidas se muestran en gris, que coincide con el color del elemento de estilo GraphMissing en el estilo ODS que estoy usando. Supongamos que desea utilizar un color que no sea gris. Puede anular el color utilizado en el estilo ODS, que afectará a todos los gráficos, o puede crear un mapa de atributos de rango y usarlo solo para este gráfico. La siguiente sección muestra cómo definir un mapa de atributos de área.

Definir un mapeo de atributos de área

Las referencias en el apéndice brindan detalles, pero el propósito principal de un mapa de atributos de área es mapear un conjunto de valores continuos a un espectro de color. En resumen, un mapa de atributos de región es un conjunto de datos SAS especial que le permite definir los colores en un degradado personalizado y los valores que representa el degradado.

El conjunto de datos debe contener variables denominadas MIN y MAX que utilice para asignar colores a un rango de valores. Sin embargo, hay valores especiales que puede usar en las columnas MIN o MAX:

  1. MIN = _MIN_ indica el valor de datos más pequeño en una variable.
  2. MAX = _MAX_ indica el valor de datos más grande en una variable.
  3. MIN = _MISSING_ especifica cómo se asignan los atributos a los valores faltantes de la variable.

Para asegurarnos de que podemos ver claramente los valores que faltan, elijamos un color brillante y desagradable, como el negro. B. Cian (azul claro). No elegiría este color para un trabajo serio, pero facilita la detección de los valores que faltan en este ejemplo.

/* create a range attribute data set */
data MyRangeAttrs;
retain ID "MapMissing";
length min $10 max $10 
       color altcolor colormodel1 colormodel2 colormodel3 colormodel4 colormodel5 $15;
input min max color altcolor colormodel1 colormodel2 colormodel3 colormodel4 colormodel5;
datalines;
_MISSING_  .     CYAN CYAN .        .        .        .        .
_MIN_      _MAX_ .    .   CXFFFFFF CXFFFFB2 CXFECC5C CXFD8D3C CXE31A1C
;

Las variables en el conjunto de datos deben tener nombres específicos como se especifica en la documentación. La primera observación da los colores para los valores faltantes (MIN=_MISSING_). La variable COLOR especifica el color de las áreas y barras. La variable ALTCOLOR especifica el color de los marcadores y las líneas. La segunda observación especifica un modelo de color para usar para las observaciones que no faltan. Para este ejemplo, utilicé el mismo modelo de color Blanco-Amarillo-Naranja-Rojo.

Para usar el mapeo de atributos de área, especifique el nombre del conjunto de datos usando la opción RATTRMAP= en la instrucción PROC SGPLOT. Un registro puede contener muchas asignaciones diferentes, cada una definida por una ID única. En este caso, el registro contiene solo un mapa y el valor de ID es «MapMissing». Utilice la opción RATTRID=MapMissing para especificar el valor de ID del mapa. Las siguientes instrucciones usan el registro de atributo Range para asignar colores a los mosaicos del mapa de calor. Además, tuve que cambiar la instrucción LEGENDITEM para que apareciera una muestra cian en la leyenda.

title "Missing Values Displayed in Custom Color";
proc sgplot data=Clinical RATTRMAP=MyRangeAttrs;  /* <== HERE */
   heatmapparm x=Week y=PatientID colorresponse=Value / outline outlineattrs=(color=gray)
        RATTRID=MapMissing;                       /* <== AND HERE */
   gradlegend;
   refline (1000.5 to 1005.5) / axis=Y lineattrs=(color=black thickness=2);
   xaxis integer values=(0 to 10) valueshint;
   /* if you use FILLATTRS=GraphMissing, you will get gray */
   legenditem type=fill name='missItem' / fillattrs=(color=CYAN) label="Missing Data";
   keylegend 'missItem';
run;

¡Éxito! Las citas perdidas ahora se muestran en color cian (¡muy claro!). Al usar el mapa de atributos de rango, tengo control total sobre los colores de los mosaicos, incluidos los mosaicos con valores faltantes.

Resumen

En resumen, este artículo muestra cómo crear un mapa de atributos de área para un mapa de calor. El propósito principal de un mapa de atributos de rango es mapear un conjunto de valores continuos a un espectro de color. Sin embargo, al utilizar la palabra clave especial «_MISSING_» como valor para la variable MIN, puede controlar el color utilizado para indicar valores faltantes.

sigue leyendo

Related post

Una guía completa para la gestión de las relaciones con los clientes

Una guía completa para la gestión de las relaciones…

Cuando se trata de administrar un negocio, una de las cosas más importantes es mantener contentos a sus clientes. No hay…
La IA defectuosa hace que los robots sean racistas y sexistas

La IA defectuosa hace que los robots sean racistas…

26 de junio de 2022 (Noticias de Nanowerk) Un robot que trabaja con un popular sistema de inteligencia artificial basado en…
Los resultados de la encuesta identifican los beneficios y desafíos de RPA

Los resultados de la encuesta identifican los beneficios y…

Robocorp, uno de los principales proveedores de automatización de procesos robóticos (RPA) Gen2, anunció los resultados de su encuesta sobre el…

Leave a Reply

Tu dirección de correo electrónico no será publicada.