/*-----------------------------------------------------------------
S A S S A M P L E L I B R A R Y
NAME: MCMCEX17
TITLE: Documentation Example 17 for PROC MCMC
Normal Regression with Interval Censoring
PRODUCT: STAT
SYSTEM: ALL
KEYS:
PROCS: MCMC
DATA:
SUPPORT: Fang Chen
REF: PROC MCMC, EXAMPLE 17
MISC:
-----------------------------------------------------------------*/
title 'Normal Regression with Interval Censoring';
data cosmetic;
t = .;
label tl = 'Time to Event (Months)';
input tl tr @@;
datalines;
45 . 6 10 . 7 46 . 46 . 7 16 17 . 7 14
37 44 . 8 4 11 15 . 11 15 22 . 46 . 46 .
25 37 46 . 26 40 46 . 27 34 36 44 46 . 36 48
37 . 40 . 17 25 46 . 11 18 38 . 5 12 37 .
. 5 18 . 24 . 36 . 5 11 19 35 17 25 24 .
32 . 33 . 19 26 37 . 34 . 36 .
;
proc mcmc data=cosmetic outpost=postout seed=1 nmc=20000 missing=AC;
ods select PostSumInt;
parms mu 60 sigma 50;
prior mu ~ normal(0, sd=1000);
prior sigma ~ gamma(shape=0.001,iscale=0.001);
if (tl^=. and tr^=. and tl=tr) then
llike = logpdf('normal',tr,mu,sigma);
else if (tl^=. and tr=.) then
llike = logsdf('normal',tl,mu,sigma);
else if (tl=. and tr^=.) then
llike = logcdf('normal',tr,mu,sigma);
else
llike = log(sdf('normal',tl,mu,sigma) -
sdf('normal',tr,mu,sigma));
model general(llike);
run;
proc mcmc data=cosmetic outpost=postout seed=117207154
nmc=20000 missing=ACMODELY;
ods select none;
parms mu 60 sigma 50;
prior mu ~ normal(0, sd=1000);
prior sigma ~ gamma(shape=0.001,iscale=0.001);
model t ~ normal(mu, sd=sigma, clower=tl, cupper=tr);
run;