ICtab: Compute table of information criteria and auxiliary info

View source: R/IC.R

ICtabR Documentation

Compute table of information criteria and auxiliary info

Description

Computes information criteria for a series of models, optionally giving information about weights, differences between ICs, etc.

Usage

ICtab(..., type=c("AIC","BIC","AICc","qAIC","qAICc"),
    weights = FALSE, delta = TRUE, base = FALSE,
logLik=FALSE, sort = TRUE,
nobs=NULL, dispersion = 1, mnames, k = 2)
AICtab(...,mnames)
BICtab(...,mnames)
AICctab(...,mnames)
## S3 method for class 'ICtab'
print(x,...,min.weight)

Arguments

...

a list of (logLik or?) mle objects; in the case of AICtab etc., could also include other arguments to ICtab

type

specify information criterion to use

base

(logical) include base IC (and log-likelihood) values?

weights

(logical) compute IC weights?

logLik

(logical) include log-likelihoods in the table?

delta

(logical) compute differences among ICs (and log-likelihoods)?

sort

(logical) sort ICs in increasing order?

nobs

(integer) number of observations: required for type="BIC" or type="AICc" unless objects have a nobs method

dispersion

overdispersion estimate, for computing qAIC: required for type="qAIC" or type="qAICc" unless objects have a "dispersion" attribute

mnames

names for table rows: defaults to names of objects passed

k

penalty term (largely unused: left at default of 2)

x

an ICtab object

min.weight

minimum weight for exact reporting (smaller values will be reported as "<[min.weight]")

Value

A data frame containing:

IC

information criterion

df

degrees of freedom/number of parameters

dIC

difference in IC from minimum-IC model

weights

exp(-dIC/2)/sum(exp(-dIC/2))

Note

(1) The print method uses sensible defaults; all ICs are rounded to the nearest 0.1, and IC weights are printed using format.pval to print an inequality for values <0.001. (2) The computation of degrees of freedom/number of parameters (e.g., whether variance parameters are included in the total) varies enormously between packages. As long as the df computations for a given set of models is consistent, differences don't matter, but one needs to be careful with log likelihoods and models taken from different packages. If necessary one can change the degrees of freedom manually by saying attr(obj,"df") <- df.new, where df.new is the desired number of parameters. (3) Defaults have changed to sort=TRUE, base=FALSE, delta=TRUE, to match my conviction that it rarely makes sense to report the overall values of information criteria

Author(s)

Ben Bolker

References

Burnham and Anderson 2002

Examples

  set.seed(101)
  d <- data.frame(x=1:20,y=rpois(20,lambda=2))
  m0 <- glm(y~1,data=d)
  m1 <- update(m0,.~x)
  m2 <- update(m0,.~poly(x,2))
  AICtab(m0,m1,m2,mnames=LETTERS[1:3])
  AICtab(m0,m1,m2,base=TRUE,logLik=TRUE)
  AICtab(m0,m1,m2,logLik=TRUE)
  AICctab(m0,m1,m2,weights=TRUE)
  print(AICctab(m0,m1,m2,weights=TRUE),min.weight=0.1)

bbmle documentation built on May 29, 2024, 11:02 a.m.