R: The Folded-Normal Distribution

Foldnorm {VGAM} | R Documentation

## The Folded-Normal Distribution

### Description

Density, distribution function, quantile function and random generation for the (generalized) folded-normal distribution.

### Usage

    dfoldnorm(x, mean = 0, sd = 1, a1 = 1, a2 = 1, log = FALSE)
    pfoldnorm(q, mean = 0, sd = 1, a1 = 1, a2 = 1,
              lower.tail = TRUE, log.p = FALSE)
    qfoldnorm(p, mean = 0, sd = 1, a1 = 1, a2 = 1,
              lower.tail = TRUE, log.p = FALSE, ...)
    rfoldnorm(n, mean = 0, sd = 1, a1 = 1, a2 = 1)

### Arguments

`x, q` | vector of quantiles.
`p` | vector of probabilities.
`n` | number of observations. Same as `rnorm`.
`mean, sd` | see `rnorm`.
`a1, a2` | see `foldnormal`.
`log` | Logical. If `TRUE` then the log density is returned.
`lower.tail, log.p` | Same meaning as in `pnorm` or `qnorm`.
`...` | Arguments that can be passed into `uniroot`.

### Details

See `foldnormal`, the VGAM family function for estimating the parameters, for the formula of the probability density function and other details.

### Value

`dfoldnorm` gives the density, `pfoldnorm` gives the distribution function, `qfoldnorm` gives the quantile function, and `rfoldnorm` generates random deviates.

### Note

`qfoldnorm()` runs very slowly because it calls `uniroot` for each value of the argument `p`. The solution is consequently not exact; the `...` can be used to obtain a more accurate solution if necessary.

### Author(s)

T. W. Yee and Kai Huang

### See Also

`foldnormal`, `uniroot`.

### Examples

    ## Not run:
    m <- 1.5; SD <- exp(0)
    x <- seq(-1, 4, len = 501)
    plot(x, dfoldnorm(x, m = m, sd = SD), type = "l", ylim = 0:1, las = 1,
         ylab = paste("foldnorm(m = ", m, ", sd = ", round(SD, digits = 3), ")"),
         main = "Blue is density, orange is cumulative distribution function",
         sub = "Purple lines are the 10,20,...,90 percentiles", col = "blue")
    abline(h = 0, col = "gray50")
    lines(x, pfoldnorm(x, m = m, sd = SD), col = "orange")
    probs <- seq(0.1, 0.9, by = 0.1)
    Q <- qfoldnorm(probs, m = m, sd = SD)
    lines(Q, dfoldnorm(Q, m = m, sd = SD), col = "purple", lty = 3, type = "h")
    lines(Q, pfoldnorm(Q, m = m, sd = SD), col = "purple", lty = 3, type = "h")
    abline(h = probs, col = "purple", lty = 3)
    max(abs(pfoldnorm(Q, m = m, sd = SD) - probs))  # Should be 0

    ## End(Not run)

[Package VGAM version 1.0-3 Index]