aodql

0th

Percentile

QL/MM Estimation of Generalized Linear Models for Overdispersed Count Data

From clustered data, the function fits generalized linear models containing an over-dispersion parameter \(\Phi\) using quasi-likelihood estimating equations for the mean \(\mu\) and a moment estimator for \(\Phi\).

For binomial-type models, data have the form {\((n_1, m_1), (n_2, m_2), ..., (n_N, m_N)\)}, where \(n_i\) is the size of cluster \(i\), \(m_i\) the number of “successes”, and \(N\) the number of clusters. The response is the proportion \(y = m/n\).

For Poisson-type models, data can be of two forms. When modeling “simple counts”, data have the form {\(m_1, m_2, ..., m_N\)}, where \(m_i\) is the number of occurences of the event under study. When modeling rates (e.g. hazard rates), data have the same form as for the BB model, where \(n_i\) is the denominator of the rate for cluster \(i\) (considered as an “offset”, i.e. a constant known value) and \(m_i\) the number of occurences of the event. For both forms of data, the response is the count \(y = m\).

Keywords
regression
Usage
aodql(formula,
        data,
        family = c("qbin", "qpois"),
        link = c("logit", "cloglog", "probit"),
        method = c("chisq", "dev"),
        phi = NULL,
        tol = 1e-5, ...)
        
  # S3 method for aodql
anova(object, ...)
  # S3 method for aodql
coef(object, ...)
  # S3 method for aodql
deviance(object, ...)
  # S3 method for aodql
df.residual(object, ...)
  # S3 method for aodql
fitted(object, ...)
  # S3 method for aodql
logLik(object, ...)
  # S3 method for aodql
predict(object, ...)
  # S3 method for aodql
print(x, ...)
  # S3 method for aodql
residuals(object, ...)
  # S3 method for aodql
summary(object, ...)
  # S3 method for aodql
vcov(object, ...)
Arguments
formula

A formula for the mean \(\mu\), defining the parameter vector \(b\) (see details). For binomial-type models, the left-hand side of the formula must be of the form cbind(m, n - m) ~ ... where the fitted proportion is m/n. For Poisson-type models, the left-hand side of the formula must be of the form m ~ ... where the fitted count is m. To fit a rate, argument offset must be used in the right-hand side of the formula (see examples).

data

A data frame containing the response (m and, optionnally, n) and the explanatory variable(s).

family

Define the model which is fitted: “qbin” for binomial-type models and “qpois” for Poisson-type models.

link

For binomial-type models only. Define the link function \(g\) for the mean \(\mu\): “cloglog”, “logit” (default) or “probit”. For Poisson-type models, link is automatically set to “log”.

method

For function aodql, define the statistics used for the moment estimation of \(phi\); legal values are “chisq” (default) for the chi-squared statistics or “dev” for the deviance statistics.

phi

An optional value defining the over-dispersion parameter \(\Phi\) if it is set as constant. Default to NULL (in that case, \(\Phi\) is estimated).

tol

A positive scalar (default to 0.001). The algorithm stops at iteration \(r + 1\) when the condition \(\chi{^2}[r+1] - \chi{^2}[r] <= tol\) is met by the \(\chi^2\) statistics .

Further arguments to passed to the appropriate functions.

object

An object of class “aodql”.

x

An object of class “aodql”.

Details

Binomial-type models

For a given cluster \((n, m)\), the model is

$$m | \lambda,n \sim Binomial(n, \lambda)$$

where \(\lambda\) follows a random variable of mean \(E[\lambda] = \mu\) and variance \(Var[\lambda] = \Phi * \mu * (1 - \mu)\). The marginal mean and variance of \(m\) are

$$E[m] = n * \mu$$

$$Var[m] = n * \mu * (1 - \mu) * (1 + (n - 1) * \Phi)$$

The response in aodql is \(y = m/n\). The mean is \(E[y] = \mu\), defined such as \(\mu = g^{-1}(X * b) = g^{-1}(\nu)\), where \(g\) is the link function, \(X\) is a design-matrix, \(b\) a vector of fixed effects and \(\nu = X * b\) is the corresponding linear predictor. The variance is \(Var[y] = (1 / n) * \mu * (1 - \mu) * (1 + (n - 1) * \Phi)\).

Poisson-type models

------ Simple counts (model with no offset)

For a given cluster \((m)\), the model is

$$y | \lambda \sim Poisson(\lambda)$$

where \(\lambda\) follows a random distribution of mean \(\mu\) and variance \(\Phi * \mu^2\). The mean and variance of the marginal distribution of \(m\) are

$$E[m] = \mu$$

$$Var[m] = \mu + \Phi * \mu^2$$

The response in aodql is \(y = m\). The mean is \(E[y] = \mu\), defined such as \(\mu = exp(X * b) = exp(\nu)\). The variance is \(Var[y] = \mu + \Phi * \mu^2\).

------ Rates (model with offset)

For a given cluster \((n, m)\), the model is

$$m | \lambda,n \sim Poisson(\lambda)$$

where \(\lambda\) follows the same random distribution as for the case with no offset. The marginal mean and variance are

$$E[m | n] = \mu$$

$$Var[m | n] = \mu + \Phi * \mu^2$$

The response in aodql is \(y = m\). The mean is \(E[y] = \mu\), defined such as \(\mu = exp(X * b + log(n)) = exp(\nu + log(n)) = exp(\eta)\), where \(log(n)\) is the offset. The variance is \(Var[y] = \mu + \Phi * \mu^2\).

Other details

Vector \(b\) and parameter \(\Phi\) are estimated iteratively, using procedures referred to as "Model I" in Williams (1982) for binomial-type models, and "Procedure II" in Breslow (1984) for Poisson-type models.

Iterations are as follows. Quasi-likelihood estimating equations (McCullagh & Nelder, 1989) are used to estimate \(b\) (using function glm and its weights argument), \(\Phi\) being set to a constant value. Then, \(\Phi\) is calculated by the moment estimator, obtained by equalizing the goodness-of-fit statistic (chi-squared X2 or deviance D) of the model to its degrees of freedom. Parameter \(\Phi\) can be set as constant, using argument phi. In that case, only \(b\) is estimated.

Value

An object of class aodql, printed and summarized by various functions.

References

Breslow, N.E., 1984. Extra-Poisson variation in log-linear models. Appl. Statist. 33, 38-44. Moore, D.F., 1987, Modelling the extraneous variance in the presence of extra-binomial variation. Appl. Statist. 36, 8-14. Moore, D.F., Tsiatis, A., 1991. Robust estimation of the variance in moment methods for extra-binomial and extra-poisson variation. Biometrics 47, 383-401. McCullagh, P., Nelder, J. A., 1989, 2nd ed. Generalized linear models. New York, USA: Chapman and Hall. Williams, D.A., 1982, Extra-binomial variation in logistic linear models. Appl. Statist. 31, 144-148.

See Also

glm

Aliases
  • aodql
  • anova.aodql
  • coef.aodql
  • deviance.aodql
  • df.residual.aodql
  • fitted.aodql
  • logLik.aodql
  • predict.aodql
  • print.aodql
  • residuals.aodql
  • summary.aodql
  • vcov.aodql
Examples
# NOT RUN {
#------ Binomial-type models

data(orob2)
fm <- aodql(cbind(m, n - m) ~ seed, data = orob2, family = "qbin")
coef(fm)
vcov(fm)
summary(fm)
# chi2 tests of the seed factor in fm
wald.test(b = coef(fm), varb = vcov(fm), Terms = 2)

# chi-2 vs. deviance statistic to estimate phi
fm1 <- aodql(cbind(m, n - m) ~ seed + root, data = orob2, family = "qbin")
fm2 <- aodql(cbind(m, n - m) ~ seed + root, data = orob2, family = "qbin", method = "dev")
coef(fm1)
coef(fm2)
fm1$phi
fm2$phi
vcov(fm1)
vcov(fm2)
gof(fm1)
gof(fm2)

# estimate with fixed phi
fm <- aodql(cbind(m, n - m) ~ seed, data = orob2, family = "qbin", phi = 0.05)
coef(fm)
vcov(fm)
summary(fm)

#------ Poisson-type models

data(salmonella)
fm <- aodql(m ~ log(dose + 10) + dose, data = salmonella, family = "qpois")
coef(fm)
vcov(fm)
summary(fm)
# chi2 tests of the "log(dose + 10) + dose" factors
wald.test(b = coef(fm), varb = vcov(fm), Terms = 2:3)

# chi-2 vs. deviance statistic to estimate phi
fm1 <- aodql(m ~ log(dose + 10) + dose, data = salmonella, family = "qpois")
fm2 <- aodql(m ~ log(dose + 10) + dose, data = salmonella, family = "qpois", method = "dev")
coef(fm1)
coef(fm2)
fm1$phi
fm2$phi
vcov(fm1)
vcov(fm2)
gof(fm1)
gof(fm2)

# estimate with fixed phi
fm <- aodql(m ~ log(dose + 10) + dose, data = salmonella, family = "qpois", phi = 0.05)
coef(fm)
vcov(fm)
summary(fm)

# modelling a rate
data(dja)
# rate "m / trisk"
fm <- aodql(formula = m ~ group + offset(log(trisk)), data = dja, family = "qpois")
summary(fm)

# }
Documentation reproduced from package aods3, version 0.4-1, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.