มีคนถามมาว่าจะรันสุ่มเลขจาก distribution แบบไม่ต้องมีพารามิเตอร์หรือใส่ค่าให้พารามิเตอร์ให้กับ distribution ไปเลยทำยังไงใน Stan
ตัวอย่างcodeนะครับ
### test.stan ##
data {
real a;
real b;
real ab;
real bb;
}
generated quantities{
real gm;
real bt;
gm = gamma_rng(a,1/b);
bt = beta_rng(ab,bb);
}
### run the stan code in R
library(cmdstanr)
library(bayesplot)
library(patchwork)
# the parameters of the distributions are given as the data
data_list <- list(a=1.5,b=0.001,ab=15,bb=1)
#compile the model
mod <- cmdstan_model(test.stan)
#do the sampling
fit <- mod$sample(data = data_list,chains = 1,fixed_param = T)
# draw the histograms
mcmc_hist(fit$draws(c("gm","bt")))