投げ縄回帰モデルのAICとBICを計算することはできますか?


31

投げ縄回帰モデルや、パラメータが部分的にしか方程式に入力されていない他の正規化モデルのAICまたはBIC値を計算することは可能ですか?自由度をどのように決定しますか?

Rを使用して、投げ縄回帰モデルをパッケージのglmnet()関数に適合glmnetさせています。モデルのAIC値とBIC値を計算する方法を知りたいです。このようにして、値を正則化なしで適合するモデルと比較する場合があります。これは可能ですか?


1
はい、これを行うことができますが、ほとんどの場合、適切な修正を導き出す必要があります。修正は、このペーパーncbi.nlm.nih.gov/pmc/articles/PMC2629611で罰則付き有限混合モデリングのコンテキストで導出されますが、他の罰則付きモデルでも同様の議論で十分です。
マクロ

回答:



10

glmnetモデルのAICとBICを計算する方法に多くの苦労していました。しかし、かなり多くの検索を行った後、Googleの結果の3ページ目に答えが見つかりました。見つけることができますここに。私は私だけができないと信じているので、将来の読者のためにここに投稿しています。

最後に、AICとBICを次の方法で実装しました。

fit <- glmnet(x, y, family = "multinomial") 

tLL <- fit$nulldev - deviance(fit)
k <- fit$df
n <- fit$nobs
AICc <- -tLL+2*k+2*k*(k+1)/(n-k-1)
AICc

BIC<-log(n)*k - tLL
BIC

2

johnnyheinekenが参照するリンクで、著者は次のように述べています。

glmnetオブジェクト(dev.ratio、nulldev)から利用できる2つの量では、AICcを計算するために必要なモデルの尤度を取得するには不十分であると思います。尤度(null)、尤度(model)、尤度(saturated)の3つの未知数に2つの方程式があります。尤度(null)から尤度(model)を取得できません。

2つのモデル間でAICを比較している場合、ヌルの逸脱を分離できないという事実は重要ではないように思えます。不等式の「両側」に存在するため、どちらのモデルがより低いAICを持たなければならないかを示します。これは2つのことに依存しています。

  1. データは両方のモデルで同じです(とにかくAIC比較に必要)
  2. 私はStat101や高校の代数から何かを忘れていません(現在のカフェイン摂取量を考えると強い仮定です)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.