QAIC | R Documentation |
Calculate a modification of Akaike's Information Criterion for overdispersed
count data (or its version corrected for small sample,
“quasi-AIC_{c}
”), for one or several fitted model objects.
QAIC(object, ..., chat, k = 2, REML = NULL)
QAICc(object, ..., chat, k = 2, REML = NULL)
object |
a fitted model object. |
... |
optionally, more fitted model objects. |
chat |
|
k |
the ‘penalty’ per parameter. |
REML |
optional logical value, passed to the |
If only one object is provided, returns a numeric value with the
corresponding QAIC or QAIC_{c}
; otherwise returns a
data.frame
with rows corresponding to the objects.
\hat{c}
is the dispersion parameter estimated from the global
model, and can be calculated by dividing model's deviance by the number of
residual degrees of freedom.
In calculation of QAIC, the number of model parameters is increased by 1 to
account for estimating the overdispersion parameter. Without overdispersion,
\hat{c} = 1
and QAIC is equal to AIC.
Note that glm
does not compute maximum-likelihood estimates in models
within the quasi- family. In case it is justified, it can be worked
around by ‘borrowing’ the aic
element from the corresponding
‘non-quasi’ family (see ‘Example’).
Consider using negative binomial family with overdispersed count data.
Kamil Bartoń
AICc
, quasi
family used for models with
over-dispersion.
Tests for overdispersion in GLM[M]: check_overdispersion
.
options(na.action = "na.fail")
# Based on "example(predict.glm)", with one number changed to create
# overdispersion
budworm <- data.frame(
ldose = rep(0:5, 2), sex = factor(rep(c("M", "F"), c(6, 6))),
numdead = c(10, 4, 9, 12, 18, 20, 0, 2, 6, 10, 12, 16))
budworm$SF = cbind(numdead = budworm$numdead,
numalive = 20 - budworm$numdead)
budworm.lg <- glm(SF ~ sex*ldose, data = budworm, family = binomial)
(chat <- deviance(budworm.lg) / df.residual(budworm.lg))
dredge(budworm.lg, rank = "QAIC", chat = chat)
dredge(budworm.lg, rank = "AIC")
## Not run:
# A 'hacked' constructor for quasibinomial family object that allows for
# ML estimation
hacked.quasibinomial <- function(...) {
res <- quasibinomial(...)
res$aic <- binomial(...)$aic
res
}
QAIC(update(budworm.lg, family = hacked.quasibinomial), chat = chat)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.