Learn R Programming

VGAM (version 1.0-2)

inv.binomial: Inverse Binomial Distribution Family Function

Description

Estimates the two parameters of an inverse binomial distribution by maximum likelihood estimation.

Usage

inv.binomial(lrho = extlogit(min = 0.5, max = 1), llambda = "loge", irho = NULL, ilambda = NULL, zero = NULL)

Arguments

lrho, llambda
Link function for the $rho$ and $lambda$ parameters. See Links for more choices.

irho, ilambda
Numeric. Optional initial values for $rho$ and $lambda$.

Value

An object of class "vglmff" (see vglmff-class). The object is used by modelling functions such as vglm and vgam.

Details

The inverse binomial distribution of Yanagimoto (1989) has density function $$f(y;\rho,\lambda) = \frac{ \lambda \,\Gamma(2y+\lambda) }{\Gamma(y+1) \, \Gamma(y+\lambda+1) } \{ \rho(1-\rho) \}^y \rho^{\lambda}$$ where $y=0,1,2,...$ and $0.5 < rho < 1$, and $lambda > 0$. The first two moments exist for $rho>0.5$; then the mean is $lambda*(1-rho)/(2*rho-1)$ (returned as the fitted values) and the variance is $lambda*rho*(1-rho)/(2*rho-1)^3$. The inverse binomial distribution is a special case of the generalized negative binomial distribution of Jain and Consul (1971). It holds that $Var(Y) > E(Y)$ so that the inverse binomial distribution is overdispersed compared with the Poisson distribution.

References

Yanagimoto, T. (1989) The inverse binomial distribution as a statistical model. Communications in Statistics: Theory and Methods, 18, 3625--3633.

Jain, G. C. and Consul, P. C. (1971) A generalized negative binomial distribution. SIAM Journal on Applied Mathematics, 21, 501--513.

Jorgensen, B. (1997) The Theory of Dispersion Models. London: Chapman & Hall

See Also

negbinomial, poissonff.

Examples

Run this code
idata <- data.frame(y = rnbinom(n <- 1000, mu = exp(3), size = exp(1)))
fit <- vglm(y ~ 1, inv.binomial, data = idata, trace = TRUE)
with(idata, c(mean(y), head(fitted(fit), 1)))
summary(fit)
coef(fit, matrix = TRUE)
Coef(fit)
sum(weights(fit))  # Sum of the prior weights
sum(weights(fit, type = "work"))  # Sum of the working weights

Run the code above in your browser using DataLab