*Bayesian Analysis Module III examples: *1) Simple Linear Regression; *https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_mcmc_sect004.htm; *https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_mcmc_sect043.htm; *Get data; DATA Class; input Name $ Height Weight @@; datalines; Alfred 69.0 112.5 Alice 56.5 84.0 Barbara 65.3 98.0 Carol 62.8 102.5 Henry 63.5 102.5 James 57.3 83.0 Jane 59.8 84.5 Janet 62.5 112.5 Jeffrey 62.5 84.0 John 59.0 99.5 Joyce 51.3 50.5 Judy 64.3 90.0 Louise 56.3 77.0 Mary 66.5 112.0 Philip 72.0 150.0 Robert 64.8 128.0 Ronald 67.0 133.0 Thomas 57.5 85.0 William 66.5 112.0 ; PROC PRINT data=Class; DATA a; *View priors; PROC MCMC data=a stats=none diag=none nmc=10000 outpost=gout plots=density seed=1; parms beta0 0 beta1 0; parms sigma2 1; prior beta0 beta1 ~ normal(mean = 0, var = 1e6); prior sigma2 ~ igamma(shape = 3/10, scale = 10/3); model general(0); *Run Analysis; PROC MCMC data=class outpost=classout nmc=50000 thin=5 seed=246810; parms beta0 0 beta1 0; parms sigma2 1; prior beta0 beta1 ~ normal(mean = 0, var = 1e6); prior sigma2 ~ igamma(shape = 3/10, scale = 10/3); mu = beta0 + beta1*height; model weight ~ normal(mu, var = sigma2); *Plot Results; PROC SGPLOT data=Class noautolegend; scatter x=height y=weight; lineparm x=0 y=-142.7 slope=3.89/ lineattrs=(thickness=2); yaxis min=50 max=150; xaxis min=45 max=75; *=================================================================================================================; *2) Mixed-Effects Model; *https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_mcmc_sect006.htm; *Get data; DATA heights; input family g$ height @@; datalines; 1 F 67 1 F 66 1 F 64 1 M 71 1 M 72 2 F 63 2 F 63 2 F 67 2 M 69 2 M 68 2 M 70 3 F 63 3 M 64 4 F 67 4 F 66 4 M 67 4 M 67 4 M 69 ; DATA input; set heights; if g eq 'F' then gender = 1; else gender = 0; drop g; PROC PRINT data=input; *View priors; PROC MCMC data=a stats=none diag=none nmc=10000 outpost=gout plots=density seed=1; array gamma[4]; parms b0 0 b1 0 gamma: 0; parms s2 1 ; parms s2g 1; prior b: ~ normal(0, var = 10000); prior gamma: ~ normal(0, var = s2g); prior s2: ~ igamma(0.001, scale = 1000); model general(0); *Run Analysis; PROC MCMC data=input outpost=postout thin=10 nmc=50000 seed=7893 monitor=(b0 b1); array gamma[4]; parms b0 0 b1 0 gamma: 0; parms s2 1 ; parms s2g 1; prior b: ~ normal(0, var = 10000); prior gamma: ~ normal(0, var = s2g); prior s2: ~ igamma(0.001, scale = 1000); mu = b0 + b1 * gender + gamma[family]; model height ~ normal(mu, var = s2); *Plot Results; *N/A; *=================================================================================================================; *3) Generalized Linear Models: Logistic Regression; *https://support.sas.com/documentation/cdl/en/statug/63033/HTML/default/viewer.htm#statug_mcmc_sect045.htm; *Get data; DATA beetles; input n y x @@; datalines; 6 0 25.7 8 2 35.9 5 2 32.9 7 7 50.4 6 0 28.3 7 2 32.3 5 1 33.2 8 3 40.9 6 0 36.5 6 1 36.5 6 6 49.6 6 3 39.8 6 4 43.6 6 1 34.1 7 1 37.4 8 2 35.2 6 6 51.3 5 3 42.5 7 0 31.3 3 2 40.6 ; PROC PRINT data=beetles; *View priors; PROC MCMC data=a stats=none diag=none nmc=10000 outpost=gout plots=density seed=1; parms (alpha beta) 0; prior alpha beta ~ normal(0, var = 10000); model general(0); *Run Analysis; PROC MCMC data=beetles ntu=1000 nmc=20000 nthin=2 propcov=quanew diag=(mcse ess) outpost=beetleout seed=246810; parms (alpha beta) 0; prior alpha beta ~ normal(0, var = 10000); p = logistic(alpha + beta*x); model y ~ binomial(n,p); *Plot Results; *N/A; *Plotting resources; *https://www.lexjansen.com/pharmasug/2007/sp/SP07.pdf;