AIC、BIC、GCV:ペナルティ付き回帰法で決定を下すのに最適なものは何ですか?


14

私の一般的な理解は、AICがモデルの適合度とモデルの複雑さの間のトレードオフを扱うことです。

AC=2k2lnL

=モデル内のパラメーターの数k

=尤度L

ベイジアン情報基準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))

ここに画像の説明を入力してください

回答:


10

λ


2
優れた実用的な解釈であり、ベイズの文脈でも意味があります。「理論的な」ベースの尤度比と「理論的な」予測エラー。
シャドウトーカー14

3
おそらく、正規化されたソリューションの「効果的な自由度」をAICでどのように計算して使用できるかについて詳しく説明すると役立つでしょう。
ブライアンボーチャーズ14

2
R rmsパッケージeffective.df関数のコードと私の著書Regression Modeling Strategiesを参照してください。Robert Grayの主なアイデアは、ペナルティなしの共分散行列とペナルティありの共分散行列を考慮することです。これら2つの比の一種の対角線の合計は、効果的なdfを与えます
フランクハレル14

@FrankHarrell:それで、あなたが正しく理解できたら- glmnet(それぞれ異なるラムダパラメータを持つ)モデルの束を計算し、各モデルのAICを計算してから、最も低いAICを持つモデルに対応するラムダを選択してもかまいませんか?これは基本的に、クロス検証を使用する以外の、ラムダパラメーターを選択する別の方法です。私は正しいですか?
コーレル

1
私はrmsパッケージのコンテキストで書いていました。ここでは、いくつかのフィッティング関数を使用しeffective.dfて有効なパラメーターの数を計算すると、効果的なAICを取得できます。これは、CV'ingとの相互検証から得られるものに近似します。これを
フランクハレル

10

これについての私自身の考えはあまり収集されていませんが、ここに役立つことがわかっているポイントのコレクションがあります。


AICのベイジアン解釈は、予想される対数点ごとの予測密度、つまりサンプル外予測誤差に対するバイアス補正された近似であるというものです。この解釈は、Gelman、Hwang、およびVehtari(2013)でうまくレイアウトされており、Gelmanのブログでも簡単に説明されています。交差検証は、同じものに対する異なる近似です。

一方、BICは特定の事前分布の下での「ベイズ因子」の近似値です(1999年のRafteryでうまく説明されています)。これはほとんど尤度比のベイジアン類似物です。

AICとBICの興味深い点は、ペナルティ付き回帰にベイジアン解釈があることです。たとえば、LASSOは、係数に独立したラプラス事前分布があるベイジアン回帰のMAP推定です。この前の質問にはもう少し情報があり、Kyung、Gill、Ghosh、Casella(2010)にはさらに多くの情報があります。

これは、ベイジアンの用語で考えてモデリングすることで、ある程度のマイレージ、または少なくともより一貫した研究デザインを得ることができることを示唆しています。これは、高次元の機械学習のような多くのアプリケーションでは少し珍しいことであり、正則化のより解釈可能な幾何学的および損失関数の解釈からは多少削除されています。少なくとも、ベイズの解釈に大きく依存して、AICとBICを決定し、素人、非統計的指向の同僚/上司などに違いを説明します。

λ

交差検証によるチューニングパラメーターの選択は、階層型ベイズの特定の実装にすぎません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.