Tôi đã thử tính AIC của hồi quy tuyến tính trong R nhưng không sử dụng AIC
hàm, như thế này:
lm_mtcars <- lm(mpg ~ drat, mtcars)
nrow(mtcars)*(log((sum(lm_mtcars$residuals^2)/nrow(mtcars))))+(length(lm_mtcars$coefficients)*2)
[1] 97.98786
Tuy nhiên, AIC
đưa ra một giá trị khác:
AIC(lm_mtcars)
[1] 190.7999
Ai đó có thể cho tôi biết những gì tôi đang làm sai?
AIC
sử dụng là -2*as.numeric(logLik(lm_mtcars))+2*(length(lm_mtcars$coefficients)+1)
.
logLik
nói rằng đối với lm
các mô hình, nó bao gồm 'tất cả các hằng số' ... vì vậy sẽ có một cái log(2*pi)
ở đó ở đâu đó