Katakanlah kita memiliki distribusi Dirichlet dengan parameter vektor -dimensional . Bagaimana saya bisa menggambar sampel ( vektor dimensi) dari distribusi ini? Saya membutuhkan (mungkin) penjelasan sederhana.
Katakanlah kita memiliki distribusi Dirichlet dengan parameter vektor -dimensional . Bagaimana saya bisa menggambar sampel ( vektor dimensi) dari distribusi ini? Saya membutuhkan (mungkin) penjelasan sederhana.
Jawaban:
Pertama, gambar sampel acak independen dari distribusi Gamma masing-masing dengan kepadatan
dan kemudian atur
Sekarang, akan mengikuti distribusi Dirichlet
The Wikipedia halaman pada distribusi Dirichlet memberitahu anda bagaimana untuk sampel dari distribusi Dirichlet.
Juga, di R
perpustakaan MCMCpack
ada fungsi untuk pengambilan sampel variabel acak dari distribusi Dirichlet.
Metode sederhana (walaupun tidak tepat) terdiri dari menggunakan fakta bahwa menggambar distribusi Dirichlet setara dengan eksperimen guci Polya. (Menggambar dari satu set bola berwarna dan setiap kali Anda menggambar bola, Anda memasukkannya kembali ke dalam guci dengan bola kedua dengan warna yang sama)
Pertimbangkan parameter Dirichlet Anda sebagai distribusi yang tidak dinormalisasi di atas i.
Kemudian :
ulangi N kali
-> gambar i menggunakan distribusi multinomial
-> tambahkan 1 ke
dan ulangi
Normalisasikan untuk mendapatkan distribusi Anda
Jika saya tidak salah, metode itu tepat asimptotik. Tetapi karena N terbatas, Anda tidak akan pernah menarik beberapa distribusi dengan probabilitas sebelumnya yang sangat kecil (sedangkan Anda harus menggambar mereka dengan frekuensi yang sangat kecil). Saya kira itu mungkin memuaskan dalam kebanyakan kasus dengan N = K.10.
np.random.dirichlet
yang diterapkan, karena memang menghasilkan nol tepat dalam vektor probabilitas sampel, meskipun vektor tersebut tidak termasuk dalam dukungan Dirichlet. Inilah yang membuat saya di sini.