Getting Started Example 2 for PROC MCMC
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: MCMCGS2 */
/* TITLE: Getting Started Example 2 for PROC MCMC */
/* PRODUCT: STAT */
/* SYSTEM: ALL */
/* KEYS: Behrens-Fisher problem */
/* PROCS: MCMC */
/* DATA: */
/* */
/* SUPPORT: Fang Chen */
/* REF: PROC MCMC, GETTING STARTED EXAMPLE 2 */
/* MISC: */
/****************************************************************/
title 'The Behrens-Fisher Problem';
data behrens;
input y ind @@;
datalines;
121 1 94 1 119 1 122 1 142 1 168 1 116 1
172 1 155 1 107 1 180 1 119 1 157 1 101 1
145 1 148 1 120 1 147 1 125 1 126 2 125 2
130 2 130 2 122 2 118 2 118 2 111 2 123 2
126 2 127 2 111 2 112 2 121 2
;
proc mcmc data=behrens outpost=postout seed=123
nmc=40000 thin=10 monitor=(_parms_ mudif)
statistics(alpha=0.01)=(summary interval);
ods select PostSummaries PostIntervals;
parm mu1 0 mu2 0;
parm sig21 1;
parm sig22 1;
prior mu: ~ general(0);
prior sig21 ~ general(-log(sig21), lower=0);
prior sig22 ~ general(-log(sig22), lower=0);
mudif = mu1 - mu2;
if ind = 1 then do;
mu = mu1;
s2 = sig21;
end;
else do;
mu = mu2;
s2 = sig22;
end;
model y ~ normal(mu, var=s2);
run;
proc format;
value diffmt low-0 = 'mu1 - mu2 <= 0' 0<-high = 'mu1 - mu2 > 0';
run;
proc freq data = postout;
tables mudif /nocum;
format mudif diffmt.;
run;