50% off | Unlimited Data & AI Learning
Get 50% off unlimited learning

VGAM (version 1.1-2)

Zoabeta: 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 (ω0 and ω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.

Value

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

Details

This distribution is a mixture of a discrete distribution with a continuous distribution. The cumulative distribution function of Y is F(y)=(1ω0ω1)B(y)+ω0×I[0y]+ω1×I[1y] where B(y) is the cumulative distribution function of the beta distribution with the same shape parameters (pbeta), ω0 is the inflated probability at 0 and ω1 is the inflated probability at 1. The default values of ωj mean that these functions behave like the ordinary Beta when only the essential arguments are inputted.

See Also

zoabetaR, beta, betaR, Betabinom.

Examples

Run this code
# 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))
# }

Run the code above in your browser using DataLab