Learn R Programming

VGAM (version 0.9-1)

fnormal1: Folded Normal Distribution Family Function

Description

Fits a (generalized) folded (univariate) normal distribution.

Usage

fnormal1(lmean = "identity", lsd = "loge", imean = NULL, isd = NULL,
         a1 = 1, a2 = 1, nsimEIM = 500, imethod = 1, zero = NULL)

Arguments

lmean, lsd
Link functions for the mean and standard deviation parameters of the usual univariate normal distribution. They are $\mu$ and $\sigma$ respectively. See Links for more choices.
imean, isd
Optional initial values for $\mu$ and $\sigma$. A NULL means a value is computed internally. See CommonVGAMffArguments.
a1, a2
Positive weights, called $a_1$ and $a_2$ below. Each must be of length 1.
nsimEIM, imethod, zero

Value

  • An object of class "vglmff" (see vglmff-class). The object is used by modelling functions such as vglm and vgam.

Warning

Under- or over-flow may occur if the data is ill-conditioned. It is recommended that several different initial values be used to help avoid local solutions.

Details

If a random variable has an ordinary univariate normal distribution then the absolute value of that random variable has an ordinary folded normal distribution. That is, the sign has not been recorded; only the magnitude has been measured.

More generally, suppose $X$ is normal with mean mean and standard deviation sd. Let $Y=\max(a_1 X, -a_2 X)$ where $a_1$ and $a_2$ are positive weights. This means that $Y = a_1 X$ for $X > 0$, and $Y = a_2 X$ for $X < 0$. Then $Y$ is said to have a generalized folded normal distribution. The ordinary folded normal distribution corresponds to the special case $a_1 = a_2 = 1$.

The probability density function of the ordinary folded normal distribution can be written dnorm(y, mean, sd) + dnorm(y, -mean, sd) for $y \ge 0$. By default, mean and log(sd) are the linear/additive predictors. Having mean=0 and sd=1 results in the half-normal distribution. The mean of an ordinary folded normal distribution is $$E(Y) = \sigma \sqrt{2/\pi} \exp(-\mu^2/(2\sigma^2)) + \mu [1-2\Phi(-\mu/\sigma)]$$ and these are returned as the fitted values. Here, $\Phi()$ is the cumulative distribution function of a standard normal (pnorm).

References

Lin, P. C. (2005) Application of the generalized folded-normal distribution to the process capability measures. International Journal of Advanced Manufacturing Technology, 26, 825--830.

See Also

rfnorm, normal1, dnorm, skewnormal1.

Examples

Run this code
m <-  2; SD <- exp(1)
y <- rfnorm(n <- 1000, m = m, sd = SD)
hist(y, prob = TRUE, main = paste("fnormal1(m = ", m,
     ", sd = ", round(SD, 2), ")"))
fit <- vglm(y ~ 1, fam = fnormal1, trace = TRUE)
coef(fit, matrix = TRUE)
(Cfit <- Coef(fit))
mygrid <- seq(min(y), max(y), len = 200) # Add the fit to the histogram
lines(mygrid, dfnorm(mygrid, Cfit[1], Cfit[2]), col = "orange")

Run the code above in your browser using DataLab