Mô phỏng từ một bình thường cắt ngắn được thực hiện dễ dàng nếu bạn có quyền truy cập vào một hàm lượng tử bình thường thích hợp. Chẳng hạn, trong R, mô phỏng trong đó và biểu thị giới hạn dưới và trên có thể được thực hiện bằng cách đảo ngược cdf
, ví dụ: trong RNba(μ,σ2)
abΦ(σ−1{x−μ})−Φ(σ−1{a−μ})Φ(σ−1{b−μ})−Φ(σ−1{a−μ})
x = mu + sigma * qnorm( pnorm(a,mu,sigma) +
runif(1)*(pnorm(b,mu,sigma) - pnorm(a,mu,sigma)) )
Mặt khác, tôi đã phát triển một thuật toán chấp nhận từ chối bình thường cắt ngắn hai mươi năm trước.
Nếu chúng tôi xem xét vấn đề hỗn hợp cắt ngắn, với mật độ
nó là một hỗn hợp của các phân phối bình thường bị cắt bớt nhưng với các trọng số khác nhau :
Do đó, để mô phỏng từ một cắt bình thường hỗn hợp, nó là đủ để lấy
f(x;θ)∝{pφ(x;μ1,σ1)+(1−p)φ(x;μ2,σ2)}I[a,b](x)
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})
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
trong đó
s=p{Φ(σ−11{b−μ1})−Φ(σ−11{a−μ1})}+(1−p){Φ(σ−12{b−μ2})−Φ(σ−12{a−μ2})}