Я использую следующую очень простую модель Stan, сохраненную как model.stan
,
data {
int<lower=1> J;
real x[J];
}
parameters {
real mu[J];
real<lower=0> sigma[J];
}
model {
sigma ~ inv_gamma(1, 1);
mu ~ normal(0, 10);
x ~ normal(mu, sigma);
}
В этой модели у меня есть единственная точка данных x[j]
, которую я моделирую исходя из J
различных нормальных распределений.
Когда J> 1, следующий код R работает отлично:
library(rstan)
model <- stan_model('~/model.stan')
data <- list(J = J, x = runif(J))
stan.fit <- rstan::sampling(model, data=data)
Однако, когда J = 1, я получаю следующую ошибку:
failed to create the sampler; sampling not done
Как я могу написать эту модель Стэна, чтобы она работала для всех J> = 1?