a<b
ΦX1,...,XNμσ2†a<b
Xi=μ+σ⋅Φ−1(Ui)U1,...,UN∼IID U[Φ(a−μσ),Φ(b−μσ)].
Tidak ada fungsi inbuilt untuk nilai yang dihasilkan dari distribusi terpotong, tetapi sepele untuk memprogram metode ini menggunakan fungsi biasa untuk menghasilkan variabel acak. Berikut adalah R
fungsi sederhana rtruncnorm
yang mengimplementasikan metode ini dalam beberapa baris kode.
rtruncnorm <- function(N, mean = 0, sd = 1, a = -Inf, b = Inf) {
if (a > b) stop('Error: Truncation range is empty');
U <- runif(N, pnorm(a, mean, sd), pnorm(b, mean, sd));
qnorm(U, mean, sd); }
Ini adalah fungsi vectorised yang akan menghasilkan N
variabel acak IID dari distribusi normal terpotong. Akan mudah untuk memprogram fungsi untuk distribusi terpotong lainnya melalui metode yang sama. Juga tidak akan terlalu sulit untuk memprogram kerapatan terkait dan fungsi kuantil untuk distribusi terpotong.
†μσ2