Answers:
我为如何为glmnet模型计算AIC和BIC付出了很多努力。但是,经过大量搜索,我在Google搜索结果的第三页上找到了答案。可以在这里找到。我将其发布在这里供将来的读者阅读,因为我相信我不可能是唯一的一个。
最后,我通过以下方式实现了AIC和BIC:
fit <- glmnet(x, y, family = "multinomial")
tLL <- fit$nulldev - deviance(fit)
k <- fit$df
n <- fit$nobs
AICc <- -tLL+2*k+2*k*(k+1)/(n-k-1)
AICc
BIC<-log(n)*k - tLL
BIC
在johnnyheineken引用的链接中,作者指出:
恐怕glmnet对象(dev.ratio,nulldev)可用的两个量不足以获取模型的似然性,而这需要您计算AICc。您在三个未知数中有两个方程式:似然(null),似然(model)和似然(saturated)。我不可能没有可能性(null)获得可能性(model)。
在我看来,如果您要比较两个模型之间的AIC,那么您就无法区分零偏差。由于它存在于不等式的两面,因此它将显示哪个模型必须具有较低的AIC。这取决于两件事: