Learn R Programming

VGAM (version 0.9-4)

invbinomial: Inverse Binomial Distribution Family Function

Description

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

Usage

invbinomial(lrho = elogit(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,\ldots$ and $\frac12 < \rho < 1$, and $\lambda > 0$. The first two moments exist for $\rho>\frac12$; 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, invbinomial, 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