truncnormal  R Documentation 
Maximum likelihood estimate of the two–parameter normal distribution with lower/upper truncation.
truncnormal(lmean = "identitylink", lsd = "loglink",
min.support = Inf, max.support = Inf, zero = "sd")
lmean, lsd 
Link functions applied to mean and standard deviation/variance. 
min.support, max.support 
Vector of lower and upper truncation limits (recycled).

zero 
See 
MLE of the two–parameter (univariate) normal distribution subject to
lower/upper truncation. All response values are greater
then min.support
and/or lower than max.support
.
The truncated–normal density for a response Y
is
f(y; \mu, \sigma) = f(y; \mu, \sigma) /
[\Phi(\texttt{max.support}, \mu, \sigma) 
\Phi(\texttt{min.support},\mu, \sigma) ],
where f
is the probability density function of standard normal
distribution and \Phi
is the standard normal CDF.
The mean of Y, given by
\mu + [\varphi(\texttt{min.support}) + \varphi(\texttt{max.support})/\Delta \Phi(\mu,\sigma)]\cdot \sigma,
with \Delta \Phi(\mu, \sigma) =
\Phi((\texttt{max.support}  \mu)/\sigma ) 
\Phi( (\texttt{min.support}  \mu)/\sigma ),
are returned as the fitted values.
An object of class "vglmff"
(see vglmffclass
).
The object is used by modelling functions such as vglm
,
and vgam
.
Siqi (Vicky) Liu, Victor Miranda, and Thomas W. Yee.
Nadarajah, S. and Kotz, S. (2003).
R
Programs for Computing Truncated Distributions.
Journal of Statistical Software, Code
Snippets,
16(2), 1–8.
Cohen, A.C. (1991) Truncated and Censored Samples: Theory and Applications, New York, USA. Marcel Dekker.
uninormal
,
CommonVGAMffArguments
.
nn < 2000
set.seed(14290909)
## Parameters
mysd < exp(1.0) # sd
LL < 0.5 # Lower bound
UL < 8.0 # Upper bound
## Truncated data
ldata2 < data.frame(x2 = runif(nn))
ldata2 < transform(ldata2, y1 = rtruncnorm(nn, 1 + 1.5 * x2, mysd,
min.support = LL, max.support = UL))
# head(ldata2)
# hist(ldata2$y1, breaks = 22, col = "blue", xlim = c(5, 10))
##############################################################
# Fitting a truncated normal distribution  sd is intercept only
fit1 < vglm(y1 ~ x2, truncnormal(zero = "sd", min.support = LL, max.support = UL),
data = ldata2, trace = TRUE)
coef(fit1, matrix = TRUE)
vcov(fit1)
##############################################################
# Fitting a truncated lognormal distribution  zero = NULL
fit2 < vglm(y1 ~ x2, truncnormal(zero = NULL, min.support = LL, max.support = UL),
data = ldata2, trace = TRUE)
coef(fit2, matrix = TRUE)
vcov(fit2)
##############################################################
# Mimicking uninormal()
fit3 < vglm(y1 ~ x2, truncnormal(zero = "sd"),
data = ldata2, trace = TRUE)
coef(fit3, mat = TRUE)
# Same as
fit3bis < vglm(y1 ~ x2, uninormal(zero = "sd"),
data = ldata2, trace = TRUE)
coef(fit3bis, mat = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.