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?

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...


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.