Prédictions utilisant glmnet dans R

13

J'essaie de modéliser certaines données en utilisant le glmnetpackage dans R. Disons que j'ai les données suivantes

training_x <- data.frame(variable1 = c(1, 2, 3, 2, 3),
                         variable2 = c(1, 2, 3, 4, 5))
y <- c(1, 2, 3, 4, 5)

(Il s'agit d'une simplification; mes données sont beaucoup plus compliquées.) J'ai ensuite utilisé le code suivant pour créer le modèle glmnet.

x <- as.matrix(training_x)
library(glmnet)
GLMnet_model_1 <- glmnet(x, y, family="gaussian", alpha=0.755,
                         nlambda=1000, standardize=FALSE, maxit=100000)

J'utilise standardize=FALSEparce que mes données réelles sont déjà standardisées. Ensuite, je veux faire des prédictions sur un nouvel ensemble de données. Disons que mes nouvelles données sont:

newdata <- as.matrix(data.frame(variable1 = c(2, 2, 1, 3), 
                                variable2 = c(6, 2, 1, 3)))
results <- predict(object=GLMnet_model_1, newx, type="response")

Je m'attendrais à ce que les résultats contiennent 4 éléments (prédictions du newdata), mais à la place, cela me donne une matrice 4x398. Qu'est-ce que je fais mal?

Benoit_Plante
la source

Réponses:

14

Vous devez spécifier pour quelle valeur de lambda vous souhaitez prédire la réponse. Tout ce que vous devez faire est d'appeler comme par exemple:

results <-predict(GLMnet_model_1, s=0.01, newx, type="response")
AlefSin
la source