truncnormal {VGAMextra} | R Documentation |
Truncated normal Distribution Family Function
Description
Maximum likelihood estimate of the two–parameter normal distribution with lower/upper truncation.
Usage
truncnormal(lmean = "identitylink", lsd = "loglink",
min.support = -Inf, max.support = Inf, zero = "sd")
Arguments
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 |
Details
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 is
where is the probability density function of standard normal
distribution and
is the standard normal CDF.
The mean of Y, given by
with
are returned as the fitted values.
Value
An object of class "vglmff"
(see vglmff-class
).
The object is used by modelling functions such as vglm
,
and vgam
.
Author(s)
Siqi (Vicky) Liu, Victor Miranda, and Thomas W. Yee.
References
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.
See Also
uninormal
,
CommonVGAMffArguments
.
Examples
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)