Publié le :

Analyse de Survie avec Courbes et Tableaux de Risque

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script commence par configurer l'environnement ODS (Output Delivery System) pour la sortie graphique. Il exécute ensuite la procédure LIFETEST sur le jeu de données 'sashelp.BMT' pour effectuer une analyse de survie stratifiée par la variable 'Group'. Les données du graphique de survie sont capturées dans un jeu de données nommé 'SurvivalPlotData'. Par la suite, la procédure SGPLOT est utilisée à trois reprises pour générer différentes versions d'un graphique de survie, en faisant varier la position et le style du tableau des sujets à risque (à l'extérieur ou à l'intérieur du graphique) et le style ODS général.
Analyse des données

Type : SASHELP


Le script utilise exclusivement le jeu de données BMT de la bibliothèque standard SASHELP, qui contient des données sur la transplantation de moelle osseuse.

1 Bloc de code
PROC LIFETEST Data
Explication :
Ce bloc initialise l'environnement de sortie graphique et exécute la procédure LIFETEST. L'analyse de survie est effectuée sur les données sashelp.BMT, en utilisant la variable T pour le temps et Status pour l'événement. L'analyse est stratifiée par 'Group'. Les résultats graphiques, notamment les points de la courbe de survie, sont sauvegardés dans la table 'SurvivalPlotData' grâce à l'instruction 'ods output'.
Copié !
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 Bloc de code
PROC SGPLOT
Explication :
Ce bloc utilise PROC SGPLOT pour générer une courbe de survie (instruction STEP) avec des marqueurs pour les données censurées (instruction SCATTER). La principale caractéristique de ce graphique est l'ajout d'un tableau des sujets à risque (xaxistable) positionné à l'extérieur, sous l'axe des abscisses.
Copié !
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 Bloc de code
PROC SGPLOT
Explication :
Similaire au bloc précédent, ce code génère la même courbe de survie. La différence clé est que le tableau des sujets à risque (xaxistable) est configuré avec 'location=inside', ce qui le place en bas du graphique, superposé à la zone de traçage.
Copié !
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 Bloc de code
PROC SGPLOT
Explication :
Ce dernier bloc change le style ODS pour 'journal' et génère une troisième version du graphique. Le tableau des sujets à risque est toujours à l'intérieur. Des options esthétiques sont ajoutées, comme des étiquettes directement sur les courbes (curvelabel) et un style de marqueur différent pour les données censurées (cercle plein).
Copié !
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;
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.