Saya ingin mensimulasikan sampel dari distribusi normal campuran
terbatas pada interval dari pada . Ini berarti saya ingin mensimulasikan campuran terpotong dari distribusi normal.
Saya tahu bahwa ada beberapa algoritma untuk mensimulasikan sebuah terpotong normal (yaitu dari pertanyaan ini ) dan paket yang sesuai dalam R untuk melakukan ini. Tetapi bagaimana saya bisa mensimulasikan campuran terpotong normal? Apakah sama jika saya mensimulasikan dua terpotong normal dan ) untuk membuat campuran terpotong normal?
Jawaban:
Simulasi dari normal terpotong mudah dilakukan jika Anda memiliki akses ke fungsi kuantil normal yang tepat. Misalnya, dalam R, mensimulasikanNba(μ,σ2) dimana a dan b menunjukkan batas bawah dan atas dapat dilakukan dengan membalik cdf Φ(σ−1{x−μ})−Φ(σ−1{a−μ})Φ(σ−1{b−μ})−Φ(σ−1{a−μ})
misalnya dalam R
Kalau tidak, saya mengembangkan algoritma accept-reject yang terpotong dua puluh tahun yang lalu.
Jika kita mempertimbangkan masalah campuran terpotong, dengan kepadatanf(x;θ)∝{pφ(x;μ1,σ1)+(1−p)φ(x;μ2,σ2)}I[a,b](x)
itu adalah campuran dari distribusi normal terpotong tetapi dengan bobot yang berbeda :
f(x;θ)∝p{Φ(σ−11{b−μ1})−Φ(σ−11{a−μ1})}σ−11ϕ(σ−11{x−μ1})Φ(σ−11{b−μ1})−Φ(σ−11{a−μ1})+(1−p){Φ(σ−12{b−μ2})−Φ(σ−12{a−μ2})}σ−12ϕ(σ−12{x−μ2})Φ(σ−12{b−μ2})−Φ(σ−11{a−μ2})
Oleh karena itu, untuk mensimulasikan dari campuran normal terpotong, cukup untuk mengambil
x=⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪x1∼Nba(μ1,σ21)x2∼Nba(μ2,σ22)with probability p{Φ(σ−11{b−μ1})−Φ(σ−11{a−μ1})}/swith probability (1−p){Φ(σ−12{b−μ2})−Φ(σ−12{a−μ2})}/s
dimana
s=p{Φ(σ−11{b−μ1})−Φ(σ−11{a−μ1})}+(1−p){Φ(σ−12{b−μ2})−Φ(σ−12{a−μ2})}
sumber