fnormal1 {VGAM} | R Documentation

## Folded Normal Distribution Family Function

### Description

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

### Usage

    fnormal1(lmean="identity", lsd="loge", emean=list(), esd=list(),
             imean=NULL, isd=NULL, a1=1, a2=1, nsimEIM=500,
             method.init=1, zero=NULL)

### Arguments

See `CommonVGAMffArguments` for general information about many of these 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.
`emean, esd` | List. Extra argument for each of the links. See `earg` in `Links` for general information.
`imean, isd` | Optional initial values for mu and sigma. A `NULL` means a value is computed internally.
`a1, a2` | Positive weights, called a1 and a2 below. Each must be of length 1.
`nsimEIM, method.init, zero` | See `CommonVGAMffArguments`.

### 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(a1*X, -a2*X) where a1 and a2 are positive weights. This means that Y = a1*X for X > 0, and Y = a2*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 a1 = a2 = 1.

The probability density function of the ordinary folded normal distribution can be written `dnorm(y, mean, sd) + dnorm(y, -mean, sd)` for y >= 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`).

### 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.

### Note

The response variable for this family function is the same as `normal1` except positive values are required. Reasonably good initial values are needed. Fisher scoring using simulation is implemented.

### Author(s)

Thomas W. Yee

### 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

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

[Package VGAM version 0.7-9 Index]