私はRの線形回帰のAICを計算しようとしましたが、次のAIC
ように関数を使用しませんでした:
lm_mtcars <- lm(mpg ~ drat, mtcars)
nrow(mtcars)*(log((sum(lm_mtcars$residuals^2)/nrow(mtcars))))+(length(lm_mtcars$coefficients)*2)
[1] 97.98786
ただし、AIC
異なる値を指定します。
AIC(lm_mtcars)
[1] 190.7999
誰かが私が間違っていることを教えてもらえますか?
5
(答えをまだチェックせずに):尤度は実際には乗法定数までしか定義されていないため、必ずしも間違ったことをしているわけではありません。2人で対数尤度を計算し、異なる数値を取得できます(ただし、対数尤度の違いは同じです)。
—
Glen_b -Reinstateモニカ
Hong Ooisの答えはこの質問に関連していると思います。関数が
—
COOLSerdash 14
AIC
使用する式はです-2*as.numeric(logLik(lm_mtcars))+2*(length(lm_mtcars$coefficients)+1)
。
luciano:その式の「+1」は@COOLSerdashが分散パラメーター項から生じることを指します。注また、機能があること
—
Glen_b -Reinstateモニカ
logLik
のためと言いlm
モデルそれはすべての定数'を含む...そうもあるかもしれませんlog(2*pi)
が、どこかで
@Glen_b:尤度が乗算定数までしか定義されていないのはなぜですか?結局のところ、さまざまな分布ファミリーのネストされていないモデルを比較する場合(AICまたはCoxテストなど)、その定数を覚えておく必要があります。
—
Scortchi -復活モニカ
@Scortchi定義は私のものではありません!RAFisherでそれを取り上げる必要があります。最初からそうだったと思う(1921)。少なくとも継続的な場合は、たとえば、「より正確に」始まる文で、ここを参照してください。
—
Glen_b -Reinstateモニカ