R で AIC/BIC の結果を理解しようとしています。何らかの理由で、R は推定されるパラメーターの数に 1 を追加します。2 * p - 2 * logLik
したがって、R は(ガウスの場合logLik
は残差二乗和) とは異なる式を使用します。実際には以下を使用します: 2 * (p + 1) - 2 * logLik
.
調査の結果、問題が に関連していることがわかりましたstats:::logLik.lm()
。
> stats:::logLik.lm ## truncated R function body
## ...
## attr(val, "df") <- p + 1
## ...
実際の例 (R の組み込みデータセットを使用trees
) として、以下を検討してください。
x <- lm(Height ~ Girth, trees) ## a model with 2 parameters
logLik(x)
## 'log Lik.' -96.01663 (df=3)
これは本当に不可解です。誰でも理由を知っていますか?
Edit1: glm
@crayfish44 による例
model.g <- glm(dist ~ speed, cars, family=gaussian)
logLik(model.g) # df=3
model.p <- glm(dist ~ speed, cars, family=poisson)
logLik(model.p) #df=2
model.G <- glm(dist ~ speed, cars, family=Gamma)
logLik(model.G) #df=3
Edit2: メソッドlogLik
> methods(logLik)
[1] logLik.Arima* logLik.glm* logLik.lm* logLik.logLik* logLik.nls*