Como traçar distribuições anteriores em Stan?

10

Tentei executar um modelo Stan sem dados para obter gráficos para as distribuições anteriores. No entanto, isso não parece ser possível, recebo uma mensagem de erro sobre o meu modelo que não contém amostras. Então, existe uma maneira de obter as distribuições anteriores? Talvez seja possível executar o Stan sem o amostrador?

Jens Kouros
fonte

Respostas:

7

Como minha resposta anterior foi excluída, aqui está uma mais explícita, com um exemplo usando uma amostra simples da anterior:

library(rstan)

model = "
parameters {
  real p;
}
model {
  p ~ normal(1,3);
}
"

fit = stan(model_code = model, 
           pars = c('p'),
           control=list(adapt_delta=0.99, max_treedepth=10),
           iter = 5000, chains = 1, 
           warmup = 1000, verbose=FALSE)

print(fit)

com saída:

Inference for Stan model: a067aa7e9d60dcf5fa2c08c3db339374.
1 chains, each with iter=5000; warmup=1000; thin=1; 
post-warmup draws per chain=4000, total post-warmup draws=4000.

      mean se_mean  sd  2.5%   25%   50%   75% 97.5% n_eff Rhat
p     1.02    0.07 3.0 -4.84 -1.02  1.01  3.07  6.83  1607    1
lp__ -0.50    0.02 0.7 -2.47 -0.66 -0.23 -0.05  0.00  1346    1

Espero que isto ajude...

Pascal
fonte
Uma coisa que eu adicionei para visualizar a distribuição foi p <- extract (fit, "p") $ p seguido de um hist (p). Também configurei o parâmetro de aquecimento como zero porque não achei necessário aqui.
precisa saber é o seguinte