É possível calcular AIC e BIC para modelos de regressão de laço?

31

É possível calcular valores de AIC ou BIC para modelos de regressão de laço e outros modelos regularizados em que os parâmetros estão inserindo apenas parcialmente a equação. Como se determina os graus de liberdade?

Estou usando R para ajustar modelos de regressão de laço com a glmnet()função do glmnetpacote e gostaria de saber como calcular valores AIC e BIC para um modelo. Dessa maneira, posso comparar os valores com os modelos ajustados sem regularização. Isso é possível?

Jota
fonte
11
Sim, você pode fazer isso, mas provavelmente exigirá que você obtenha a correção correta. A correção é derivada neste artigo ncbi.nlm.nih.gov/pmc/articles/PMC2629611 no contexto da modelagem de mistura finita penalizada, mas um argumento análogo seria suficiente em outros modelos penalizados.
Macro

Respostas:

12

Você também pode achar os seguintes documentos interessantes:

RJ Tibshirani e J. Taylor (2011), Graus de liberdade em problemas de laço , pré-impressão arXiv: 1111.0653 .

H. Zou, T. Hastie e R. Tibshirani (2007), Sobre os graus de liberdade do laço , Annals of Statistics 35 (5), 2173-2192.

Alexandra
fonte
14
teria sido bom se houvesse um pouco de explicação sobre a resposta final;
user4581
10

Eu estava lutando bastante com uma maneira de calcular o AIC e o BIC para os modelos glmnet. No entanto, depois de muita pesquisa, encontrei na terceira página dos resultados do google a resposta. Pode ser encontrado aqui . Estou publicando aqui para futuros leitores, pois acredito que não posso ser o único.

No final, implementei o AIC e o BIC da seguinte maneira:

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
fonte
2

No link referenciado por johnnyheineken, o autor declara:

Receio que as duas quantidades disponíveis no objeto glmnet (dev.ratio, nulldev) não sejam suficientes para obter a probabilidade do modelo, que você precisa para calcular o AICc. Você tem duas equações em três incógnitas: probabilidade (nula), probabilidade (modelo) e probabilidade (saturada). Não consigo obter a probabilidade (modelo) livre da probabilidade (nula).

Parece-me que se você estiver comparando a AIC entre dois modelos, o fato de não poder separar o desvio nulo não deve importar. Como existe nos dois "lados" da desigualdade, mostraria qual modelo deve ter a AIC mais baixa. Isso depende de duas coisas:

  1. Os dados são os mesmos nos dois modelos (necessários para a comparação da AIC)
  2. Não estou esquecendo nada do Stat101 nem da álgebra do ensino médio (uma forte suposição, dada a minha ingestão atual de cafeína)
naturalBlogarithm
fonte