2016-12-01 4 views
1

GLMNet에서 AIC와 BIC를 얻을 수 있는지 궁금합니다. 나는 glmnet.cr을 찾았지만 할 수있을 것 같은데 내 응답은 서문이 아니라 시간이다. 나는 그것을 가능성으로부터 직접 계산할 수는 있지만 glmnet은 그 값을 반환하지 않습니다.R : GLMNet에서 AIC/BIC/Likelihood 받기

접선 : 실제로 l1norm을 반환 할 수 있습니까? 그냥 그래야한다고 생각합니다.

fit$norm 

그러나 그렇게 보이지는 않습니다. (나는 번호를 꺼내지 않는다고 말하지만 실제로는 R을 사용하지 않는다는 것을 알고있다.)

도움을 미리 감사드립니다.

+0

짧은 대답은 NO입니다하지만 당신이 뭘하려는 건지 따라 주위에 방법이 될 수 있습니다. 나는 당신이'glmnet' R 꾸러미를 사용하고 있다고 추정하지만 우리는 당신의 모델에 대해 더 많이 알아야합니다. 예를 들어, 가우스 응답이 있습니까? Cross-Validated에 도움이 될만한 답변이 있습니다. –

답변

1

glmnet 모델의 AIC와 BIC를 계산하는 방법으로 많은 어려움을 겪고있었습니다. 그러나, 검색 꽤 많이 후, 나는 Google 결과의 세 번째 페이지에서 답변을 찾았습니다. 그것은 here 찾을 수 있습니다. 나는 내가 유일한 사람이 될 수 없다고 믿으며 미래의 독자들을 위해 이곳에 올리고 있습니다. 결국

, 나는 다음과 같은 방법으로 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 
+0

그래서 나는 이것을 사용하여 끝내지 만, 내가 읽은 것에서 (그리고 다른 장소를 계산할 때) 그것은 2L에 대해 똑같은 값을주지는 않을 것이다. 그러나 fit $ nulldev는 상수이기 때문에 대체 할 수 있습니다. AICc 값이 다른 계산과 왜 정렬되어 있는지 궁금해하는 경우에 대비하여주의해야합니다. – Faller