Dieses Skript verwendet die MCMC-Prozedur, um eine bayesianische Analyse von Pumpenversagensdaten durchzuführen. Es vergleicht zwei Modellparametrisierungen (zentriert und nicht-zentriert), um Hyperparameter und zufällige Effekte zu schätzen. Der Code generiert die Daten intern und verwendet ODS Graphics für die Trace-Diagnose.
Datenanalyse
Type : CREATION_INTERNE
Die 'pump'-Daten werden direkt im Skript über einen Data Step mit DATALINES generiert.
1 Codeblock
DATA STEP Data
Erklärung : Erstellung des 'pump'-Datensatzes mit den Variablen y, t und group. Hinweis: Der Code enthält ein seltsames Artefakt (@code_sas_json...) in der INPUT-Anweisung, das ein Einfügefehler zu sein scheint, aber die Daten sind als Datalines vorhanden.
title 'Nonlinear Poisson Regression Random-Effects Model';
2
DATA pump;
3
INPUT y t group @code_sas_json/hsdua2304@gmail.com_SAS_Assignment_2.json;
4
pump = _n_;
5
logtstd = log(t) - 2.4564900;
6
DATALINES;
7
594.3201115.7202562.8801
8
14125.760135.24021931.4401
9
11.048211.048242.0962
10
2210.4802
11
;
2 Codeblock
PROC MCMC
Erklärung : Erste Ausführung von PROC MCMC zur Anpassung des bayesianischen Modells. Verwendet eine Inverse-Gamma-Prior-Verteilung für die Varianz und definiert multivariate (u) und univariate (e) normale zufällige Effekte.
Kopiert!
ods graphics on;
proc mcmc data=pump outpost=postout seed=248601 nmc=10000
plots=trace stats=none diag=none;
ods select tracepanel;
array u[2] alpha beta;
array mu[2] (0 0);
parms s2;
prior s2 ~ igamma(0.01, scale=0.01);
random u ~ MVNAR(mu, sd=1e6, rho=0) subject=group monitor=(u);
random e ~ normal(0, var=s2) subject=pump monitor=(random(1));
w = alpha + beta * logtstd;
lambda = exp(w+e);
model y ~ poisson(lambda);
run;
random u ~ MVNAR(mu, sd=1e6, rho=0) subject=group monitor=(u);
10
random e ~ normal(0, var=s2) subject=pump monitor=(random(1));
11
w = alpha + beta * logtstd;
12
lambda = exp(w+e);
13
model y ~ poisson(lambda);
14
RUN;
3 Codeblock
PROC MCMC
Erklärung : Zweite Ausführung von PROC MCMC mit einer anderen Parametrisierung (hierarchisches Modell, zentriert auf die latente Variable 'llambda') zur Verbesserung der Konvergenz oder der Sampling-Effizienz.
Kopiert!
proc mcmc data=pump outpost=postout_c seed=248601 nmc=10000
plots=trace diag=none;
ods select tracepanel postsumint;
array u[2] alpha beta;
array mu[2] (0 0);
parms s2 1;
prior s2 ~ igamma(0.01, scale=0.01);
random u ~ MVNAR(mu, sd=1e6, rho=0) subject=group monitor=(u);
w = alpha + beta * logtstd;
random llambda ~ normal(w, var = s2) subject=pump monitor=(random(1));
lambda = exp(llambda);
model y ~ poisson(lambda);
run;
random u ~ MVNAR(mu, sd=1e6, rho=0) subject=group monitor=(u);
9
w = alpha + beta * logtstd;
10
random llambda ~ normal(w, var = s2) subject=pump monitor=(random(1));
11
lambda = exp(llambda);
12
model y ~ poisson(lambda);
13
RUN;
4 Codeblock
MACRO CALL
Erklärung : Aufruf eines Dienstprogrammakros '%CATER' (wahrscheinlich zur Visualisierung von Raupenplots der Zufallseffekte) und Beenden der ODS-Grafiken.
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, PRODUCT: STAT
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.