Próbowałem obliczyć AIC regresji liniowej w R, ale bez użycia AIC
funkcji:
lm_mtcars <- lm(mpg ~ drat, mtcars)
nrow(mtcars)*(log((sum(lm_mtcars$residuals^2)/nrow(mtcars))))+(length(lm_mtcars$coefficients)*2)
[1] 97.98786
Jednak AIC
daje inną wartość:
AIC(lm_mtcars)
[1] 190.7999
Czy ktoś mógłby mi powiedzieć, co robię źle?
r
aic
information-theory
luciano
źródło
źródło
AIC
używana przez tę funkcję to-2*as.numeric(logLik(lm_mtcars))+2*(length(lm_mtcars$coefficients)+1)
.logLik
mówi, że dlalm
modeli zawiera „wszystkie stałe” ... więclog(2*pi)
gdzieś tam będzieOdpowiedzi:
Zauważ, że pomoc dla funkcjiσ2
logLik
w R mówi, że dlalm
modeli zawiera ona „wszystkie stałe” ... więc gdzieś tam będzielog(2*pi)
, a także inny stały termin na wykładnik prawdopodobieństwa. Nie można również zapomnieć o tym, że jest parametrem.ale zauważ, że dla modelu z 1 zmienną niezależną p = 3 (współczynnik x, stała i )σ2
Co oznacza, że tak otrzymujesz ich odpowiedź:
źródło
AIC
Funkcja dajeźródło