Learn R Programming

MuMIn (version 1.48.4)

QIC: QIC and quasi-Likelihood for GEE

Description

Calculate quasi-likelihood under the independence model criterion (QIC) for Generalized Estimating Equations.

Usage

QIC(object, ..., typeR = FALSE)
QICu(object, ..., typeR = FALSE)
quasiLik(object, ...)

Value

If just one object is provided, returns a numeric value with the corresponding QIC; if more than one object are provided, returns a

data.frame with rows corresponding to the objects and one column representing QIC or QIC\(_{u}\).

Arguments

object

a fitted model object of class "gee", "geepack", "geem", "wgee", or "yags".

...

for QIC and QIC\(_{u}\), optionally more fitted model objects.

typeR

logical, whether to calculate QIC(R). QIC(R) is based on quasi-likelihood of a working correlation \(R\) model. Defaults to FALSE, and QIC(I) based on independence model is returned.

Author

Kamil Bartoń

References

Pan, W. 2001 Akaike's Information Criterion in Generalized Estimating Equations. Biometrics 57, 120--125

Hardin J. W., Hilbe, J. M. 2003 Generalized Estimating Equations. Chapman & Hall/CRC

See Also

Methods exist for gee (package gee), geeglm (geepack), geem (geeM), wgee (wgeesel, the package's QIC.gee function is used), and yags (yags on R-Forge). There is also a QIC function in packages MESS and geepack, returning some extra information (such as CIC and QICc). yags and compar.gee from package ape both provide QIC values.

Examples

Run this code
 if(require(geepack)) { 

data(ohio)

fm1 <- geeglm(resp ~ age * smoke, id = id, data = ohio,
    family = binomial, corstr = "exchangeable", scale.fix = TRUE)
fm2 <- update(fm1, corstr = "ar1")
fm3 <- update(fm1, corstr = "unstructured")

# QIC function is also defined in 'geepack' but is returns a vector[6], so
# cannot be used as 'rank'. Either use `MuMIn::QIC` syntax or make a wrapper
# around `geepack::QIC`

QIC <- MuMIn::QIC
if (FALSE) {
QIC <- function(x) geepack::QIC(x)[1]
}

model.sel(fm1, fm2, fm3, rank = QIC)

#####
library(geepack)
library(MuMIn)

if (FALSE) {
# same result:
    dredge(fm1, m.lim = c(3, NA), rank = QIC, varying = list(
    corstr = list("exchangeable", "unstructured", "ar1")
    ))      
}
 } 

Run the code above in your browser using DataLab