Publicado el :
Informes CREATION_INTERNE

Gráficos de la variación del tamaño de un tumor (Waterfall Plot)

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza creando un conjunto de datos 'TumorSize' que simula la variación del tamaño de tumores para 25 sujetos distribuidos en dos grupos de tratamiento ('Treatment 1', 'Treatment 2'). Luego genera dos gráficos. El primero es un diagrama de barras clásico ordenado por respuesta. El segundo, después de una ordenación explícita de los datos, produce un gráfico similar pero más avanzado con una banda de confianza y una apariencia de barra diferente. Los gráficos están configurados para ser exportados a través de ODS LISTING.
Análisis de datos

Type : CREATION_INTERNE


El conjunto de datos 'TumorSize' se genera completamente en el primer paso DATA. Utiliza la función ranuni para simular datos aleatorios para 25 observaciones, representando pacientes y la variación del tamaño de su tumor.

1 Bloque de código
Configuration
Explicación :
Este bloque inicializa macro-variables para la ruta de salida y la resolución de la imagen. Cierra el destino ODS HTML y configura el destino ODS LISTING para la salida de los gráficos.
¡Copiado!
1%let gpath='.'; /*--Put your Folder Name here--*/
2%let dpi=300;
3ods html close;
4ods listing gpath=&gpath image_dpi=&dpi;
2 Bloque de código
DATA STEP Data
Explicación :
Generación de la tabla 'TumorSize' que contiene 25 observaciones. Para cada observación, se crea aleatoriamente un identificador (Cid), una variación ('change'), un grupo de tratamiento ('Group') y una etiqueta ('Label').
¡Copiado!
1DATA TumorSize;
2 LENGTH Cid $ 3;
3 label Change='Change from Baseline (%)';
4 DO Id=1 to 25;
5 cid=put(id, 2.0);
6 change=30-120*ranuni(2);
7 Group=ifc(int(ranuni(2)+0.5), 'Treatment 1', 'Treatment 2');
8 IF mod(id, 5) = 1 THEN Label='C';
9 IF mod(id, 5) = 2 THEN label='R';
10 IF mod(id, 5) = 3 THEN label='S';
11 IF mod(id, 5) = 4 THEN label='P';
12 IF mod(id, 5) = 0 THEN label='N';
13 OUTPUT;
14 END;
15RUN;
3 Bloque de código
PROC SGPLOT
Explicación :
Creación de un primer gráfico de barras ('waterfall plot') con el procedimiento SGPLOT. Representa la variación ('change') para cada paciente (Cid), agrupado por tratamiento. Las barras se ordenan por el valor de la respuesta (decreciente). Se añaden líneas de referencia y leyendas para contextualizar.
¡Copiado!
1ods graphics / reset width=5in height=3in imagename='4_9_1_TumorSize_SG_V94';
2title 'Change in Tumor Size';
3title2 'ITT Population';
4PROC SGPLOT DATA=TumorSize nowall noborder;
5 styleattrs datacolors=(cxbf0000 cx4f4f4f) datacontrastcolors=(black);
6 vbar cid / response=change group=group categoryorder=respdesc datalabel=label
7 datalabelattrs=(size=5 weight=bold) groupdisplay=cluster clusterwidth=1;
8 refline 20 -30 / lineattrs=(pattern=shortdash);
9 xaxis display=none;
10 yaxis values=(60 to -100 BY -20);
11 inset ("C="="CR" "R="="PR" "S="="SD" "P="="PD" "N="="NE") / title='BCR'
12 position=bottomleft border textattrs=(size=6 weight=bold) titleattrs=(size=7);
13 keylegend / title='' location=inside position=topright across=1 border;
14RUN;
15title;
4 Bloque de código
PROC SORT Data
Explicación :
Ordenación de la tabla 'TumorSize' por la variable 'change' en orden descendente. El resultado se guarda en una nueva tabla llamada 'TumorSizeDesc'.
¡Copiado!
1 
2PROC SORT
3DATA=TumorSize out=TumorSizeDesc;
4BY descending change;
5RUN;
6 
5 Bloque de código
PROC SGPLOT
¡Copiado!
1ods graphics / reset width=5in height=3in imagename='4_9_2_TumorSize_SG_V94';
2title 'Change in Tumor Size';
3title2 'ITT Population';
4PROC SGPLOT DATA=TumorSizeDesc nowall noborder;
5 styleattrs datacolors=(cxbf0000 gold) datacontrastcolors=(black) axisextent=DATA;
6 band x=cid upper=20 lower=-30 / transparency=0.5 fill nooutline legendlabel='Confidence';
7 vbarparm category=cid response=change / group=group datalabel=label
8 datalabelattrs=(size=5 weight=bold) groupdisplay=cluster
9 dataskin=pressed;
10 xaxis display=none;
11 yaxis values=(60 to -100 BY -20) grid gridattrs=(color=cxf0f0f0);
12 inset ("C="="CR" "R="="PR" "S="="SD" "P="="PD" "N="="NE") / title='BCR'
13 position=bottomleft border textattrs=(size=6 weight=bold) titleattrs=(size=7);
14 keylegend / title='' location=inside position=topright across=1 border opaque;
15RUN;
16title;
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.