Ada bagian jumlah yang dihasilkan pada akhir yang seharusnya dapat menangani simulasi, tetapi dokumentasi (pada ver. 1.3, tetapi ver. 2 harus segera keluar) tidak menjelaskan secara rinci bagaimana untuk mencapai ini. Anda mungkin mempertimbangkan untuk meminta milis.
Di Stan, simulasi posterior dapat dihasilkan dengan dua cara. Pendekatan pertama adalah memperlakukan variabel yang diprediksi sebagai parameter dan kemudian menentukan distribusinya dalam blok model. Pendekatan kedua, yang juga berfungsi untuk variabel diskrit, adalah menghasilkan data yang direplikasi menggunakan generator bilangan acak dalam blok kuantitas yang dihasilkan.
Berikut ini bukan jawaban yang menyeluruh, tapi mudah-mudahan ini lebih baik daripada tidak ada jawaban. Dalam aplikasi saya sendiri, saya menerapkan pemeriksaan prediktif posterior untuk memeriksa prediksi model untuk ukuran dependen tunggal yang telah dihasilkan dari model linier. Ini sederhana di JAGS, tetapi agak lebih buram di Stan.
data{
int<lower=1> N; // no. rows
real x[N]; // predictor
real y[N]; // dependent variable
}
parameters{
real alpha; // int.
real beta; // slope
real<lower=0> sigma_e; // resid. var.
real y_tilde[N]; // post. pred.
}
model{
real mu[N];
for(i in 1:N){
mu[i] <- alpha + beta*x[i];
}
y ~ normal(mu,sigma_e); //lik
y_tilde ~ normal(mu,sigma_e);
alpha ~ normal(0,5);
beta ~ normal(0,5);
sigma_e ~ cauchy(0,5);
}
generated quantities{
real minimum;
real maximum;
minimum <- min(y_tilde);
maximum <- max(y_tilde);
}
Pasti ada cara yang lebih baik untuk melakukan ini, jadi tolong kirimkan jawaban yang lebih baik. Tetapi kode di atas menghasilkan distribusi prediksi N posterior, satu untuk setiap pengamatan. Saya melakukan ini sehingga distribusi prediksi ekstrem dapat ditemukan, tetapi jika Anda hanya tertarik pada kuantitas prediksi posterior y_tildeAnda mungkin dapat melakukannya tanpa semuanya. Untuk kumpulan data besar, solusi di atas jelas terlalu intensif-ruang.
Jawaban:
Menurut panduan Pengguna Stan v2.2.0 (halaman 361–362 ):
Saya biasanya menggunakan yang terakhir.
sumber
Berikut ini bukan jawaban yang menyeluruh, tapi mudah-mudahan ini lebih baik daripada tidak ada jawaban. Dalam aplikasi saya sendiri, saya menerapkan pemeriksaan prediktif posterior untuk memeriksa prediksi model untuk ukuran dependen tunggal yang telah dihasilkan dari model linier. Ini sederhana di JAGS, tetapi agak lebih buram di Stan.
Pasti ada cara yang lebih baik untuk melakukan ini, jadi tolong kirimkan jawaban yang lebih baik. Tetapi kode di atas menghasilkan distribusi prediksi N posterior, satu untuk setiap pengamatan. Saya melakukan ini sehingga distribusi prediksi ekstrem dapat ditemukan, tetapi jika Anda hanya tertarik pada kuantitas prediksi posterior
y_tilde
Anda mungkin dapat melakukannya tanpa semuanya. Untuk kumpulan data besar, solusi di atas jelas terlalu intensif-ruang.sumber