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 lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.