AIC, BIC et GCV: quel est le meilleur pour prendre une décision dans les méthodes de régression pénalisées?

14

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.

UNEjeC=2k-2ln(L)

= nombre de paramètres dans le modèlek

= vraisemblanceL

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))

entrez la description de l'image ici

Ram Sharma
la source

Réponses:

10

λ

Frank Harrell
la source
2
Grande interprétation pratique, et aussi logique dans le contexte bayésien ... rapport de vraisemblance "théorique" vs erreur de prédiction "athéorique".
shadowtalker
3
Il serait probablement utile de préciser comment les "degrés de liberté effectifs" pour une solution régularisée peuvent être calculés et utilisés en AIC.
Brian Borchers
2
Voir le code dans la fonction de rmspackage R effective.dfet 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 effectif
Frank Harrell
@FrankHarrell: Donc, si je vous comprends bien - il est correct de calculer un tas de modèles glmnet(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?
Corel
1
J'écrivais dans le contexte du rmspackage où quelques-unes des fonctions d'ajustement utilisées avec le effective.dfcalcul 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 ceci
Frank Harrell
10

Mes 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 sélection d'un paramètre de réglage par validation croisée n'est qu'une implémentation particulière des Bayes hiérarchiques.

shadowtalker
la source