Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

zoabetaUC

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

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)

VGAM

Vector Generalized Linear and Additive Models

v1.1-5
GPL-3
Authors
Thomas Yee [aut, cre], Cleve Moler [ctb] (author of several LINPACK routines)
Initial release
2021-01-13

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.