ZTNegativeBinomial: Create a zero-truncated negative binomial distribution

View source: R/ZTNegativeBinomial.R

ZTNegativeBinomialR Documentation

Create a zero-truncated negative binomial distribution

Description

Zero-truncated negative binomial distributions are frequently used to model counts where zero observations cannot occur or have been excluded.

Usage

ZTNegativeBinomial(mu, theta)

Arguments

mu

Location parameter of the negative binomial component of the distribution. Can be any positive number.

theta

Overdispersion parameter of the negative binomial component of the distribution. Can be any positive number.

Details

We recommend reading this documentation on https://alexpghayes.github.io/distributions3/, where the math will render with additional detail.

In the following, let X be a zero-truncated negative binomial random variable with parameter mu = μ.

Support: {1, 2, 3, ...}

Mean:

μ \cdot 1/(1 - F(0; μ, θ))

where F(k; μ, θ) is the c.d.f. of the NegativeBinomial distribution.

Variance: m \cdot (μ + 1 - m), where m is the mean above.

Probability mass function (p.m.f.):

P(X = k) = f(k; μ, θ)/(1 - F(0; μ, θ))

where f(k; μ, θ) is the p.m.f. of the NegativeBinomial distribution.

Cumulative distribution function (c.d.f.):

P(X = k) = F(k; μ, θ)/(1 - F(0; μ, θ))

Moment generating function (m.g.f.):

Omitted for now.

Value

A ZTNegativeBinomial object.

See Also

Other discrete distributions: Bernoulli(), Binomial(), Categorical(), Geometric(), HurdleNegativeBinomial(), HurdlePoisson(), HyperGeometric(), Multinomial(), NegativeBinomial(), Poisson(), ZINegativeBinomial(), ZIPoisson(), ZTPoisson()

Examples

## set up a zero-truncated negative binomial distribution
X <- ZTNegativeBinomial(mu = 2.5, theta = 1)
X

## standard functions
pdf(X, 0:8)
cdf(X, 0:8)
quantile(X, seq(0, 1, by = 0.25))

## cdf() and quantile() are inverses for each other
quantile(X, cdf(X, 3))

## density visualization
plot(0:8, pdf(X, 0:8), type = "h", lwd = 2)

## corresponding sample with histogram of empirical frequencies
set.seed(0)
x <- random(X, 500)
hist(x, breaks = -1:max(x) + 0.5)

distributions3 documentation built on Sept. 7, 2022, 5:07 p.m.