Apakah stan (khususnya, rstan) memiliki fasilitas bawaan untuk menghasilkan distribusi posterior prediktif?
Tidak sulit untuk menghasilkan distribusi dari stan fit, tetapi saya lebih suka tidak menemukan kembali roda.
Apakah stan (khususnya, rstan) memiliki fasilitas bawaan untuk menghasilkan distribusi posterior prediktif?
Tidak sulit untuk menghasilkan distribusi dari stan fit, tetapi saya lebih suka tidak menemukan kembali roda.
Jawaban:
Menurut panduan Pengguna Stan v2.2.0 (halaman 361–362 ):
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.
Saya biasanya menggunakan yang terakhir.
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_tilde
Anda mungkin dapat melakukannya tanpa semuanya. Untuk kumpulan data besar, solusi di atas jelas terlalu intensif-ruang.