zibinomial {VGAM}R Documentation

Zero-Inflated Binomial Distribution Family Function

Description

Fits a zero-inflated binomial distribution by maximum likelihood estimation.

Usage

zibinomial(lphi="logit", link.mu="logit",
           ephi=list(), emu=list(),
           iphi=NULL, zero=1, mv=FALSE)

Arguments

lphi Link function for the parameter phi. See Links for more choices.
link.mu Link function for the usual binomial probability mu parameter. See Links for more choices.
ephi, emu List. Extra argument for the respective links. See earg in Links for general information.
iphi Optional initial value for phi, whose value must lie between 0 and 1. The default is to compute an initial value internally.
zero An integer specifying which linear/additive predictor is modelled as intercepts only. If given, the value must be either 1 or 2, and the default is the first. Setting zero=NULL enables both phi and mu to be modelled as a function of the explanatory variables.
mv Logical. Currently it must be FALSE to mean the function does not handle multivariate responses. This is to remain compatible with the same argument in binomialff.

Details

This function uses Fisher scoring and is based on

P(Y=0) = phi + (1-phi) * (1-mu)^N,

for y=0, and

P(Y=y) = (1-phi) * choose(N,Ny) * mu^(N*y) * (1-mu)^(N*(1-y)).

for y=1/N,2/N,...,1. That is, the response is a sample proportion out of N trials, and the argument size in rzibinom is N here. The parameter phi satisfies 0 < phi < 1. The mean of Y is E(Y) = (1-phi) * mu and these are returned as the fitted values. By default, the two linear/additive predictors are (logit(phi), logit(mu))^T.

Value

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

Warning

Numerical problems can occur. Half-stepping is not uncommon. If failure to converge occurs, make use of the argument iphi.

Note

The response variable must have one of the formats described by binomialff, e.g., a factor or two column matrix or a vector of sample proportions with the weights argument specifying the values of N.

To work well, one needs N>1 and mu>0, i.e., the larger N and mu are, the better.

For intercept-models and constant N over the n observations, the misc slot has a component called p0 which is the estimate of P(Y=0). This family function currently cannot handle a multivariate response (only mv=FALSE can be handled).

Author(s)

T. W. Yee

See Also

rzibinom, binomialff, posbinomial, rbinom.

Examples

size = 10  # number of trials; N in the notation above
n = 200
phi = logit(0,inv=TRUE)  # 0.50
mubin = logit(-1,inv=TRUE) # Mean of an ordinary binomial distribution
sv = rep(size, len=n)
y = rzibinom(n=n, size=sv, prob=mubin, phi=phi) / sv # A proportion
table(y)
fit = vglm(y ~ 1, zibinomial, weight=sv, trace=TRUE)
coef(fit, matrix=TRUE)
Coef(fit) # Useful for intercept-only models
fit@misc$p0  # Estimate of P(Y=0)
fitted(fit)[1:4,]
mean(y) # Compare this with fitted(fit)
summary(fit)

[Package VGAM version 0.7-7 Index]