Overdispersed binomial logit models
This function estimates overdispersed binomial logit models using the approach discussed by Williams (1982).
glm.binomial.disp(object, maxit = 30, verbose = TRUE)
object |
an object of class |
maxit |
integer giving the maximal number of iterations for the model fitting procedure. |
verbose |
logical, if |
Extra-binomial variation in logistic linear models is discussed, among others, in Collett (1991). Williams (1982) proposed a quasi-likelihood approach for handling overdispersion in logistic regression models.
Suppose we observe the number of successes y_i in m_i trials, for i = 1, …, n, such that
y_i | p_i ~ Binomial(m_i, p_i)
p_i ~ Beta(γ, δ)
Under this model, each of the n binomial observations has a different probability of success p_i, where p_i is a random draw from a Beta distribution. Thus,
E(p_i) = γ/(γ+δ) = θ
V(p_i) = φ θ (1-θ)
Assuming γ > 1 and δ > 1, the Beta density is zero at the extreme values of zero and one, and thus 0 < φ <= 1/3. From this, the unconditional mean and variance can be calculated:
E(y_i) = m_i θ
V(y_i) = m_i θ (1 - θ)(1 + (m_i - 1) φ)
so unless m_i = 1 or φ = 0, the unconditional variance of y_i is larger than binomial variance.
Identical expressions for the mean and variance of y_i can be obtained if we assume that the m_i counts on the i-th unit are dependent, with the same correlation φ. In this case, -1/(m_i - 1) < φ <= 1.
The method proposed by Williams uses an iterative algorithm for estimating the dispersion parameter φ and hence the necessary weights 1/(1 + φ(m_i - 1)) (for details see Williams, 1982).
The function returns an object of class "glm"
with the usual information and the added components:
dispersion |
the estimated dispersion parameter. |
disp.weights |
the final weights used to fit the model. |
Based on a similar procedure available in Arc (Cook and Weisberg, http://www.stat.umn.edu/arc)
Collett, D. (1991), Modelling Binary Data, London: Chapman and Hall.
Williams, D. A. (1982), Extra-binomial variation in logistic linear models, Applied Statistics, 31, 144–148.
data(orobanche) mod <- glm(cbind(germinated, seeds-germinated) ~ host*variety, data = orobanche, family = binomial(logit)) summary(mod) mod.disp <- glm.binomial.disp(mod) summary(mod.disp) mod.disp$dispersion
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.