Learn R Programming

HelpersMG (version 5.1)

compare_AIC: Compares the AIC of several outputs

Description

This function is used to compare the AIC of several outputs obtained with the same data but with different set of parameters. The parameters must be lists with $aic or $AIC or $value and $par elements or if AIC(element) is defined. if $value and $par are present in the object, the AIC is calculated as 2*factor.value*value+2*length(par). If $value is -log(likeihood), then factor.value must be 1 and if $value is log(likeihood), then factor.value must be -1. If several objects are within the same list, their AIC are summed. For example, compare_AIC(g1=list(group), g2=list(separe1, separe2)) can be used to compare a single model onto two different sets of data against each set of data fited with its own set of parameters. Take a look at ICtab in package bbmle which is similar.

Usage

compare_AIC(
  ...,
  factor.value = 1,
  silent = FALSE,
  FUN = function(x) specify_decimal(x, decimals = 2)
)

Arguments

...

Successive results to be compared as lists.

factor.value

The $value of the list object is multiplied by factor.value to calculate AIC.

silent

If TRUE, nothing is displayed.

FUN

Function used to show values

Value

A list with DeltaAIC and Akaike weight for the models.

Details

compare_AIC compares the AIC of several outputs obtained with the same data.

See Also

Other AIC: ExtractAIC.glm(), FormatCompareAIC(), compare_AICc(), compare_BIC()

Examples

Run this code
# NOT RUN {
library("HelpersMG")
# Here two different models are fitted
x <- 1:30
y <- rnorm(30, 10, 2)+log(x)
plot(x, y)
d <- data.frame(x=x, y=y)
m1 <- lm(y ~ x, data=d)
m2 <- lm(y ~ log(x), data=d)
compare_AIC(linear=m1, log=m2)
# Here test if two datasets can be modeled with a single model
x2 <- 1:30
y2 <- rnorm(30, 15, 2)+log(x2)
plot(x, y, ylim=c(5, 25))
plot_add(x2, y2, col="red")
d2 <- data.frame(x=x2, y=y2)
m1_2 <- lm(y ~ x, data=d2)
x_grouped <- c(x, x2)
y_grouped <- c(y, y2)
d_grouped <- data.frame(x=x_grouped, y=y_grouped)
m1_grouped <- lm(y ~ x, data=d_grouped)
compare_AIC(separate=list(m1, m1_2), grouped=m1_grouped)
# }

Run the code above in your browser using DataLab