Publicado el :

Análisis de Supervivencia con Curvas y Tablas de Riesgo

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza configurando el entorno ODS (Output Delivery System) para la salida gráfica. Luego ejecuta el procedimiento LIFETEST en el conjunto de datos 'sashelp.BMT' para realizar un análisis de supervivencia estratificado por la variable 'Group'. Los datos del gráfico de supervivencia se capturan en un conjunto de datos llamado 'SurvivalPlotData'. Posteriormente, el procedimiento SGPLOT se utiliza tres veces para generar diferentes versiones de un gráfico de supervivencia, variando la posición y el estilo de la tabla de sujetos en riesgo (fuera o dentro del gráfico) y el estilo ODS general.
Análisis de datos

Type : SASHELP


El script utiliza exclusivamente el conjunto de datos BMT de la biblioteca estándar SASHELP, que contiene datos sobre el trasplante de médula ósea.

1 Bloque de código
PROC LIFETEST Data
Explicación :
Este bloque inicializa el entorno de salida gráfica y ejecuta el procedimiento LIFETEST. El análisis de supervivencia se realiza en los datos sashelp.BMT, utilizando la variable T para el tiempo y Status para el evento. El análisis se estratifica por 'Group'. Los resultados gráficos, incluidos los puntos de la curva de supervivencia, se guardan en la tabla 'SurvivalPlotData' gracias a la instrucción 'ods output'.
¡Copiado!
1%let gpath='.';
2%let dpi=300;
3ods html close;
4ods listing style=htmlblue image_dpi=&dpi gpath=&gpath;
5 
6ods graphics on;
7ods OUTPUT Survivalplot=SurvivalPlotData;
8PROC LIFETEST DATA=sashelp.BMT plots=survival(atrisk=0 to 2500 BY 500);
9 time T * STATUS(0);
10 strata Group / test=logrank adjust=sidak;
11RUN;
2 Bloque de código
PROC SGPLOT
Explicación :
Este bloque utiliza PROC SGPLOT para generar una curva de supervivencia (instrucción STEP) con marcadores para los datos censurados (instrucción SCATTER). La característica principal de este gráfico es la adición de una tabla de sujetos en riesgo (xaxistable) posicionada fuera, debajo del eje X.
¡Copiado!
1ods graphics / reset width=5in height=3in imagename='4_5_1_Survival Plot_SG_V94';
2title 'Product-Limit Survival Estimates';
3title2 h=0.8 'With Number of AML Subjects at Risk';
4PROC SGPLOT DATA=SurvivalPlotData;
5 step x=time y=survival / group=stratum lineattrs=(pattern=solid) name='s';
6 scatter x=time y=censored / markerattrs=(symbol=plus) name='c';
7 scatter x=time y=censored / markerattrs=(symbol=plus) GROUP=stratum;
8 xaxistable atrisk / x=tatrisk location=outside class=stratum colorgroup=stratum;
9 keylegend 'c' / location=inside position=topright;
10 keylegend 's';
11RUN;
3 Bloque de código
PROC SGPLOT
Explicación :
Similar al bloque anterior, este código genera la misma curva de supervivencia. La diferencia clave es que la tabla de sujetos en riesgo (xaxistable) está configurada con 'location=inside', lo que la coloca en la parte inferior del gráfico, superpuesta a la zona de trazado.
¡Copiado!
1ods listing style=htmlBlue;
2ods graphics / reset width=5in height=3in imagename='4_5_2_Survival Plot_Inner_SG_V94';
3title 'Product-Limit Survival Estimates';
4title2 h=0.8 'With Number of AML Subjects at Risk';
5PROC SGPLOT DATA=SurvivalPlotData;
6 step x=time y=survival / group=stratum lineattrs=(pattern=solid) name='s';
7 scatter x=time y=censored / markerattrs=(symbol=plus) name='c';
8 scatter x=time y=censored / markerattrs=(symbol=plus) GROUP=stratum;
9 xaxistable atrisk / x=tatrisk location=inside class=stratum colorgroup=stratum
10 separator valueattrs=(size=7 weight=bold) labelattrs=(size=8);
11 keylegend 'c' / location=inside position=topright;
12 keylegend 's';
13RUN;
4 Bloque de código
PROC SGPLOT
Explicación :
Este último bloque cambia el estilo ODS a 'journal' y genera una tercera versión del gráfico. La tabla de sujetos en riesgo todavía está dentro. Se añaden opciones estéticas, como etiquetas directamente en las curvas (curvelabel) y un estilo de marcador diferente para los datos censurados (círculo relleno).
¡Copiado!
1ods listing style=journal;
2ods graphics / reset width=5in height=3in imagename='4_5_3_Survival Plot_Inner_Journal_SG_V94';
3title 'Product-Limit Survival Estimates';
4title2 h=0.8 'With Number of AML Subjects at Risk';
5PROC SGPLOT DATA=SurvivalPlotData;
6 step x=time y=survival / group=stratum lineattrs=(pattern=solid) name='s'
7 curvelabel curvelabelattrs=(size=6) splitchar='-';
8 scatter x=time y=censored / name='c' markerattrs=(symbol=circlefilled size=4);
9 xaxistable atrisk / x=tatrisk location=inside class=stratum colorgroup=stratum
10 separator valueattrs=(size=7 weight=bold) labelattrs=(size=8);
11 keylegend 'c' / location=inside position=topright;
12RUN;
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.