Density, distribution function, quantile function and random
generation for the truncated Normal distribution with mean equal to mean
and standard deviation equal to sd before truncation, and
truncated on the interval [lower, upper].
dtnorm(x, mean=0, sd=1, lower=-Inf, upper=Inf, log = FALSE)
ptnorm(q, mean=0, sd=1, lower=-Inf, upper=Inf,
lower.tail = TRUE, log.p = FALSE)
qtnorm(p, mean=0, sd=1, lower=-Inf, upper=Inf,
lower.tail = TRUE, log.p = FALSE)
rtnorm(n, mean=0, sd=1, lower=-Inf, upper=Inf)dtnorm gives the density, ptnorm gives the distribution
function, qtnorm gives the quantile function, and rtnorm
generates random deviates.
vector of quantiles.
vector of probabilities.
number of observations. If length(n) > 1, the length is
taken to be the number required.
vector of means.
vector of standard deviations.
lower truncation point.
upper truncation point.
logical; if TRUE, return log density or log hazard.
logical; if TRUE, probabilities p are given as log(p).
logical; if TRUE (default), probabilities are P[X <= x], otherwise, P[X > x].
C. H. Jackson chris.jackson@mrc-bsu.cam.ac.uk
The truncated normal distribution has density
$$ f(x, \mu, \sigma) = \phi(x, \mu, \sigma) / (\Phi(u, \mu, \sigma) - \Phi(l, \mu, \sigma)) $$ for \(l <= x <= u\), and 0 otherwise.
\(\mu\) is the mean of the original Normal distribution before
truncation,
\(\sigma\) is the corresponding standard deviation,
\(u\) is the upper truncation point,
\(l\) is the lower truncation point,
\(\phi(x)\) is the density of the corresponding normal
distribution, and
\(\Phi(x)\) is the distribution function of the corresponding normal
distribution.
If mean or sd are not specified they assume the default values
of 0 and 1, respectively.
If lower or upper are not specified they assume the default values
of -Inf and Inf, respectively, corresponding to no
lower or no upper truncation.
Therefore, for example, dtnorm(x), with no other arguments, is
simply equivalent to dnorm(x).
Only rtnorm is used in the msm package, to simulate
from hidden Markov models with truncated normal
distributions. This uses the rejection sampling algorithms described
by Robert (1995).
These functions are merely provided for completion,
and are not optimized for numerical stability or speed. To fit a hidden Markov
model with a truncated Normal response distribution, use a
hmmTNorm constructor. See the hmm-dists
help page for further details.
Robert, C. P. Simulation of truncated normal variables. Statistics and Computing (1995) 5, 121--125
x <- seq(50, 90, by=1)
plot(x, dnorm(x, 70, 10), type="l", ylim=c(0,0.06)) ## standard Normal distribution
lines(x, dtnorm(x, 70, 10, 60, 80), type="l") ## truncated Normal distribution
Run the code above in your browser using DataLab