a<b
ΦX1,...,XNμσ2†a<b
Xi=μ+σ⋅Φ−1(Ui)U1,...,UN∼IID U[Φ(a−μσ),Φ(b−μσ)].
Nie ma wbudowanej funkcji generowania wartości z obciętego rozkładu, ale programowanie tej metody przy użyciu zwykłych funkcji do generowania zmiennych losowych jest banalne. Oto prosta Rfunkcja, rtruncnormktóra implementuje tę metodę w kilku wierszach kodu.
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); }
Jest to wektoryzowana funkcja, która wygeneruje Nlosowe zmienne IID ze skróconego rozkładu normalnego. Łatwo byłoby zaprogramować funkcje dla innych skróconych dystrybucji za pomocą tej samej metody. Nie byłoby też zbyt trudne zaprogramowanie powiązanych funkcji gęstości i kwantylu dla skróconego rozkładu.
†μσ2 nie są średnią i wariancją rozkładu obciętego.