Làm thế nào để âm mưu phân phối trước trong Stan?


10

Tôi đã cố chạy mô hình Stan mà không có dữ liệu để có được các sơ đồ cho các bản phân phối trước đó. Tuy nhiên, điều này dường như là không thể, tôi nhận được thông báo lỗi về mô hình của tôi không chứa các mẫu. Vì vậy, có cách nào để có được tại các bản phân phối trước? Có lẽ nào có thể chạy Stan mà không cần người lấy mẫu?

Câu trả lời:


7

Vì câu trả lời trước của tôi đã bị xóa, đây là một câu trả lời rõ ràng hơn, với một ví dụ sử dụng một mẫu đơn giản từ trước:

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)

với đầu ra:

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

Hi vọng điêu nay co ich...


Một điều tôi đã thêm vào để hình dung phân phối là p <- extract (fit, "p") $ p theo sau là một hist (p). Tôi cũng đặt tham số khởi động về 0 vì tôi không nghĩ nó cần thiết ở đây.
Ben Ogorek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.