Bayesian memperbarui dengan data baru

17

Bagaimana cara menghitung posterior dengan N ~ (a, b) setelah mengamati n titik data? Saya berasumsi bahwa kita harus menghitung mean sampel dan varians dari titik data dan melakukan semacam perhitungan yang menggabungkan posterior dengan sebelumnya, tapi saya tidak begitu yakin seperti apa rumus kombinasi itu.

statstudent
sumber

Jawaban:

22

Ide dasar dari memperbarui Bayesian adalah bahwa diberikan beberapa data X dan sebelum parameter lebih menarik θ , di mana hubungan antara data dan parameter dijelaskan menggunakan kemungkinan fungsi, Anda menggunakan teorema Bayes untuk mendapatkan posterior

p(θX)p(Xθ)p(θ)

Ini dapat dilakukan secara berurutan, di mana setelah melihat titik data pertama sebelum θ diperbarui ke posterior θ , selanjutnya Anda dapat mengambil titik data kedua x 2 dan menggunakan posterior yang diperoleh sebelum θ sebagai sebelumnya , untuk memperbaruinya sekali lagi dll.x1 θ θx2θ

Biarkan saya memberi Anda sebuah contoh. Bayangkan bahwa Anda ingin memperkirakan rata-rata dari distribusi normal dan σ 2 diketahui oleh Anda. Dalam kasus seperti itu kita dapat menggunakan model normal-normal. Kami menganggap sebelumnya normal untuk μ dengan hiperparameter μ 0 , σ 2 0 :μσ2μμ0,σ02:

XμNormal(μ, σ2)μNormal(μ0, σ02)

Karena distribusi normal adalah konjugat sebelum untuk distribusi normal, kami memiliki solusi bentuk-tertutup untuk memperbarui sebelumnyaμ

E(μx)=σ2μ+σ02xσ2+σ02Var(μx)=σ2σ02σ2+σ02

Sayangnya, solusi bentuk tertutup sederhana seperti itu tidak tersedia untuk masalah yang lebih canggih dan Anda harus mengandalkan algoritma pengoptimalan (untuk estimasi titik menggunakan maksimum pendekatan posteriori ), atau simulasi MCMC.

Di bawah ini Anda dapat melihat contoh data:

n <- 1000
set.seed(123)
x     <- rnorm(n, 1.4, 2.7)
mu    <- numeric(n)
sigma <- numeric(n)

mu[1]    <- (10000*x[i] + (2.7^2)*0)/(10000+2.7^2)
sigma[1] <- (10000*2.7^2)/(10000+2.7^2)
for (i in 2:n) {
  mu[i]    <- ( sigma[i-1]*x[i] + (2.7^2)*mu[i-1] )/(sigma[i-1]+2.7^2)
  sigma[i] <- ( sigma[i-1]*2.7^2                  )/(sigma[i-1]+2.7^2)
}

Jika Anda memplot hasilnya, Anda akan melihat bagaimana posterior mendekati nilai estimasi (nilai sebenarnya ditandai dengan garis merah) ketika data baru diakumulasikan.

Updating prior in subsequent steps in normal-normal model

Untuk mempelajari lebih lanjut, Anda dapat memeriksa slide-slide dan analisis Conjugate Bayesian dari kertas distribusi Gaussian oleh Kevin P. Murphy. Periksa juga Apakah prior Bayesian menjadi tidak relevan dengan ukuran sampel yang besar? Anda juga dapat memeriksa catatan itu dan entri blog ini untuk pengantar inferensi langkah demi langkah yang dapat diakses dari Bayesian.

Tim
sumber
Terima kasih, ini sangat membantu. Bagaimana kita akan menyelesaikan contoh sederhana ini (varian tidak dikenal, tidak seperti contoh Anda)? Misalkan kita memiliki distribusi N ~ (5, 4) sebelumnya dan kemudian kita amati 5 titik data (8, 9, 10, 8, 7). Apa yang akan menjadi posterior setelah pengamatan ini? Terima kasih sebelumnya. Sangat dihargai.
statstudent
@Kelly, Anda dapat menemukan contoh untuk kasus ketika salah satu varians tidak diketahui dan rata-rata diketahui, atau keduanya tidak dikenal dalam entri Wikipedia tentang konjugasi prior dan tautan yang saya berikan di akhir jawaban saya. Jika baik mean dan varians tidak diketahui itu menjadi sedikit lebih rumit.
Tim
μσ2
4

P(θ)P(xθ)

P(θx)=θP(xθ)P(θ)P(x)

P(x)

P(θx)θP(xθ)P(θ)

Kasus konjugasi prior (di mana Anda sering mendapatkan formula form tertutup yang bagus)

θP(θ)P(xθ)P(θ) P(θx) berada di keluarga yang sama (mis. keduanya Gaussian).

Tabel distribusi konjugasi dapat membantu membangun intuisi (dan juga memberikan beberapa contoh instruktif untuk bekerja melalui diri Anda sendiri).

Matthew Gunn
sumber
1

Ini adalah masalah perhitungan pusat untuk analisis data Bayesian. Itu benar-benar tergantung pada data dan distribusi yang terlibat. Untuk kasus sederhana di mana semuanya dapat diekspresikan dalam bentuk tertutup (misalnya, dengan prior konjugat), Anda dapat menggunakan teorema Bayes secara langsung. Keluarga teknik yang paling populer untuk kasus yang lebih kompleks adalah rantai Markov Monte Carlo. Untuk detailnya, lihat buku teks pengantar tentang analisis data Bayesian.

Kodiologis
sumber
Thank you so much! Sorry if this is a really stupid follow-up question, but in the simple cases that you mentioned, how exactly would we use Bayes's theorem directly? Would the distribution created by the sample mean and variance of the data points become the likelihood function? Thank you very much.
statstudent
@Kelly Again, it depends on the distribution. See e.g. en.wikipedia.org/wiki/Conjugate_prior#Example . (If I answered your question, don't forget to accept my answer by clicking on the check mark under the voting arrows.)
Kodiologist