[R-br] previsão utilizando o lasso

João Pedro Domingues J__P em hotmail.com
Terça Janeiro 9 18:04:49 -02 2018


Boa tarde colegas,

Estou tentando realizar uma previsão de vendas utilizando o algoritimo LASSO pelo pacote HDeconometrics. Alguém com experiência neste pacote poderia me ajudar por gentileza? Só preciso resolver isso para finalizar minha dissertação. Muito obrigado a todos!


Data é uma matriz de series temporais com 158 observações (diarias) e 13 produtos (colunas).
Eu inicialmente separo a primeira coluna como sendo o produto focal para analisar e o coloco como y, sendo a variável dependente. Já as outras colunas eu coloco como x, variáveis independentes. Então o LASSO me informa quais são relevantes.
Com isso, eu separo as primeiras 148 observações para ser o training set, e as últimas 10 observações para o test set, e ver se o modelo realmente funciona. Até aqui ok.

O problema: quando eu realizo o ajuste da série com o comando (lasso=ic.glmnet(x.in,y.in,crit = "bic")) ele ajusta o modelo para a série sem problemas, utilizando as variáveis que o lasso identificou como relevantes para o training set.
Porém, quando eu vou executar a previsão real utilizando a última linha (previsao.lasso=predict(lasso,newdata=x.out)), ele não faz a previsão, ele simplesmente faz um ajuste igual o training set.
Alguém tem alguma ideia de como resolver essa questão e conseguir prever corretamente?
Grande abraço


Segue abaixo os comandos utilizados:


                library(HDeconometrics)
                library(forecast)
                ## Inicio
i = 0
              y = as.matrix(Data[,i+1])               #variável dependente primeira coluna
              x = (Data)                                            #cópia da base toda
              x[,i + 1] <- NULL                                #retira a variável y e fica com todas as outras variáveis
              x = as.matrix(x)                                # transforma em matriz

              ### separa a série em training e test set de x e y
              y.in=y[1:148]                     #training set
              y.out=y[-c(1:148)]           #test set

              x.in=x[1:148,]                    #training set
              x.out=x[-c(1:148),]          #test set

              ## ajuste do modelo e previsão LASSO
              lasso=ic.glmnet(x.in,y.in,crit = "bic")                       #ajuste do modelo com o training set
              previsao.lasso=predict(lasso,newdata=x.out)     #previsão com o test set

João Pedro Domingues

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20180109/580bb5da/attachment.html>


Mais detalhes sobre a lista de discussão R-br