Learn R Programming

HelpersMG (version 5.1)

compare_BIC: Compares the BIC of several outputs

Description

This function is used to compare the BIC of several outputs obtained with the same data but with different set of parameters. Each object must have associated logLik() method with df and nobs attributes. BIC for object x will be calculated as 2*factor.value*sum(logLik(x))+sum(attributes(logLik(x))$df)*log(attributes(logLik(x))$nobs)). When several data (i..n) are included, the global BIC is calculated as: 2*factor.value*sum(logLik(x)) for i..n+sum(attributes(logLik(x))$df) for i..n*log(attributes(logLik(x))$nobs for i..n))

Usage

compare_BIC(
  ...,
  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 BIC.

silent

If TRUE, nothing is displayed.

FUN

Function used to show values

Value

A list with DeltaBIC and Akaike weight for the models.

Details

compare_BIC compares the BIC of several outputs obtained with the same data.

See Also

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

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_BIC(linear=m1, log=m2, factor.value=-1)
# 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_BIC(separate=list(m1, m1_2), grouped=m1_grouped, factor.value=-1)
# }

Run the code above in your browser using DataLab