我试过在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
(尚未检查您的答案):您不一定做错任何事情,因为可能性实际上仅定义为乘数常数;两个人可以计算对数似然并获得不同的数字(但对数似然的差异是相同的)。
—
Glen_b-恢复莫妮卡2014年
我认为,Hong Oois的答案与此问题有关。函数
—
COOLSerdash
AIC
使用的公式是-2*as.numeric(logLik(lm_mtcars))+2*(length(lm_mtcars$coefficients)+1)
。
luciano:该公式@COOLSerdash中的“ +1”表示源自方差参数项。还要注意,该函数
—
Glen_b -Reinstate Monica 2014年
logLik
说,对于lm
模型来说,它包括“所有常量” ...所以log(2*pi)
在某处会有一个
@Glen_b:为什么说似然只定义为一个乘法常数?毕竟,在比较来自不同分布族的非嵌套模型(例如,使用AIC或使用Cox检验)时,您需要记住该常数。
—
Scortchi-恢复莫妮卡
@Scortchi的定义不是我的!您将不得不使用RAFisher。我认为(1921)从一开始就是这样。至少在连续情况下,仍以这种方式进行定义,例如,请参见此处的 “更精确地”开头的句子。
—
Glen_b-恢复莫妮卡2014年