ZeroTruncatedNegativeBinomial {actuar} R Documentation

## The Zero-Truncated Negative Binomial Distribution

### Description

Density function, distribution function, quantile function and random generation for the Zero-Truncated Negative Binomial distribution with parameters `size` and `prob`.

### Usage

```dztnbinom(x, size, prob, log = FALSE)
pztnbinom(q, size, prob, lower.tail = TRUE, log.p = FALSE)
qztnbinom(p, size, prob, lower.tail = TRUE, log.p = FALSE)
rztnbinom(n, size, prob)
```

### Arguments

 `x` vector of (strictly positive integer) quantiles. `q` vector of quantiles. `p` vector of probabilities. `n` number of observations. If `length(n) > 1`, the length is taken to be the number required. `size` target for number of successful trials, or dispersion parameter. Must be positive, need not be integer. `prob` parameter. `0 < prob <= 1`. `log, log.p` logical; if `TRUE`, probabilities p are returned as log(p). `lower.tail` logical; if `TRUE` (default), probabilities are P[X ≤ x], otherwise, P[X > x].

### Details

The zero-truncated negative binomial distribution with `size` = r and `prob` = p has probability mass function

p(x) = [Γ(x+r) p^r (1-p)^x]/[Γ(n) x! (1-p^r)]

for x = 1, 2, …, r ≥ 0 and 0 < p < 1, and p(1) = 1 when p = 1. The cumulative distribution function is

P(x) = [F(x) - F(0)]/[1 - F(0)],

where F(x) is the distribution function of the standard negative binomial.

The mean is r(1-p)/(p(1-p^r)) and the variance is [r(1-p)(1 - (1 + r(1-p))p^r)]/[p(1-p^r)]^2.

In the terminology of Klugman et al. (2012), the zero-truncated negative binomial is a member of the (a, b, 1) class of distributions with a = 1-p and b = (r-1)(1-p).

The limiting case `size == 0` is the logarithmic distribution with parameter ```1 - prob```.

Unlike the standard negative binomial functions, parametrization through the mean `mu` is not supported to avoid ambiguity as to whether `mu` is the mean of the underlying negative binomial or the mean of the zero-truncated distribution.

If an element of `x` is not integer, the result of `dztnbinom` is zero, with a warning.

The quantile is defined as the smallest value x such that P(x) ≥ p, where P is the distribution function.

### Value

`dztnbinom` gives the (log) probability mass function, `pztnbinom` gives the (log) distribution function, `qztnbinom` gives the quantile function, and `rztnbinom` generates random deviates.

Invalid `size` or `prob` will result in return value `NaN`, with a warning.

The length of the result is determined by `n` for `rztnbinom`, and is the maximum of the lengths of the numerical arguments for the other functions.

### Note

Functions `{d,p,q}ztnbinom` use `{d,p,q}nbinom` for all but the trivial input values and p(0).

`rztnbinom` uses the simple inversion algorithm suggested by Peter Dalgaard on the r-help mailing list on 1 May 2005 (https://stat.ethz.ch/pipermail/r-help/2005-May/070680.html).

### Author(s)

Vincent Goulet vincent.goulet@act.ulaval.ca

### References

Klugman, S. A., Panjer, H. H. and Willmot, G. E. (2012), Loss Models, From Data to Decisions, Fourth Edition, Wiley.

### See Also

`dnbinom` for the negative binomial distribution.

`dztgeom` for the zero-truncated geometric and `dlogarithmic` for the logarithmic, which are special cases of the zero-truncated negative binomial.

### Examples

```## Example 6.3 of Klugman et al. (2012)
p <- 1/(1 + 0.5)
dztnbinom(c(1, 2, 3), size = 2.5, prob = p)
dnbinom(c(1, 2, 3), 2.5, p)/pnbinom(0, 2.5, p, lower = FALSE) # same

pztnbinom(1, 2, prob = 1)        # point mass at 1
dztnbinom(2, size = 1, 0.25)     # == dztgeom(2, 0.25)
dztnbinom(2, size = 0, 0.25)     # == dlogarithmic(2, 0.75)

qztnbinom(pztnbinom(1:10, 2.5, 0.3), 2.5, 0.3)

x <- rztnbinom(1000, size = 2.5, prob = 0.4)
y <- sort(unique(x))
plot(y, table(x)/length(x), type = "h", lwd = 2,
pch = 19, col = "black", xlab = "x", ylab = "p(x)",
main = "Empirical vs theoretical probabilities")
points(y, dztnbinom(y, size = 2.5, prob = 0.4),
pch = 19, col = "red")
legend("topright", c("empirical", "theoretical"),
lty = c(1, NA), lwd = 2, pch = c(NA, 19), col = c("black", "red"))
```

[Package actuar version 3.1-4 Index]