Veröffentlicht am :
Statistik CREATION_INTERNE

Überlebensanalyse gastrointestinaler Tumoren

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Der Skript beginnt mit der Erstellung von zwei Datensätzen, 'renyi1' und 'renyi2', aus eingebetteten Rohdaten (CARDS-Anweisung). Jeder Datensatz enthält Informationen über Überlebenstage und Zensurstatus. Anschließend wird jedem Datensatz eine Variable 'group' hinzugefügt, um die Behandlungsgruppen zu identifizieren (1 für Chemotherapie, 2 für Chemotherapie + Strahlentherapie). Die beiden Datensätze werden dann zu einem einzigen, 'renyi', zusammengeführt. Eine PROC PRINT wird verwendet, um den Inhalt des kombinierten Datensatzes anzuzeigen. Schließlich wird PROC LIFETEST ausgeführt, um die Überlebensanalyse durchzuführen, die Überlebenskurven der beiden Gruppen zu vergleichen und Grafiken zu erstellen.
Datenanalyse

Type : CREATION_INTERNE


Die Quelldaten ('renyi1' und 'renyi2') werden vollständig intern im SAS-Skript mithilfe von DATA- und CARDS-Anweisungen erstellt. Sie stellen Überlebensdaten mit einer Kennung, der Anzahl der Überlebenstage und einem Zensierungsindikator dar.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block erstellt den Datensatz 'renyi1', indem er eingebettete Rohdaten über eine CARDS-Anweisung liest. Er enthält eine Kennung (id), Überlebenstage (days) und einen Zensierungsindikator (censor). Der Teil ' @code_sas/@TEMPLATE.sas' in der INPUT-Anweisung scheint ein Syntaxfehler oder ein Überbleibsel einer Absicht zu sein, zusätzliche Daten oder Variablen auf unübliche Weise einzuschließen, wird aber beim Lesen der Daten über CARDS ignoriert.
Kopiert!
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 Codeblock
DATA STEP
Erklärung :
Dieser DATA STEP-Block ändert den bestehenden Datensatz 'renyi1', indem er eine neue Variable 'group' hinzufügt, deren Wert für alle Datensätze auf 1 gesetzt ist. Dies kennzeichnet die erste Behandlungsgruppe (Chemotherapie).
Kopiert!
1DATA renyi1; SET renyi1; group=1;
3 Codeblock
DATA STEP Data
Erklärung :
Ähnlich dem ersten Block erstellt dieser DATA STEP den Datensatz 'renyi2' aus eingebetteten Rohdaten. Er enthält ebenfalls eine ID, Überlebenstage und einen Zensierungsindikator für die zweite Behandlungsgruppe. Die gleiche Anmerkung bezüglich der INPUT-Anweisung gilt hier.
Kopiert!
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 Codeblock
DATA STEP
Erklärung :
Dieser DATA STEP Block fügt allen Datensätzen des Datensatzes 'renyi2' die Variable 'group' mit dem Wert 2 hinzu und identifiziert somit die zweite Behandlungsgruppe (Chemotherapie + Strahlentherapie).
Kopiert!
1DATA renyi2; SET renyi2; group=2;
5 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP kombiniert (verkettet) die Datensätze 'renyi1' und 'renyi2' zu einem neuen Datensatz namens 'renyi'. Dies bereitet die Daten für die vergleichende Überlebenszeitanalyse vor.
Kopiert!
1DATA renyi; SET renyi1 renyi2;
6 Codeblock
PROC PRINT
Erklärung :
Diese PROC PRINT zeigt den Inhalt des Datensatzes 'renyi' im Ausgabefenster an, was eine schnelle Überprüfung der kombinierten Daten ermöglicht.
Kopiert!
1PROC PRINT;
7 Codeblock
PROC LIFETEST
Erklärung :
Diese PROC LIFETEST führt eine Überlebenszeitanalyse durch. Sie verwendet die nicht-parametrische LIFE-Methode zur Schätzung der Überlebensfunktion. Die Optionen 'plots=(s,h)' fordern die Erstellung von Überlebenskurven und kumulativen Hazardfunktionen an. Die Anweisung 'time days*censor(1)' spezifiziert, dass 'days' die Zeitvariable und 'censor' die Ereignisvariable ist, wobei '1' ein Ereignis (Tod) anzeigt. Die Anweisung 'strata group' fordert eine separate Überlebenszeitanalyse für jede Stufe der Variable 'group' an, was einen Vergleich zwischen den Behandlungsgruppen ermöglicht. Die SYMBOL-Anweisungen passen das Erscheinungsbild der Kurven in den Diagrammen an.
Kopiert!
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 Codeblock
MACRO DEFINITION
Erklärung :
Dieser Codeblock definiert ein SAS-Makro namens 'TEMPLATE'. Es ist eine Vorlage für die Erstellung neuer Makros, die Abschnitte für Dokumentation, Änderungsverlauf, Verwendung, Hinweise, Parameter und Fehlerbehandlung enthält. Obwohl in den referenzierten Dateien vorhanden, wird dieses Makro vom Haupt-SAS-Skript nicht aufgerufen oder ausgeführt, sondern dient lediglich als Definition oder Modell.
Kopiert!
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 *******/
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright (c) 2016 Scott Bass (sas_l_739 @yahoo.com.au). Dieser Code steht unter der Unlicense-Lizenz. Weitere Informationen finden Sie unter http://unlicense.org/UNLICENSE.