5 votes

R glmnet family = binomial predict values outside of 0-1

J'essaie de trouver un package dans R pour la régression logistique régularisée qui prédit des valeurs entre 0 et 1. Je n'ai pas eu beaucoup de chance, j'ai essayé le package lars et maintenant le paquet glmnet l'emballage.

Le code ci-dessous est tiré de l'exemple du manuel de référence pour le paquetage glmnet et je ne comprends pas le résultat.

library(glmnet)

set.seed(1010)
n=1000;p=100
nzc=trunc(p/10)
x=matrix(rnorm(n*p),n,p)
beta=rnorm(nzc)
fx= x[,seq(nzc)] %*% beta
eps=rnorm(n)*5
y=drop(fx+eps)
px=exp(fx)
px=px/(1+px)
ly=rbinom(n=length(px),prob=px,size=1)
set.seed(1011)
cvob2=cv.glmnet(x,ly,family="binomial")
plot(cvob2) # had to add this comment to allow edit
coef(cvob2)
predict(cvob2,newx=x[1:5,], s="lambda.min")

             1
[1,] -1.721438
[2,]  0.914219
[3,]  1.111685
[4,]  1.805725
[5,] -4.200433

Je ne comprends pas pourquoi la sortie n'est pas comprise entre 0 et 1.

Ai-je mal compris quelque chose ?

Quelqu'un peut-il recommander un logiciel facile à utiliser pour la régression logistique régularisée ?

Merci.

12voto

Dieter Menne Points 5354

Consultez la documentation de predict.glmnet : par défaut, il est de type="link", c'est-à-dire transformé en lien.

predict(cvob2,newx=x[1:5,],type="response", s="lambda.min")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X