Parameter tanpa prior prior dalam Stan

14

Saya baru mulai belajar menggunakan Stan dan rstan. Kecuali saya selalu bingung tentang cara kerja JAGS / BUGS, saya pikir Anda selalu harus mendefinisikan distribusi jenis sebelumnya untuk setiap parameter dalam model yang akan diambil. Tampaknya Anda tidak harus melakukan ini di Stan berdasarkan pada dokumentasinya. Berikut contoh model yang mereka berikan di sini .

data {
  int<lower=0> J; // number of schools 
  real y[J]; // estimated treatment effects
  real<lower=0> sigma[J]; // s.e. of effect estimates 
} 
parameters {
  real theta[J]; 
  real mu; 
  real<lower=0> tau; 
} 
model {
  theta ~ normal(mu, tau); 
  y ~ normal(theta, sigma);
} 

Prior mujuga tautidak ditentukan. Dalam mengonversi beberapa model JAGS saya ke Stan, saya telah menemukan bahwa mereka berfungsi jika saya meninggalkan banyak, atau sebagian besar, parameter dengan prior yang tidak ditentukan.

Masalahnya adalah bahwa saya tidak mengerti apa yang dilakukan Stan ketika saya memiliki parameter tanpa prior yang ditentukan. Apakah default ke sesuatu seperti distribusi seragam? Apakah ini salah satu properti khusus dari HMC, yang tidak memerlukan penentuan sebelumnya untuk setiap parameter?

JoFrhwld
sumber

Jawaban:

18

Dari (versi sebelumnya) manual referensi Stan:

Tidak menentukan prior adalah sama dengan menentukan prior.

Sebelumnya seragam hanya tepat jika parameter dibatasi [...]

Priors yang tidak tepat juga diizinkan dalam program Stan; mereka muncul dari parameter yang tidak dibatasi tanpa pernyataan sampel. Dalam beberapa kasus, prior yang tidak tepat dapat menyebabkan posterior yang tepat, tetapi terserah kepada pengguna untuk menjamin bahwa kendala pada parameter atau data memastikan kepatutan posterior.

(Lihat juga bagian C.3 di versi 1.0.1 ).

Alasan yang mendasari ini baik-baik saja di Stan tetapi tidak dalam BUGS mungkin ada hubungannya dengan fakta bahwa dalam BUGS, "program" model Anda menentukan model grafis formal, sedangkan di Stan Anda menulis fungsi kecil untuk menghitung probabilitas gabungan fungsi kepadatan. Tidak menentukan sebelum yang tepat untuk semua variabel mungkin mengacaukan sifat formal yang bagus dari model grafis.

Namun, untuk Hamiltonian MC Anda hanya perlu (secara numerik) menghitung fungsi kerapatan sambungan. Sebuah flat (bahkan tidak tepat) sebelumnya hanya menyumbang suku konstan untuk kepadatan, dan selama posterior itu tepat (massa probabilitas total terbatas) —yang akan dengan fungsi kemungkinan masuk akal apa pun — dapat diabaikan sepenuhnya di HMC skema.

Dave Kleinschmidt
sumber
8

Dari referensi Stan v1.0.2 (hal 6, catatan kaki 1)

Jika tidak ada prior yang ditentukan dalam blok model, kendala pada theta memastikan itu jatuh antara 0 dan 1, memberikan theta sebagai seragam implisit sebelumnya. Untuk parameter tanpa dukungan yang ditentukan sebelumnya dan tidak terikat, hasilnya adalah sebelumnya tidak tepat. Stan menerima prior yang tidak patut, tetapi posisi harus tepat agar pengambilan sampel berhasil.

Keduanya mudan sigmamemiliki prior seragam yang tidak tepat.

Di bawah tenda, mudan sigmadiperlakukan secara berbeda. sigmadidefinisikan dengan batas bawah; Sampel Stan dari log(sigma)(dengan penyesuaian Jacobian untuk transformasi). Untuk detail lebih lanjut tentang transformasi, lihat Bab 27 (hal 153).

syclik
sumber
Jadi saya jelas tentang ini, jika sampel STAN pada tingkat log (sigma), flat sebelumnya masih lebih dari sigma dan bukan lebih dari log (sigma)?
Rasmus Bååth
1
Ya, seragam sebelumnya masih berakhir sigma, belum log(sigma). Stan menyelesaikan ini dengan mengubah parameter dan menerapkan perubahan penyesuaian variabel yang benar dengan menggunakan Jacobian.
syclik