Veröffentlicht am :
Statistik CREATION_INTERNE

Normalregression mit Intervallzensierung

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript analysiert einen Datensatz, der potenziell intervallzensierte Ereigniszeiten (tl und tr) simuliert. Es stellt zwei Ansätze zur Modellierung der Intervallzensierung mit PROC MCMC vor: einen manuellen Ansatz, der eine benutzerdefinierte Likelihood-Funktion (llike) basierend auf den Funktionen logpdf, logsdf und logcdf definiert, und einen prägnanteren Ansatz, der die MODEL-Anweisung mit den Optionen CLOWER und CUPPER verwendet, um die Grenzen des Zensierungsintervalls direkt anzugeben. Beide Ansätze schätzen die gleichen Parameter mu und sigma.
Datenanalyse

Type : CREATION_INTERNE


Der Datensatz 'cosmetic' wird intern über eine DATALINES-Anweisung erstellt. Er enthält die Variablen 'tl' (untere Ereigniszeit) und 'tr' (obere Ereigniszeit), die die Zensierungsintervalle definieren. Ein Punkt ('.') zeigt einen fehlenden Wert für die linke oder rechte Zensierung an. Die Variable 't' wird als fehlend initialisiert.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA-Block erstellt den Datensatz 'cosmetic' aus den bereitgestellten Datenzeilen (DATALINES). Die Variablen 'tl' (untere Zeit) und 'tr' (obere Zeit) werden gelesen. Die Variable 't' wird als fehlend initialisiert. Labels werden für 'tl' definiert. Es ist zu beachten, dass der Teil ' @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json' der INPUT-Anweisung in diesem Kontext syntaktisch inkorrekt ist und nicht an der Datenlesung teilnimmt, die ausschließlich aus den DATALINES stammt.
Kopiert!
1title 'Normal Regression with Interval Censoring';
2DATA cosmetic;
3 t = .;
4 label tl = 'Time to Event (Months)';
5 INPUT tl tr @code_sas_json/8_SAS_Intro_ReadFile_MultiCol_@@.json;
6 DATALINES;
745 . 6 10 . 7 46 . 46 . 7 16 17 . 7 14
837 44 . 8 4 11 15 . 11 15 22 . 46 . 46 .
925 37 46 . 26 40 46 . 27 34 36 44 46 . 36 48
1037 . 40 . 17 25 46 . 11 18 38 . 5 12 37 .
11 . 5 18 . 24 . 36 . 5 11 19 35 17 25 24 .
1232 . 33 . 19 26 37 . 34 . 36 .
13;
14 
2 Codeblock
PROC MCMC
Erklärung :
Dieser erste PROC MCMC-Block führt eine Bayes'sche Inferenz für ein Normalregressionsmodell mit Intervallzensierung durch. Er verwendet eine benutzerdefinierte Likelihood-Funktion ('llike'), um die verschiedenen Arten der Zensierung (Links-, Rechts-, Intervallzensierung und unzensierte Beobachtungen) zu behandeln. Die Parameter 'mu' und 'sigma' werden mit nicht-informativen Priors definiert. Die Option MISSING=AC verwaltet fehlende Werte für die Kettenanalyse. Die ODS SELECT PostSumInt-Anweisung wählt die Ausgabetabelle aus, die die Zusammenfassungen und Kredibilitätsintervalle der Parameter enthält.
Kopiert!
1PROC MCMC DATA=cosmetic outpost=postout seed=1 nmc=20000 missing=AC;
2 ods select PostSumInt;
3 parms mu 60 sigma 50;
4 
5 prior mu ~ normal(0, sd=1000);
6 prior sigma ~ gamma(shape=0.001,iscale=0.001);
7 
8 IF (tl^=. and tr^=. and tl=tr) THEN
9 llike = logpdf('normal',tr,mu,sigma);
10 ELSE IF (tl^=. and tr=.) THEN
11 llike = logsdf('normal',tl,mu,sigma);
12 ELSE IF (tl=. and tr^=.) THEN
13 llike = logcdf('normal',tr,mu,sigma);
14 ELSE
15 llike = log(sdf('normal',tl,mu,sigma) -
16 sdf('normal',tr,mu,sigma));
17 
18 model general(llike);
19RUN;
3 Codeblock
PROC MCMC
Erklärung :
Dieser zweite PROC MCMC-Block führt dieselbe Bayes'sche Inferenz durch, jedoch auf eine vereinfachte Weise unter Verwendung der CLOWER- und CUPPER-Optionen der MODEL-Anweisung. Diese Optionen ermöglichen es, die unteren und oberen Grenzen des Zensierungsintervalls für die Variable 't' direkt anzugeben, wodurch die Implementierung der Likelihood im Vergleich zum manuellen Ansatz des vorherigen Blocks vereinfacht wird. Die Option MISSING=ACMODELY wird für fehlende Werte im Modell verwendet. ODS SELECT NONE unterdrückt alle Ausgaben dieser Prozedur.
Kopiert!
1PROC MCMC DATA=cosmetic outpost=postout seed=117207154
2 nmc=20000 missing=ACMODELY;
3 ods select none;
4 parms mu 60 sigma 50;
5 
6 prior mu ~ normal(0, sd=1000);
7 prior sigma ~ gamma(shape=0.001,iscale=0.001);
8 
9 model t ~ normal(mu, sd=sigma, clower=tl, cupper=tr);
10RUN;
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 : SAS Sample Library