Hello,
It seems dirichlet distributions are not allowed for the random statement in Proc MCMC, so I used gamma distributions instead.
Proc MCMC Data=mydata;
array delta[3] delta1 delta2 delta3;
array p[3] p1 p2 p3;
model .........
random delta1 ~ gamma(0.1, iscale=0.1) subject = ID ;
random delta2 ~ gamma(0.1, iscale=0.1) subject = ID ;
random delta3 ~ gamma(0.1, iscale=0.1) subject = ID ;
p1 = delta1/sum(delta1, delta2, delta3);
p2 = delta2/sum(delta1, delta2, delta3);
p3 = 1 - p1 - p2;
Run;I expected that every ID should have its own post-distribution/summary of p, but SAS just generated a summary of p for the whole group.
I could compute the p from the results of delta for each ID afterward. But is it possible to obtain p directly from Proc MCMC?
Thanks.
Did you try BY group processing?
BY ID;
would be my first approach if I needed output for each level of ID.
Thanks.
Yes. I thought about using BY at first, but I immediately realized that ALL of the parameters would be estimated by ID, which is not necessary.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.