Publié le :
Statistique CREATION_INTERNE

Analyse de Survie des Tumeurs Gastro-intestinales

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script commence par créer deux jeux de données, 'renyi1' et 'renyi2', à partir de données brutes intégrées (déclaration CARDS). Chaque jeu de données contient des informations sur les jours de survie et l'état de censure. Une variable 'group' est ensuite ajoutée à chaque jeu de données pour identifier les groupes de traitement (1 pour la chimiothérapie, 2 pour la chimiothérapie + radiothérapie). Les deux jeux de données sont ensuite combinés en un seul, 'renyi'. Une PROC PRINT est utilisée pour afficher le contenu du jeu de données combiné. Enfin, PROC LIFETEST est exécutée pour effectuer l'analyse de survie, en comparant les courbes de survie des deux groupes et en générant des graphiques.
Analyse des données

Type : CREATION_INTERNE


Les données source ('renyi1' et 'renyi2') sont entièrement créées en interne dans le script SAS à l'aide de déclarations DATA et CARDS. Elles représentent des données de survie avec un identifiant, le nombre de jours de survie et un indicateur de censure.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA STEP crée le jeu de données 'renyi1' en lisant des données brutes intégrées via une déclaration CARDS. Il contient un identifiant (id), les jours de survie (days) et un indicateur de censure (censor). La partie '@code_sas/@TEMPLATE.sas' dans l'instruction INPUT semble être une erreur de syntaxe ou un reste d'une intention d'inclure des données ou des variables supplémentaires d'une manière non standard, mais est ignorée lors de la lecture des données via CARDS.
Copié !
1DATA renyi1;
2DO id=1 to 45;
3INPUT days censor @code_sas/@TEMPLATE.sas; OUTPUT;
4END;
5CARDS;
61 0 63 0 105 0 129 0 182 0 216 0 250 0 262 0 301 0 301 0 342 0 354 0
7356 0 358 0 380 0 383 0 383 0 338 0 394 0 408 0 460 0 489 0 499 0 523 0
8524 0 535 0 562 0 569 0 675 0 676 0 748 0 778 0 786 0 797 0 953 0 968 0
91000 0 1245 0 1271 0 1420 0 1551 0 1694 0 2363 0 2754 1 2950 1
10;
2 Bloc de code
DATA STEP
Explication :
Ce bloc DATA STEP modifie le jeu de données 'renyi1' existant en lui ajoutant une nouvelle variable 'group' dont la valeur est fixée à 1 pour tous les enregistrements. Cela identifie le premier groupe de traitement (chimiothérapie).
Copié !
1DATA renyi1; SET renyi1; group=1;
3 Bloc de code
DATA STEP Data
Explication :
Similaire au premier bloc, ce DATA STEP crée le jeu de données 'renyi2' à partir de données brutes intégrées. Il contient également un identifiant, les jours de survie et un indicateur de censure pour le deuxième groupe de traitement. La même observation concernant l'instruction INPUT s'applique ici.
Copié !
1DATA renyi2;
2DO id=1 to 45;
3INPUT days censor @code_sas/@TEMPLATE.sas; OUTPUT;
4END;
5CARDS;
617 0 42 0 44 0 48 0 60 0 72 0 74 0 95 0 103 0 108 0 122 0 144 0
7167 0 170 0 183 0 185 0 193 0 195 0 197 0 208 0 234 0 235 0 254 0 307 0
8315 0 401 0 445 0 464 0 484 0 528 0 542 0 547 0 577 0 580 0 795 0 855 0
91366 0 1577 0 2060 0 2412 1 2486 1 2796 1 2802 1 2934 1 2988 1
10;
4 Bloc de code
DATA STEP
Explication :
Ce bloc DATA STEP ajoute la variable 'group' avec la valeur 2 à tous les enregistrements du jeu de données 'renyi2', identifiant ainsi le deuxième groupe de traitement (chimiothérapie + radiothérapie).
Copié !
1DATA renyi2; SET renyi2; group=2;
5 Bloc de code
DATA STEP Data
Explication :
Ce DATA STEP combine (concatène) les jeux de données 'renyi1' et 'renyi2' en un nouveau jeu de données appelé 'renyi'. Cela prépare les données pour l'analyse comparative de survie.
Copié !
1DATA renyi; SET renyi1 renyi2;
6 Bloc de code
PROC PRINT
Explication :
Cette PROC PRINT affiche le contenu du jeu de données 'renyi' dans la fenêtre de sortie, permettant une vérification rapide des données combinées.
Copié !
1PROC PRINT;
7 Bloc de code
PROC LIFETEST
Explication :
Cette PROC LIFETEST réalise l'analyse de survie. Elle utilise la méthode non paramétrique LIFE pour estimer la fonction de survie. Les options 'plots=(s,h)' demandent la génération de courbes de survie et de fonction de risque cumulé. L'instruction 'time days*censor(1)' spécifie que 'days' est la variable de temps et 'censor' est la variable d'événement, où '1' indique un événement (décès). L'instruction 'strata group' demande une analyse de survie séparée pour chaque niveau de la variable 'group', permettant une comparaison entre les groupes de traitement. Les instructions SYMBOL personnalisent l'apparence des courbes dans les graphiques.
Copié !
1PROC LIFETEST method=life DATA=renyi plots=(s,h) graphics;
2title 'Gastrointestinal Tumor Study Group (1982)';
3title2 'Gastric cancer survival: 1=chemotherapy vs 2=chemotherapy+radiotherapy';
4time days*censor(1);
5strata group;
6symbol1 v=none color=red line=1;
7symbol3 v=none color=black line=3;
8 
9 
10RUN;
8 Bloc de code
MACRO DEFINITION
Explication :
Ce bloc de code définit une macro SAS nommée 'TEMPLATE'. Il s'agit d'un modèle pour la création de nouvelles macros, incluant des sections pour la documentation, l'historique des modifications, l'utilisation, les notes, les paramètres et la gestion des erreurs. Bien que présente dans les fichiers référencés, cette macro n'est pas appelée ou exécutée par le script SAS principal, elle sert uniquement de définition ou de modèle.
Copié !
1/*=====================================================================
2Program Name : TEMPLATE.sas
3Purpose : PURPOSE OF THE MACRO
4SAS Version : SAS VERSION WHEN THE MACRO WAS ORIGINALLY WRITTEN
5Input Data : N/A
6Output Data : N/A
7 
8Macros Called : LIST ANY UTILITY MACROS CALLED BY THIS MACRO
9 SO THEY CAN BE ADDED TO THE SASAUTOS LIBRARY AS WELL
10 
11Originally Written by : YOUR FULL NAME (NOT INITIALS - MAKE IT EASY TO FIND YOU LATER)
12Date : TODAYs DATE IN DDMONYYYY FORMAT (INTERNATIONLALLY UNAMBIGUOUS DATE FORMAT)
13Program Version # : 1.0
14 
15=======================================================================
16 
17Copyright (c) 2016 Scott Bass (sas_l_739@yahoo.com.au)
18 
19This code is licensed under the Unlicense license.
20For more information, please refer to http://unlicense.org/UNLICENSE.
21 
22=======================================================================
23 
24Modification History : Original version
25 
26Programmer : YOUR FULL NAME
27Date : DDMONYYYY
28Change/reason : SUMMARY OF CODE CHANGE.
29 ADD COMMENTS IN THE CODE ITSELF
30 (INCLUDING NAME AND DATE) FOR ADDITIONAL DETAILS)
31Program Version # : 1.1
32 
33Programmer : YOUR FULL NAME
34Date : DDMONYYYY
35Change/reason : SUMMARY OF CODE CHANGE.
36 ADD COMMENTS IN THE CODE ITSELF
37 (INCLUDING NAME AND DATE) FOR ADDITIONAL DETAILS)
38Program Version # : 1.2
39 
40VERSION 1.0 (ORIGINAL VERSION):
41 LEAVE "Original version" TEXT IN PLACE
42 DELETE REVISION HISTORY
43 
44VERSION 1.1+ (MODIFIED VERSION):
45 DELETE THE "Original version" TEXT
46 ADD THE REVISION HISTORY PER ABOVE TEMPLATE
47 
48=====================================================================*/
49 
50/*---------------------------------------------------------------------
51Usage:
52 
53LIST MACRO USE CASE / UNIT TESTS HERE
54TRY TO USE UNIVERSALLY AVAILABLE SOURCE DATA IF POSSIBLE
55(EG. SASHELP DATASETS, C:\WINDOWS, /USR/LOCAL, ETC.)
56OR ELSE CREATE SIMPLE TEST DATA INLINE
57SO THE END USER CAN RUN THE USE CASE WITHOUT FURTHER SETUP OR EFFORT.
58IDEALLY THE TEST CASES RUN BY HIGHLIGHTING THE TEXT IN THE SAS EDITOR
59AND HITTING F3
60 
61=======================================================================
62 
63ADDITIONAL USE CASE
64 
65=======================================================================
66 
67ADDITIONAL USE CASE
68 
69-----------------------------------------------------------------------
70Notes:
71 
72EXPLANATORY NOTES HERE, THAT EXPLAIN DESIGN DECISIONS OR
73GENERAL USAGE INFORMATION.
74 
75THESE ARE NOTES THAT GO BEYOND COMMENTS WITHIN THE MACRO CODE.
76 
77---------------------------------------------------------------------*/
78 
79%macro TEMPLATE
80/*---------------------------------------------------------------------
81PURPOSE OF THE MACRO (REDUNDANT BUT NICE TO HAVE HERE AS WELL)
82---------------------------------------------------------------------*/
83(PARM1 /* PARM1 EXPLANATION (REQ). */
84,PARM2=default /* PARM2 EXPLANATION (Opt). Default is "default" */
85);
86 
87%local macro parmerr _data_;
88%let macro = &sysmacroname;
89 
90%* check INPUT parameters ;
91%parmv(PARM1, _req=1,_words=1,_case=N) /* words allows ds options */
92%parmv(PARM2, _req=0,_words=0,_case=N)
93 
94%IF (&parmerr) %THEN %goto QUIT;
95 
96%* additional error checking ;
97%IF (&parm1 eq FOO and %superq(parm2) eq BAR) %THEN %DO;
98 %parmv(_msg=These two values are mutually exclusive)
99 %goto %QUIT;
100%END;
101 
102%* well commented macro code goes here ;
103 
104%* Use %* or /* */ comment style for comments that DO not show in MPRINT OUTPUT ;
105%* Use * comment style for comments that show in MPRINT OUTPUT ;
106 
107%QUIT:
108 
109%mend;
110 
111/******* END OF FILE *******/
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.
Informations de Copyright : Copyright (c) 2016 Scott Bass (sas_l_739@yahoo.com.au). Ce code est sous licence Unlicense. Pour plus d'informations, veuillez vous référer à http://unlicense.org/UNLICENSE.