Time Series Modeling: R & SAS

0

Como integrar modelos hierárquicos de séries temporais desenvolvidos em R ao SAS Visual Forecasting analisando as diferentes estratégias?

O objetivo deste artigo é apresentar como podemos executar modelos de séries temporais, que foram desenvolvidos no R, no SAS Visual Forecasting, podendo, assim, paralelizar e acelerar o processamento do código R. Além disso, apresentaremos os benefícios da utilização do SAS Visual Forecasting para realizar distintas estratégias de modelagem hierárquica. Não é objetivo deste artigo comparar acurácias, mas sim apresentar os resultados da capacidade do SAS Visual Forecasting em se integrar às ferramentas open source como o R e enriquecer a modelagem.

Uma série temporal é um conjunto de dados igualmente espaçado no tempo. A modelagem de séries temporais consiste em indentificar modelos que consigam analisar e modelar comportamentos que sejam associados ao tempo, como, por exemplo, volume mensal de chamadas de um call center, volume diário de vendas de uma loja/mercado/empresa, volume semanal de carga de energia. Ou seja, tudo que tenha o tempo como uma variável.

SAS VIYA: Visual Data Mining and Machine Learning x Visual Forecasting x Text Analytics

Quando falamos sobre a capacidade analítica do Viya, temos basicamente 3 ferramentas: o Visual Data Mining and Machine Learning (VDMML), o Visual Forecasting (VF) e o Text Miner. Cada uma delas possui características e público específicos.

O VDMML é a ferramenta que possui modelos de Machine Learning e Data Mining. É nele que podemos trabalhar com dados e modelos que analisam comportamentos que não estão associados ao tempo, como árvore de decisão, regressão logística e outros.

O Text Analytics é a ferramenta que possui modelos para análises de data mining em textos.

O VF é a ferramenta com modelos para trabalhar problemas que consistem em sumarizações e previsões no tempo. A ferramenta conta com modelos avançados já programados, tanto de séries temporais, como ARIMA, ARIMAX, ESM, IDM, UCM; quanto de Machine Learning, como Multistage (estratégia que combina modelos de redes neurais com séries temporais), Panel Series Network (estratégia que modela problemas de dados de séries temporais de paineis com redes neurais) e Stacked model (estratégia que aborda problemas que possuem características de séries temporais e relações não lineares entre variaveis dependentes e independentes por rede neural e séries temporais). O foco do VF é realizar a previsão identificando automaticamente qual o melhor modelo para cada série temporal e utilizando estratégias distintas que podem ser comparáveis entre si.

OS DADOS

No estudo desenvolvido, trabalhamos com dados de vendas mensais de 7 produtos distintos, pertencentes a 2 linhas de produto, com histórico de janeiro de 2012 a dezembro de 2016. Não é foco deste trabalho a avaliação estatística dos modelos desenvolvidos no R, e sim apresentar a integração deste modelo ao SAS Visual Forecasting.

Abaixo, temos o histórico mensal desses dados por linha e nome do produto:

 

O MODELO AJUSTADO NO R

Foi ajustado um modelo ARIMA no R para realizar a previsão mensal 12 passos a frente para todas as 7 séries temporais,  sendo: ARIMA(1,1,0)(1,1,0)12.

*******************************************************************************************************************************

*******************************************************************************************************************************

EXECUTANDO O MODELO R NO SAS VISUAL FORECASTING

Para realizar a integração do código R no SAS Visual Forecasting usamos os recursos da PROC TSMODEL e o pacote EXTLANG. Este pacote também é utilizado para executar códigos Python.

A PROC TSMODEL é uma procedure do SAS Viya para execução de modelos de séries temporais. Ele tem a capacidade de transformar dados transacionais em temporais. Como a PROC TSMODEL é executada no CAS (Cloud Analytic Service), ela pode processar dados de séries temporais em paralelo.

O pacote EXTLANG fornece objetos que permitem a integração de programas de linguagem externa em ambiente SAS. Ele suporta Python (versão 2.6.6-2.7.7 e acima da 3.3) e R (versão acima da 3.2.5).

Os dados que foram utilizados estão salvos na mycas e chamam: looking_glass_hier. A tabela com o resultado previsto pelo modelo do R é a outarray. O log da execução do R será salvo no objeto rlog e as variáveis compartilhadas em rvars. A previsão será feita num horizonte de 12 meses.

*******************************************************************************************************************************

*******************************************************************************************************************************

É preciso definir a variável ID (Txn_Month) e o tipo do intervalo dos dados (mensal), assim como os níveis de hierarquia que o forecast será realizado (productline e productname). A variável a ser analisada também deve ser definida no statement VAR junto do seu método de acumulação.

O statement REQUIRE especifica que o pacote EXTLANG será utilizado a partir de então.

*******************************************************************************************************************************

*******************************************************************************************************************************

Todo o código que aparecer entre o SUBMIT e o ENDSUBMIT estará utilizando o pacote EXTLANG para rodar o R.

*******************************************************************************************************************************

*******************************************************************************************************************************

O código em R, apresentado anteriormente, está salvo no caminho: /home/ec2-user/codigo_r com o nome r_arima_code.r e será acionado pelo comando descrito acima.

A partir da tabela outarray, podemos visualizar os resultados previstos pelo modelo do R a partir do SAS Visual Forecasting.

MODELANDO PELO SAS VISUAL FORECASTING

Realizamos a modelagem com os mesmos dados pelo SAS Visual Forecasting de forma a apresentar como poderiam ser feitas avaliações entre o modelo do R e o modelo do SAS. Vale ressaltar que o foco aqui é apresentar as facilidades e ganhos na integração entre as duas linguagens, mostrando uma alternativa para que se possa analisar os dois resultados juntos sem realizar comparações.

Pelo Visual Forecasting tivemos as seguintes estratégias testadas no pipeline:

  • Auto forecasting: Estratégia que busca encontrar o melhor modelo estatístico (por default: ARIMA ou ESM, podendo ser selecionados outros modelos) no menor nível da hierarquia e agrega a previsão para cima;
  • Hierarchical forecasting: Estratégia que busca encontrar o melhor modelo estatístico (por default: ARIMA ou ESM, podendo ser selecionados outros modelos) em todos os níveis da hierarquia, reconciliando a previsão no final;
  • Multistage Model: Estratégia que combina sinais de diferentes tipos de modelos da sequinte forma: realiza a previsão com modelos de séries temporal no nível top. Realiza a previsão com modelo de rede neural nos níveis abaixo e reconcilia da forma top down.

A partir do nó de comparação, vimos que a estratégia escolhida (aquela com menor mape) foi o Multistage Model:

A tabela com os valores preditos pelo Visual Forecasting (SASPRED) foi salva e seus resultados foram inseridos na tabela com os resultados previstos pelo R (RPRED). Os erros absolutos (APER, do modelo R e APESAS, do modelo SAS) também foram calculados .

Desta forma, puderam ser calculados os MAPEs (Erro médio percentual absoluto) dos modelos ajustados para cada linha de produto e produto tanto do SAS quanto do R.

E os gráficos com os valores realizados e previstos dos modelos ajustados pelo R e pelo Visual Forecasting estão abaixo:

 

Assim, fica claro como o SAS é capaz de se integrar ao open source executando modelos que foram desenvolvidos na linguagem R de forma rápida, fácil e utilizando os recursos avançados do SAS Viya, e uma opção para realizar a análises dos dois números no mesmo ambiente.

O SAS continua firme no sentido de abraçar o open. Caminha “de mãos dadas”, aproveitando o melhor que cada linguagem e cada ferramenta possa oferecer ao usuário, otimizando os processos de negócio e a tomada de decisão.

Share

About Author

Mariana Fontanezi

Customer Advisory, SAS

Mariana Fontanezi é graduada em Estatística pela Escola Nacional de Ciências Estatísticas e pós graduada em Engenharia de Produção pela Universidade Federal Fluminense. É Customer Advisory na área de Analytics no SAS, com foco nas principais soluções para planejamento de demanda, técnicas de otimização, técnicas de pricing nas industrias: varejo, manufatura, energia, telecom e outras. É especialista em técnicas de séries temporais utilizando os principais softwares de mercado como: SAS Forecast Server, SAS Visual Forecasting, SAS Econometric and Time Series (ETS), SAS Forecast Analyst Workbench, R. Possui conhecimento em análise de dados e técnicas de Data Mining com experiência e visão em diferentes áreas de negócio.

Leave A Reply

Back to Top