Bu sitenin başka bir yerindeki bir soruda , AIC'nin bir kez dışarıda bırakma (LOO) çapraz onaylamaya eşdeğer olduğunu ve BIC'nin K-kat çapraz onaylamaya eşdeğer olduğunu belirtti. Bunu R'de ampirik olarak göstermenin, LOO ve K-katlamada yer alan tekniklerin AIC ve BIC değerlerine eşdeğer olduğu açık bir şekilde gösterilebileceğini göstermenin bir yolu var mı? İyi yorumlanmış kod bu konuda yardımcı olacaktır. Ek olarak, BIC'in gösterilmesinde lme4 paketini kullanınız. Örnek veri seti için aşağıya bakın ...
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))
Önceki yorumlara göre, aşağıda AIC ve BIC’in aynı fikirde olmadığı, 1 ile 10000 arasında bir tohum listesi hazırladım. Bu, mevcut tohumlar üzerinden yapılan basit bir arama ile yapıldı, ancak eğer birisi bu iki bilgi kriterinden farklı cevaplar üretebilecek bir veri üretme yolu sağlayabilirse, özellikle bilgilendirici olabilir.
notable.seeds <- read.csv("http://student.ucr.edu/~rpier001/res.csv")$seed
Bunun yanında, AIC ve BIC’in AIC ve BIC’in mutlak farklılıklarının toplamı olarak ölçmeye çalıştığım AIC ve BIC’in kabul etmediği ölçüde bu tohumları sipariş etmeyi düşündüm. Örneğin,
AICDiff <- AIC(bad.model) - AIC(good.model)
BICDiff <- BIC(logLik(bad.model)) - BIC(logLik(good.model))
disagreement <- sum(abs(c(AICDiff,BICDiff)))
Anlaşmazlık ölçümümün ancak gözlemler kayda değer olduğunda geçerli olduğu durumlarda. Örneğin,
are.diff <- sum(sign(c(AICDiff,BICDiff)))
notable <- ifelse(are.diff == 0 & AICDiff != 0,TRUE,FALSE)
Bununla birlikte, AIC ve BIC'in aynı fikirde olmadığı durumlarda, hesaplanan anlaşmazlık değeri her zaman aynıydı (ve örneklem büyüklüğünün bir işlevidir). AIC ve BIC'in nasıl hesaplandığına baktığımda, bunun neden hesaplamalı olabileceğini görebiliyorum, ancak bunun kavramsal olarak neden böyle olacağından emin değilim. Birisi bu konuyu da aydınlatabilirse, memnun olurum.