Bagaimana orang Bayesian memverifikasi metode mereka menggunakan metode simulasi Monte Carlo?

11

Latar belakang : Saya memiliki gelar PhD dalam psikologi sosial, di mana statistik teoretis dan matematika nyaris tidak tercakup dalam kursus kuantitatif saya. Melalui sarjana dan pascasarjana, saya diajar (seperti banyak dari Anda juga dalam ilmu sosial, mungkin) melalui kerangka kerja kerap kali "klasik". Sekarang, saya juga suka R dan menggunakan metode simulasi untuk memverifikasi bahwa metode kerja membuat caralebih masuk akal bagi saya daripada bukti matematika (sekali lagi: latar belakang dalam ilmu sosial kuantitatif, bukan statistik teoritis). Metode Frequentist dan metode simulasi bersama membuat banyak akal bagi saya. Karena frequentist melihat probabilitas sebagai peluang jangka panjang (misalnya, jika saya melakukan ini dalam jumlah besar secara sewenang-wenang, dan itu terjadi 50% dari waktu, maka ada kemungkinan 50%). Kita dapat mensimulasikan jangka panjang ini dengan metode Monte Carlo!

Komplikasi : Sejak sarjana, saya sangat menyadari metode Bayesian, dan selalu ada orang dalam hidup saya yang memanggil saya ke pihak Bayesian, mengatakan bahwa hasilnya lebih mudah untuk ditafsirkan, bahwa kami mendapatkan probabilitas untuk hipotesis daripada data. diberikan hipotesis, dll. Saya benar-benar menyukai ini dan mengambil kelas Bayesian, membaca beberapa buku dan makalah Bayesian, dan sekarang saya cukup akrab dengan Stan dan paket-paket R yang terkait.

Masukkan Mayo : Setelah berpikir "Bayesian mungkin adalah jalan masa depan" untuk sementara waktu, saya membaca Kesimpulan Statistik Deborah Mayo sebagai Pengujian Berat . Dia bilang dia tidak memilih sisi di awal buku, tetapi dia melakukannya: Dia adalah seorang yang sering, dan banyak buku yang membela metodologi yang sering. Saya tidak ingin selalu berdiskusi tentang apakah kita berpikir cara dia melihat bukti itu valid, tetapi ini membuat saya berpikir: Apakah Bayes benar-benar semua yang diiklankan? Maksudku, kerumunan Bayes begitu retak sehingga saya bahkan tidak tahu cara "benar" untuk menganalisis data dalam kerangka Bayesian sering. Biasanya, saya hanya akan menggunakanrstanarmdan perkiraan titik saat ini dan interval yang kredibel ... yang sering kali sejalan dengan perkiraan frekuensi dan interval kepercayaan. Saya mungkin melakukan perbandingan model, tetapi saya selalu takut menggambarkan faktor Bayes sebagai perbandingan probabilitas posterior, dll.

Lebih Berpikir : Apa yang saya terus pikirkan dalam buku Mayo adalah: Ada cara kita dapat menggunakan komputer untuk memastikan metode frequentist kita bekerja, karena probabilitas adalah apa yang kita lihat dalam jangka panjang dan kita dapat mensimulasikannya. Bayesian bahkan tidak bisa menyetujui probabilitas apa yang sebenarnya, tampaknya, tergantung pada sekolah Bayesian (default, subyektif, dll.). Yang mengarahkan saya ke pertanyaan saya:

Pertanyaan : Bagaimana Bayesian memverifikasi bahwa metode mereka mendefinisikan ketidakpastian dengan benar (yaitu, menghitung interval kredibel yang valid dan distribusi posterior) menggunakan metode simulasi Monte Carlo, jika probabilitas tidak didefinisikan sebagai tingkat dalam jangka panjang?

Contoh : Saya membuat generator data. Ini hanya akan mensimulasikan dari distribusi Bernoulli dengan probabilitas 0,5:

set.seed(1839)
p <- .50
n <- 100
gen_dat <- function(n, p) {
  rbinom(n, 1, p)
}

Sekarang, katakanlah saya ingin memastikan bahwa interval kepercayaan dalam regresi logistik benar-benar valid. Saya dapat mensimulasikan regresi sejumlah besar kali dan memastikan bahwa nilai populasi aktual jatuh dalam interval kepercayaan 95% dari 95% waktu. Ini model pencegat saja, jadi saya hanya ingin memastikan bahwa saya memperkirakan pdengan benar:

set.seed(1839)
iter <- 10000
results <- sapply(seq_len(iter), function(zzz) {
  mod <- glm(gen_dat(n, p) ~ 1, binomial)
  conf <- suppressMessages(confint(mod))
  log(p / (1 - p)) < max(conf) & log(p / (1 - p)) > min(conf)
})
mean(results)

Ini membutuhkan waktu beberapa menit untuk berjalan, tetapi kami berakhir dengan mean(results)panggilan memberi kami 0.9416. Ini sekitar 95%, dan saya yakin mengatakan bahwa glmperintah itu menggambarkan ketidakpastian dengan cara yang valid. Saya yakin itu akan menjadi lebih dekat ke tepat di hidung pada 95% jika saya naik iterdan ingin menunggu di sini di laptop saya lagi.

Di sisi lain, mari kita paskan model Bayesian untuk hal yang sama:

library(rstanarm)
set.seed(1839)
dat <- data.frame(y = gen_dat(n, p))
stan_mod <- stan_glm(y ~ 1, binomial, dat)
summary(stan_mod)

Sebagian, ini memberi saya:

Estimates:
                mean   sd    2.5%   25%   50%   75%   97.5%
(Intercept)    -0.1    0.2  -0.5   -0.2  -0.1   0.0   0.3  
mean_PPD        0.5    0.1   0.3    0.4   0.5   0.5   0.6  
log-posterior -73.0    0.7 -75.1  -73.1 -72.7 -72.5 -72.5  

Karena orang Bayesia tidak mendefinisikan probabilitas sebagai apa yang kita lihat dalam jangka panjang, bagaimana saya bisa menggunakan metode simulasi untuk memverifikasi daripada stan_glmsecara akurat menangkap ketidakpastian? Yaitu, bagaimana saya bisa percaya bahwa interval yang kredibel ini valid, menggunakan metode simulasi? Dan saat ini, saya bahkan tidak mendefinisikan prior — bagaimana dimasukkannya prior ke dalam permainan di sini, karena itu akan mempengaruhi ukuran ketidakpastian kita?

Ketika saya mencoba untuk menulis regresi beta dengan komponen model rintangan di Stan dari awal sekali, saya mempunyai seseorang yang merekomendasikan kepada saya: "Simulasikan data. Lakukan beberapa kali, dan perkiraan sebenarnya harus dalam interval kredibel sekitar 95 % dari waktu. " Tetapi bagi saya, itu bertentangan dengan hal yang diyakini orang Bayesian! Itu bergantung pada pemahaman yang sering tentang kemungkinan! Jadi bagaimana seorang Bayesian meyakinkan saya bahwa interval kredibel yang saya dapatkan dari summary()panggilan ke model saya secara akurat menggambarkan ketidakpastian, menggunakan metode simulasi?

Tujuan Pertanyaan : Ini adalah contoh sepele, tetapi banyak kali klien memberi saya masalah yang sulit. Dan saya mencoba hal-hal yang saya tidak kenal, jadi saya sering menjalankan studi simulasi untuk memastikan bahwa apa yang saya lakukan valid. Jika saya menulis model khusus di Stan, bagaimana saya tahu bahwa apa yang saya lakukan adalah sah? Bagaimana saya bisa menggunakan metode simulasi untuk memverifikasi bahwa apa yang saya lakukan di Stan sebenarnya akan memberi tahu saya apa yang ingin saya ketahui?

Mark White
sumber
3
Pertanyaan bagus. Dua komentar: 1. Kita dapat menggunakan metode sim untuk "memverifikasi" model-model frequentist, tetapi simulasi saja tidak dapat sepenuhnya memberi informasi kepada kita tentang kepercayaan dari model frequentist. 2: Ada cara untuk mengetahui bahwa model Bayesian / Stan TIDAK dapat dipercaya untuk inferensi. Misalnya transisi divergen diamati setelah periode pemanasan.
JTH
1
Saya pikir Anda menggabungkan dua jenis "ketidakpastian" yang berbeda. Metode yang sering menangani ketidakpastian obrolan dan dibenarkan oleh sifat jangka panjang mereka. Metode Bayesian berurusan dengan ketidakpastian epistemik dan tidak perlu dibenarkan atas dasar sifat-panjangnya. Secara khusus, interval kredibel 95% tidak perlu interval kepercayaan 95%. Namun, bahkan orang Bayesian mungkin ingin "dikalibrasi", yaitu untuk mencocokkan probabilitas Frequentist. Lihat: Rubin, DB. "Penghitungan frekuensi Bayesianly yang dapat dibenarkan dan relevan untuk ahli statistik terapan. Catatan Statistik 1984: 12: 1151-1172.
a.arfe
jika Anda hidup di dunia probabilitas subjektif mungkin Anda tidak perlu memverifikasi apa pun, Anda tidak pernah salah
Aksakal
Anda mungkin ingin melihat stats.stackexchange.com/questions/2272/… untuk melihat mengapa Anda tidak dapat melakukan apa yang Anda pikirkan untuk dilakukan, setidaknya untuk interval waktu.
Dave Harris

Jawaban:

5

Saya pikir Anda melihat masalah logis dalam pertanyaan Anda. Dalam paradigma frequentist, boleh saja untuk mengandaikan kebenaran populasi, menghasilkan data, dan melihat apakah perkiraan memiliki cakupan yang baik, karena itulah yang seharusnya mereka lakukan. Namun dalam paradigma Bayesian, tidak ada kebenaran dasar untuk menghasilkan data! Bayesian menanyakan kemungkinan kebenaran yang diberikan data, jadi dalam simulasi kita membutuhkan kebenaran berbeda yang memunculkan data dan kemudian mengkondisikan data. Dalam praktiknya, seseorang akhirnya mensimulasikan hukum probabilitas bersyarat, yang, untungnya, selalu berpegang pada definisi. Saya mengambil masalah yang tepat ini di Rouder, 2014, Psychonomic Bulletin and Review. https://dx.doi.org/10.3758/s13423-014-0595-4

Jeff
sumber
1

Bagaimana Bayesian memverifikasi bahwa metode mereka mendefinisikan ketidakpastian dengan benar (yaitu, menghitung interval kredibel yang valid dan distribusi posterior) menggunakan metode simulasi Monte Carlo, jika probabilitas tidak didefinisikan sebagai tingkat dalam jangka panjang?

Saya percaya kebingungan di sini adalah tentang tujuan metode simulasi dalam statistik Bayesian. Satu-satunya tujuan metode Markov Chain Monte Carlo seperti Gibbs Sampling atau Hamiltonian Monte Carlo adalah untuk menghitung penyebut aturan Bayes.

Tentu saja, sering ada metode lain yang tersedia yang akan membuat MCMC tidak perlu. Beberapa model dapat diekspresikan menggunakan konjugasi, yang lain melalui penerapan kisi halus di ruang parameter, namun yang lain dapat diselesaikan dengan pengujian penerimaan-penolakan. Di mana MCMC sangat berguna adalah ketika integralnya berperilaku buruk.

π(θ|x)=f(X|θ)π(θ)θΘf(X|θ)π(θ)dθ,
f(X|θ)π(θ)f(X|θ)π(θ|X)jumlah menjadi satu. Tujuan MCMC adalah untuk menentukan angka bawah. Perhatikan bahwa angka bawah adalah konstan. Ini adalah kemungkinan yang diharapkan.

Keakuratan angka itu memang menentukan beberapa tetapi tidak semua estimasi parameter. Jika Anda menggunakan penduga posteriori maksimum, maka MCMC adalah langkah yang tidak perlu. Anda harus membangun algoritma panjat bukit sebagai gantinya. Di sisi lain, perlu untuk menentukan rata-rata posterior atau interval. Itu karena interval 95% harus 95% dari sesuatu dan penyebut menentukan skala dari sesuatu itu.

Tujuan MCMC dalam metodologi Bayesian adalah untuk mendapatkan rantai Markov untuk menyatu dengan kepadatan posterior. Hanya itu saja. Itu tidak menguji validitas apa pun. Ini hanyalah upaya untuk menentukan nilai titik tetap. Ini adalah bentuk integrasi numerik. Karena tidak ada cara untuk mengetahui tanpa membiarkan algoritme berjalan hingga tak terbatas apakah semua wilayah padat telah dicakup, ada beberapa penilaian manusia. Algoritma akan memiliki cutoff ketika ia percaya itu dilakukan, tetapi itu tidak berarti itu benar-benar dilakukan.

Dalam metodologi Frequentist, MCMC sering digunakan untuk menguji kewajaran model atau untuk memperkirakan solusi secara numerik ketika yang analitik tidak tersedia. Tidak ada tujuan yang serupa di sini.

Jika saya menulis model khusus di Stan, bagaimana saya tahu bahwa apa yang saya lakukan adalah sah? Bagaimana saya bisa menggunakan metode simulasi untuk memverifikasi bahwa apa yang saya lakukan di Stan sebenarnya akan memberi tahu saya apa yang ingin saya ketahui?

Pertanyaan ini jauh lebih sulit. Stan adalah algoritma cepat, yang berarti memperdagangkan kecepatan untuk risiko ketidaktepatan tambahan. Stan, dengan konstruksi, akan lebih sering benar daripada salah. Ada algoritma lain yang dirancang untuk mencari ruang parameter secara luas untuk maksimum lokal yang mungkin lebih akurat, tetapi akan sangat lambat.

θΘf(X|θ)π(θ)dθ.

Hal kedua yang dapat Anda lakukan adalah memvalidasinya dengan algoritma alternatif. Angka-angka tidak akan pernah cocok, tetapi jika Anda menganggapnya cukup dekat, maka Anda baik-baik saja.

Ketiga, sebagian besar paket prebuilt memberikan peringatan bahwa ada sesuatu yang salah. Jika peringatan muncul, gunakan sesuatu yang lain setelah menyelidiki sumber masalah, jadi Anda tidak membuatnya kembali dalam algoritma lain.

Pr(μ)=N(7,22)σ2N(25,.12)

Kelima, dan Anda harus melakukan ini sebelum Anda memulai Stan di tempat pertama, grafik kemungkinan marginal Anda dalam satu atau dua dimensi. Apakah ada kejutan di mana saja yang dapat mengganggu algoritma?

Karena Bayesian tidak mendefinisikan probabilitas sebagai apa yang kita lihat dalam jangka panjang, bagaimana saya bisa menggunakan metode simulasi untuk memverifikasi daripada stan_glm secara akurat menangkap ketidakpastian? Yaitu, bagaimana saya bisa percaya bahwa interval yang kredibel ini valid, menggunakan metode simulasi? Dan saat ini, saya bahkan tidak mendefinisikan prior — bagaimana dimasukkannya prior ke dalam permainan di sini, karena itu akan mempengaruhi ukuran ketidakpastian kita?

Jika Anda tidak mendefinisikan prior, maka model Anda tidak valid. Jika Anda tidak mendefinisikan kepadatan sebelumnya yang masuk akal, lalu mengapa Anda menggunakan model Bayesian? Model Frequentist meminimalkan risiko kerugian maksimum yang dapat terjadi dari pengumpulan sampel yang buruk. Mereka sangat pesimis dan sering membutuhkan lebih banyak informasi untuk menghasilkan hasil yang sama seperti metode Bayesian.

Meskipun demikian, itu tidak ada gunanya tanpa menggunakan kepadatan sebelumnya yang baik. Kepadatan sebelumnya memungkinkan metode Bayesian untuk meminimalkan kehilangan rata-rata dari memilih sampel yang buruk. Informasi dalam tindakan sebelumnya sebagai skema pembobotan sehingga jika beberapa sampel ekstrim dipilih secara kebetulan, maka sebelumnya akan melemahkan peran yang dimainkan data.

EDIT saya menyadari saya tidak memberikan satu jawaban khusus. Itu untuk pertanyaan

Bagaimana saya bisa menggunakan metode simulasi untuk memverifikasi bahwa apa yang saya lakukan di Stan sebenarnya akan memberi tahu saya apa yang ingin saya ketahui?

Apa yang membuat pertanyaan ini menantang adalah bahwa dalam paradigma Bayesian poin-poin tetap adalah, , sampel. Dalam metode Frequentist, parameternya tetap dan ribuan sampel tak terlihat dibuat. Di sisi Bayesian dari koin, itu adalah sampel yang diperbaiki. Anda perlu mensimulasikan ribuan alam semesta paralel.X

Untuk melihat seperti apa itu, bayangkan semua fungsi kerapatan dari lemparan koin dengan probabilitas tidak diketahui sebagai kepala dan sebagai ekor. Anda mengamati enam kepala dan dua ekor. Bayangkan ruang parameter kecil di mana . Simulasi Anda akan mempertimbangkan semua kasus di mana enam kepala dapat diperoleh selama tiga distribusi binomial objektif. Posterior akan menjadi rata-rata tertimbang dari setiap parameter menjadi nilai sebenarnya. Distribusi prediktif Anda akan menjadi jumlah dari distribusi binomial tertimbang.p1pp{1/3,1/2,2/3}

Yang penting bagi Anda, adalah tidak mungkin bagi prediksi Bayesian untuk menjadi distribusi yang sebenarnya. Salah satu dari tiga distribusi adalah distribusi yang sebenarnya. Metode Bayesian mempertimbangkan probabilitas berdasarkan nilai yang diamati dan sebelumnya. Posterior tidak akan pernah bisa menjadi distribusi yang sebenarnya, juga bukan kepadatan prediksi.

Ia bertanya "berapa probabilitas melihat enam kepala dan dua ekor di atas himpunan semua penjelasan yang mungkin (parameter, model, dll)."

The Frequentist akan menyatakan salah satu dari tiga pilihan adalah nilai sebenarnya dengan menjadikannya nol. Enam kepala dan dua ekor akan memalsukan tetapi yang lainnya tidak. Jika, secara kebetulan, Anda memilih salah satu dari tiga distribusi yang benar, maka Anda sepenuhnya benar. Kalau tidak, Anda akan salah.H0:p=1/3,

Jika Anda akan menggunakan simulasi untuk menjaga sampel tetap, Anda akan menemukan bahwa Stan akan tampil mengagumkan karena teorema Bayes adalah teorema matematika. Ini adalah ex-post optimal. Yang Anda akan temukan adalah algoritma yang diimplementasikan dengan benar teorema Bayes hingga tingkat kesalahan alami dalam memperkirakan penyebutnya.

Ada tiga hal yang bisa Anda lakukan. Pertama, Anda dapat menggunakan metode penilaian model untuk data out-of-sample. Kedua, Anda dapat menggunakan pemilihan model Bayesian atau proses rata-rata model. Ketiga, Anda dapat memperlakukannya sebagai masalah Frequentist dan membangun distribusi sampling estimator.

Untuk yang pertama, metode penilaian adalah seluruh literatur itu sendiri. Anda harus meneliti mereka. Pemilihan model Bayesian dan model rata-rata memperlakukan model sebagai parameter. Untuk pemilihan model, probabilitas model menjadi benar dihitung. Untuk model rata-rata probabilitas setiap model benar dihitung dan yang berfungsi sebagai pembobotan ruang model. Akhirnya, Anda dapat memperlakukannya sebagai model Frequentist.

Yang terakhir akan menjadi masalah dalam banyak kasus standar karena sebelumnya. Untuk model dengan tiga dimensi atau lebih dan distribusi normal, kerapatan posterior tidak akan berintegrasi menjadi satu jika kerapatan sebelumnya bukan kerapatan yang tepat. Dengan kata lain, Anda harus menggigit peluru dan memilih prior untuk setiap model dengan kompleksitas nyata.

Kehadiran sebelumnya yang tepat berpusat tepat memaksa kasus di mana metode Bayesian akan lebih unggul daripada metode Frequentist terkait karena informasi yang ditingkatkan. Metode Bayesian akan menang berdasarkan standar yang masuk akal. Itu bukan karena kesalahan dalam metode Frequentist, tetapi metode Bayesian mengasumsikan informasi eksterior. Metode Frequentist, dengan hanya mempertimbangkan informasi dalam sampel, akan memiliki lebih sedikit informasi di dalamnya jika Anda memiliki sebelumnya yang nyata.

Sekali lagi, jika Anda tidak memiliki prior sungguhan, lalu mengapa Anda menggunakan metode Bayesian?

Dave Harris
sumber
@ Akakal Saya setuju dengan Anda, itu mengacaukan keputusan dan analisis. Saya menghapusnya.
Dave Harris