Ma compréhension générale est que l' AIC traite de l'arbitrage entre la qualité de l'ajustement du modèle et la complexité du modèle.
= nombre de paramètres dans le modèle
= vraisemblance
Le critère d'information bayésien BIC est étroitement lié à l'AIC. L'AIC pénalise moins fortement le nombre de paramètres que le BIC. Je peux voir que ces deux sont utilisés partout historiquement. Mais la validation croisée généralisée (GCV) est nouvelle pour moi. Comment GCV peut-il être lié à BIC ou AIC? Comment ces critères, ensemble ou séparés, sont-ils utilisés dans la sélection du terme de pénalité dans la régression panélisée comme la crête?
Edit: Voici un exemple pour réfléchir et discuter:
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))
cross-validation
lasso
aic
ridge-regression
bic
Ram Sharma
la source
la source
rms
package Reffective.df
et mon livre Regression Modeling Strategies. L'idée principale, de Robert Gray, est que vous considérez la matrice de covariance sans pénalisation par rapport à la matrice de covariance avec pénalisation. La somme de la diagonale d'une sorte de rapport de ces deux vous donne le df effectifglmnet
(chacun avec un paramètre lambda différent) et de calculer l'AIC pour chaque modèle, puis de choisir la lambda correspondant au modèle avec l'AIC le plus bas? Il s'agit essentiellement d'une autre façon de choisir le paramètre lambda, autre que l'utilisation de la validation croisée. Ai-je raison?rms
package où quelques-unes des fonctions d'ajustement utilisées avec leeffective.df
calcul du nombre effectif de paramètres afin que vous puissiez obtenir un AIC efficace. Cela rapproche ce que vous obtenez de la validation croisée avec CV'ing. Voir ceciMes propres réflexions à ce sujet ne sont pas très rassemblées, mais voici une collection de points dont je suis conscient qui pourraient aider.
L'interprétation bayésienne de l'AIC est qu'il s'agit d'une approximation corrigée du biais de la densité prédictive logarithmique attendue, c'est-à-dire l'erreur de prédiction hors échantillon. Cette interprétation est bien présentée dans Gelman, Hwang et Vehtari (2013) et également brièvement discutée sur le blog de Gelman . La validation croisée est une approximation différente de la même chose.
Pendant ce temps, BIC est une approximation du « facteur Bayes » sous un a priori particulier (bien expliqué dans Raftery, 1999 ). Il s'agit presque de l'analogue bayésien d'un rapport de vraisemblance.
Ce qui est intéressant avec AIC et BIC, c'est que la régression pénalisée a également une interprétation bayésienne, par exemple LASSO est l'estimation MAP de la régression bayésienne avec des a priori indépendants de Laplace sur les coefficients. Un peu plus d'informations dans cette question précédente et beaucoup plus dans Kyung, Gill, Ghosh et Casella (2010) .
Cela me suggère que vous pourriez obtenir un certain kilométrage, ou au moins une conception de recherche plus cohérente, en pensant et en modélisant en termes bayésiens. Je sais que c'est un peu inhabituel dans de nombreuses applications comme l'apprentissage automatique de grande dimension, et aussi quelque peu éloigné des interprétations géométriques et fonction de perte plus interprétables de la régularisation. À tout le moins, je me fie beaucoup à l'interprétation bayésienne pour choisir entre AIC et BIC et expliquer la différence aux profanes, aux collègues / patrons à orientation non statistique, etc.
Je sais que cela ne parle pas beaucoup de la validation croisée. Une bonne chose à propos de l'inférence bayésienne est qu'elle produit des distributions approximatives de vos paramètres, plutôt que des estimations ponctuelles. Je pense que cela peut être utilisé pour contourner la question de la mesure de l'incertitude concernant l'erreur de prédiction. Cependant, si vous parlez d'utiliser CV pour estimer les hyperparamètres, par exempleλ pour LASSO, je m'en remets à Gelman :
la source