Publicado el :
Estadística CREATION_INTERNE

Análisis de Supervivencia de Tumores Gastrointestinales

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza creando dos conjuntos de datos, 'renyi1' y 'renyi2', a partir de datos brutos integrados (declaración CARDS). Cada conjunto de datos contiene información sobre los días de supervivencia y el estado de censura. Luego se agrega una variable 'group' a cada conjunto de datos para identificar los grupos de tratamiento (1 para quimioterapia, 2 para quimioterapia + radioterapia). Los dos conjuntos de datos se combinan luego en uno solo, 'renyi'. Se utiliza una PROC PRINT para mostrar el contenido del conjunto de datos combinado. Finalmente, se ejecuta PROC LIFETEST para realizar el análisis de supervivencia, comparando las curvas de supervivencia de los dos grupos y generando gráficos.
Análisis de datos

Type : CREATION_INTERNE


Los datos de origen ('renyi1' y 'renyi2') se crean completamente internamente en el script SAS utilizando declaraciones DATA y CARDS. Representan datos de supervivencia con un identificador, el número de días de supervivencia y un indicador de censura.

1 Bloque de código
DATA STEP Data
Explicación :
Este bloque DATA STEP crea el conjunto de datos 'renyi1' leyendo datos brutos integrados a través de una declaración CARDS. Contiene un identificador (id), los días de supervivencia (days) y un indicador de censura (censor). La parte ' @code_sas/@TEMPLATE.sas' en la instrucción INPUT parece ser un error de sintaxis o un remanente de una intención de incluir datos o variables adicionales de una manera no estándar, pero se ignora al leer los datos a través de CARDS.
¡Copiado!
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 Bloque de código
DATA STEP
Explicación :
Este bloque DATA STEP modifica el conjunto de datos 'renyi1' existente añadiéndole una nueva variable 'group' cuyo valor se fija en 1 para todos los registros. Esto identifica el primer grupo de tratamiento (quimioterapia).
¡Copiado!
1DATA renyi1; SET renyi1; group=1;
3 Bloque de código
DATA STEP Data
Explicación :
Similar al primer bloque, este DATA STEP crea el conjunto de datos 'renyi2' a partir de datos brutos integrados. También contiene un identificador, los días de supervivencia y un indicador de censura para el segundo grupo de tratamiento. La misma observación sobre la instrucción INPUT se aplica aquí.
¡Copiado!
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 Bloque de código
DATA STEP
Explicación :
Este bloque DATA STEP añade la variable 'group' con el valor 2 a todos los registros del conjunto de datos 'renyi2', identificando así el segundo grupo de tratamiento (quimioterapia + radioterapia).
¡Copiado!
1DATA renyi2; SET renyi2; group=2;
5 Bloque de código
DATA STEP Data
Explicación :
Este DATA STEP combina (concatena) los conjuntos de datos 'renyi1' y 'renyi2' en un nuevo conjunto de datos llamado 'renyi'. Esto prepara los datos para el análisis comparativo de supervivencia.
¡Copiado!
1DATA renyi; SET renyi1 renyi2;
6 Bloque de código
PROC PRINT
Explicación :
Esta PROC PRINT muestra el contenido del conjunto de datos 'renyi' en la ventana de salida, permitiendo una verificación rápida de los datos combinados.
¡Copiado!
1PROC PRINT;
7 Bloque de código
PROC LIFETEST
Explicación :
Esta PROC LIFETEST realiza el análisis de supervivencia. Utiliza el método no paramétrico LIFE para estimar la función de supervivencia. Las opciones 'plots=(s,h)' solicitan la generación de curvas de supervivencia y de función de riesgo acumulado. La instrucción 'time days*censor(1)' especifica que 'days' es la variable de tiempo y 'censor' es la variable de evento, donde '1' indica un evento (muerte). La instrucción 'strata group' solicita un análisis de supervivencia separado para cada nivel de la variable 'group', permitiendo una comparación entre los grupos de tratamiento. Las instrucciones SYMBOL personalizan la apariencia de las curvas en los gráficos.
¡Copiado!
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 Bloque de código
MACRO DEFINITION
Explicación :
Este bloque de código define una macro SAS llamada 'TEMPLATE'. Es una plantilla para la creación de nuevas macros, que incluye secciones para la documentación, el historial de modificaciones, el uso, las notas, los parámetros y la gestión de errores. Aunque presente en los archivos referenciados, esta macro no es llamada ni ejecutada por el script SAS principal, sirviendo únicamente como definición o plantilla.
¡Copiado!
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 *******/
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.
Información de copyright : Copyright (c) 2016 Scott Bass (sas_l_739 @yahoo.com.au). Este código está bajo licencia Unlicense. Para más información, consulte http://unlicense.org/UNLICENSE.