私の一般的な理解は、AICがモデルの適合度とモデルの複雑さの間のトレードオフを扱うことです。
=モデル内のパラメーターの数
=尤度
ベイジアン情報基準BICは、AICと密接に関連しています。AICは、BICよりも少ない数のパラメーターにペナルティを科します。これらの2つは歴史的にどこでも使用されていることがわかります。しかし、一般化された相互検証(GCV)は私にとって新しいものです。GCVとBICまたはAICの関係 リッジのようなパネル化された回帰のペナルティ用語の選択で、これらの基準が一緒にまたは別々にどのように使用されますか?
編集: ここに考えて議論する例があります:
require(lasso2)
data(Prostate)
require(rms)
ridgefits = ols(lpsa~lcavol+lweight+age+lbph+svi+lcp+gleason+pgg45,
method="qr", data=Prostate,se.fit = TRUE, x=TRUE, y=TRUE)
p <- pentrace(ridgefits, seq(0,1,by=.01))
effective.df(ridgefits,p)
out <- p$results.all
par(mfrow=c(3,2))
plot(out$df, out$aic, col = "blue", type = "l", ylab = "AIC", xlab = "df" )
plot(out$df, out$bic, col = "green4", type = "l", ylab = "BIC", xlab = "df" )
plot(out$penalty, out$df, type = "l", col = "red",
xlab = expression(paste(lambda)), ylab = "df" )
plot(out$penalty, out$aic, col = "blue", type = "l",
ylab = "AIC", xlab = expression(paste(lambda)) )
plot(out$penalty, out$bic, col = "green4", type = "l", ylab = "BIC",
xlab= expression(paste(lambda))
require(glmnet)
y <- matrix(Prostate$lpsa, ncol = 1)
x <- as.matrix (Prostate[,- length(Prostate)])
cv <- cv.glmnet(x,y,alpha=1,nfolds=10)
plot(cv$lambda, cv$cvm, col = "red", type = "l",
ylab = "CVM", xlab= expression(paste(lambda))