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
x = mu + sigma * qnorm( pnorm(a,mu,sigma) +
runif(1)*(pnorm(b,mu,sigma) - pnorm(a,mu,sigma)) )
Kalau tidak, saya mengembangkan algoritma accept-reject yang terpotong dua puluh tahun yang lalu.
Jika kita mempertimbangkan masalah campuran terpotong, dengan kepadatan
f(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})}