ความเข้าใจทั่วไปของฉันคือAICเกี่ยวข้องกับการแลกเปลี่ยนระหว่างความดีงามของแบบและความซับซ้อนของแบบจำลอง
= จำนวนพารามิเตอร์ในโมเดล
= ความเป็นไปได้
เกณฑ์ข้อมูล Bayesian BICนั้นเกี่ยวข้องกับ AIC อย่างมาก AIC จะลงโทษจำนวนพารามิเตอร์ที่น้อยกว่า BIC ฉันเห็นว่ามีการใช้สองสิ่งนี้ทุกที่ในอดีต แต่การตรวจสอบข้ามโดยทั่วไป (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))