2016-12-01 1 views
1

Je me demande si je peux obtenir AIC et BIC de GLMNet. J'ai trouvé glmnet.cr qui semble être capable de le faire mais ma réponse est le temps, pas ordinale. Je pourrais le calculer moi-même à partir de la probabilité, mais glmnet ne le renvoie pas non plus. Tangentiel: puis-je retourner le l1norm? Je me sens comme il devrait juste êtreR: Obtenir AIC/BIC/Probabilité de GLMNet

fit$norm 

mais il ne semble pas être. (Je sais qu'il est dit de ne pas tirer les chiffres, mais je n'utilise pas le R)

Merci d'avance pour l'aide.

+0

La réponse courte est non, mais il pourrait y avoir un moyen de contourner selon ce que vous essayez de faire. Je suppose que vous utilisez le paquet 'glmnet' R, mais nous devons en savoir plus sur votre modèle. Par exemple, a-t-il une réponse gaussienne? Il y a quelques réponses sur Cross-Validated qui pourraient aider. –

Répondre

1

Je luttais beaucoup avec un moyen de calculer AIC et BIC pour les modèles glmnet. Cependant, après beaucoup de recherche, j'ai trouvé sur la troisième page de résultats google la réponse. Il peut être trouvé here. Je l'affiche ici pour les futurs lecteurs car je crois que je ne peux pas être le seul.

En fin de compte, je mis en œuvre l'AIC et BIC de la manière suivante:

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 
+0

J'ai donc fini par l'utiliser aussi, mais d'après ce que j'ai lu (et les calculs d'autres endroits) cela ne vous donnera pas exactement la même valeur pour 2L (que vous utiliseriez normalement). Mais puisque fit $ nulldev est une constante, il peut être utilisé comme un remplacement. Juste une mise en garde au cas où vous vous demandez pourquoi vos valeurs AICc ne font pas la queue avec d'autres calculs. – Faller