我刚刚开始学习使用Stan和rstan
. 除非我一直对 JAGS/BUGS 的工作方式感到困惑,否则我认为您总是必须为要从中提取的模型中的每个参数定义某种先验分布。不过,根据它的文档,您似乎不必在 Stan 中执行此操作。这是他们在此处提供的示例模型。
data {
int<lower=0> J; // number of schools
real y[J]; // estimated treatment effects
real<lower=0> sigma[J]; // s.e. of effect estimates
}
parameters {
real theta[J];
real mu;
real<lower=0> tau;
}
model {
theta ~ normal(mu, tau);
y ~ normal(theta, sigma);
}
既没有mu
也tau
没有定义先验。在将我的一些 JAGS 模型转换为 Stan 时,我发现如果我留下许多或大多数未定义先验的参数,它们就可以工作。
问题是当我有没有定义先验的参数时,我不明白 Stan 在做什么。它是否默认为均匀分布?这是 HMC 的特殊属性之一,它不需要为每个参数定义先验吗?