У запитанні в іншому місці на цьому веб-сайті кілька відповідей згадували, що АПК еквівалентна перехресній валідації "відхід" (LOO) і що BIC еквівалентна перехресній валідації K-кратного. Чи є спосіб емпірично продемонструвати це в R таким чином, щоб методи, які беруть участь у LOO та K-кратному рівні, були зрозумілі та продемонстровані як еквівалентні значенням AIC та BIC? Добре коментований код був би корисний у цьому плані. Крім того, демонструючи BIC, будь ласка, використовуйте пакет lme4. Нижче див. Зразок набору даних ...
library(lme4) #for the BIC function
generate.data <- function(seed)
{
set.seed(seed) #Set a seed so the results are consistent (I hope)
a <- rnorm(60) #predictor
b <- rnorm(60) #predictor
c <- rnorm(60) #predictor
y <- rnorm(60)*3.5+a+b #the outcome is really a function of predictor a and b but not predictor c
data <- data.frame(y,a,b,c)
return(data)
}
data <- generate.data(76)
good.model <- lm(y ~ a+b,data=data)
bad.model <- lm(y ~ a+b+c,data=data)
AIC(good.model)
BIC(logLik(good.model))
AIC(bad.model)
BIC(logLik(bad.model))
Згідно з попередніми коментарями, нижче я надав перелік насіння від 1 до 10000, в якому AIC та BIC не згодні. Це було зроблено шляхом простого пошуку через доступні насіння, але якщо хтось міг би запропонувати спосіб генерувати дані, які, як правило, дають різні відповіді з цих двох інформаційних критеріїв, це може бути особливо інформативно.
notable.seeds <- read.csv("http://student.ucr.edu/~rpier001/res.csv")$seed
Як осторонь я подумав про впорядкування цих насінин у тій мірі, в якій AIC та BIC не згодні, що я намагався кількісно оцінити як суму абсолютних різниць AIC та BIC. Наприклад,
AICDiff <- AIC(bad.model) - AIC(good.model)
BICDiff <- BIC(logLik(bad.model)) - BIC(logLik(good.model))
disagreement <- sum(abs(c(AICDiff,BICDiff)))
де моя метрика розбіжності застосовується лише тоді, коли спостереження помітні. Наприклад,
are.diff <- sum(sign(c(AICDiff,BICDiff)))
notable <- ifelse(are.diff == 0 & AICDiff != 0,TRUE,FALSE)
Однак у випадках, коли AIC та BIC не погоджувались, обчислена величина розбіжності завжди була однаковою (і є функцією розміру вибірки). Озираючись на те, як розраховуються AIC та BIC, я бачу, чому це може бути обчислено, але я не впевнений, чому це було б так концептуально. Якби хтось міг також з’ясувати це питання, я би вдячний.