Previsões usando glmnet em R


13

Estou tentando modelar alguns dados usando o glmnetpacote em R. Digamos que tenho os seguintes dados

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)

(Isso é uma simplificação; meus dados são muito mais complicados.) Então usei o código a seguir para criar o modelo 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)

Estou usando standardize=FALSEporque meus dados da vida real já estão padronizados. Quero fazer uma previsão sobre um novo conjunto de dados. Digamos que meus novos dados são:

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")

Eu esperaria que os resultados contivessem 4 elementos (previsões do newdata), mas, em vez disso, me fornece uma matriz 4x398. O que estou fazendo de errado?

Respostas:


14

Você precisa especificar para qual valor de lambda você deseja prever a resposta. Tudo o que você precisa fazer é ligar como por exemplo:

results <-predict(GLMnet_model_1, s=0.01, newx, type="response")
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.