R: The Zero/One-Inflated Beta Distribution

Zoabeta {VGAM} | R Documentation

## The Zero/One-Inflated Beta Distribution

### Description

Density, distribution function, and random generation for the zero/one-inflated beta distribution.

### Usage

    dzoabeta(x, shape1, shape2, pobs0 = 0, pobs1 = 0, log = FALSE,
             tol = .Machine$double.eps)
    pzoabeta(q, shape1, shape2, pobs0 = 0, pobs1 = 0,
             lower.tail = TRUE, log.p = FALSE, tol = .Machine$double.eps)
    qzoabeta(p, shape1, shape2, pobs0 = 0, pobs1 = 0,
             lower.tail = TRUE, log.p = FALSE, tol = .Machine$double.eps)
    rzoabeta(n, shape1, shape2, pobs0 = 0, pobs1 = 0,
             tol = .Machine$double.eps)

### Arguments

`x, q, p, n` | Same as `Beta`.
`pobs0, pobs1` | vector of probabilities that 0 and 1 are observed (omega_0 and omega_1).
`shape1, shape2` | Same as `Beta`. They are called `a` and `b` in `beta` respectively.
`lower.tail, log, log.p` | Same as `Beta`.
`tol` | Numeric, tolerance for testing equality with 0 and 1.

### Details

This distribution is a mixture of a discrete distribution with a continuous distribution. The cumulative distribution function of Y is

F(y) =(1 - omega_0 - omega_1) B(y) + omega_0 * I[0 <= y] + omega_1 * I[1 <= y]

where B(y) is the cumulative distribution function of the beta distribution with the same shape parameters (`pbeta`), omega_0 is the inflated probability at 0 and omega_1 is the inflated probability at 1. The default values of omega_j mean that these functions behave like the ordinary `Beta` when only the essential arguments are inputted.

### Value

`dzoabeta` gives the density, `pzoabeta` gives the distribution function, `qzoabeta` gives the quantile, and `rzoabeta` generates random deviates.

### Author(s)

Xiangjie Xue and T. W. Yee

### See Also

`zoabetaR`, `beta`, `betaR`, `Betabinom`.

### Examples

    ## Not run:
    N <- 1000; y <- rzoabeta(N, 2, 3, 0.2, 0.2)
    hist(y, probability = TRUE, border = "blue", las = 1,
         main = "Blue = 0- and 1-altered; orange = ordinary beta")
    sum(y == 0) / N  # Proportion of 0s
    sum(y == 1) / N  # Proportion of 1s
    Ngrid <- 1000
    lines(seq(0, 1, length = Ngrid),
          dbeta(seq(0, 1, length = Ngrid), 2, 3), col = "orange")
    lines(seq(0, 1, length = Ngrid), col = "blue",
          dzoabeta(seq(0, 1, length = Ngrid), 2 , 3, 0.2, 0.2))

    ## End(Not run)

[Package VGAM version 1.1-3 Index]