a<b
Lassen Sie ΦX1,...,XNμσ2†a<b
Xi=μ+σ⋅Φ−1(Ui)U1,...,UN∼IID U[Φ(a−μσ),Φ(b−μσ)].
Es gibt keine eingebaute Funktion für generierte Werte aus der abgeschnittenen Verteilung, aber es ist trivial, diese Methode mit den üblichen Funktionen zum Generieren von Zufallsvariablen zu programmieren. Hier ist eine einfache R
Funktion rtruncnorm
, die diese Methode in wenigen Codezeilen implementiert.
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); }
Dies ist eine vektorisierte Funktion, die N
IID-Zufallsvariablen aus der abgeschnittenen Normalverteilung generiert . Es wäre einfach, Funktionen für andere verkürzte Verteilungen mit derselben Methode zu programmieren. Es wäre auch nicht zu schwierig, zugehörige Dichte- und Quantilfunktionen für die abgeschnittene Verteilung zu programmieren.
†μσ2