Ainda em Alteryx — Time Series & Forecast

Murilo Cremon
Murilo Cremon
Published in
10 min readOct 1, 2020

Acredito que você como um Analista/Cientista, já deve ter recebido alguma demanda de negócio referente a previsão de determinada métrica ou então uma simples análise de dados no tempo.

Imagine seu Gestor/Superior te dando um alô — “O fulano, quanto que vamos vender nos próximos meses? Tem alguma ideia?”. É bem comum, pelo menos pra mim. Além disso, é fundamental saber interpretar os dados de uma Série Temporal para que possamos conseguir realizar previsões eficazes.

Eu pelo menos gosto bastante de trabalhar com esses tipos de demandas, é algo que me chama atenção, embora, as vezes possa dar muita dor de cabeça (muita dor de cabeça mesmo).

Falando em dor de cabeça, antes de atuar com Alteryx e inclui-lo em meu cotidiano, eu trabalhava (ainda trabalho) bastante com R e eu já achava que era bem fácil e divertido, já com o Alteryx, é ainda mais fácil e ainda mais divertido, afinal, trás uma produtividade gigante.

Aquela Conceitual Antes da Prática….

Time Series (Série Temporal)

Uma Série Temporal, é um conjunto de observações no tempo, seja ele, diário, mensal, trimestral e até mesmo hora.

Quem nunca ai viu um gráfico principalmente de linha no tempo, principalmente nesses tempos de COVID-19. Mostrando a evolução de Casos Diários no Brasil.

Outro ponto badalado, Índice de Valores da Bolsa, simplesmente é Time Series pura aquilo, bem bacana né?

E ainda mais nesses dias de calor aqui em São Paulo, vemos claramente no ClimaTempo gráfico de temperatura média ao longo do mês, mais um exemplo de Série Temporal.

Basicamente, uma Série Temporal é composta por 3 elementos básicos:

  • Tendência: Verifica como sua Série irá se comportar a longo prazo, seja crescendo, decrescendo.
  • Sazonalidade: É a formação de um padrão que tende a se repetir durante o tempo, como por exemplo, todo mês de Julho, Agosto e Setembro temos um crescimento de vendas.
  • Movimentos Irregulares (Ruídos ou Resíduos): É o movimento do que restou após a descoberta pela Tendência e Sazonalidade.

Forecast (Previsão)

Forecast é um processo que, como o próprio nome já diz, realiza previsões de para determinados períodos, sejam eles diários, mensais e por ai vai.

Geralmente utilizado para saber como será o comportamento de determinada métrica pensando em tomadas de decisões tanto presentes quanto futuras com o olhar mais adiante.

Imagine o seguinte caso…

Você está tranquilo no seu serviço, entregou tudo que tinha pra entregar, já refinou, fez absolutamente tudo e do nada aparece uma demanda do seu Diretor Executivo, que gostaria de entender como serão as vendas no próximo ano.

Ele tem uma certa urgência com essa demanda, pois, precisa tomar uma decisão baseado no percurso das vendas.

Você realiza um breve refinamento para entendimento da necessidade, e com base nisso, entende que ele quer uma previsão mensal das vendas para o ano seguinte, sem produtos, somente o mês e valor de venda (aliás, assunto para outro post, realizar previsão com base em produtos no Alteryx).

Praticar Praticar Praticar!

Para o nosso exemplo, estou utilizando a famosa base de dados Super Store Sales (famosa pelo menos para quem utiliza Tableau, como eu), e nossa base contempla os dados até o ano de Dezembro de 2017, ou seja, precisamos realizar uma previsão de todos os meses de 2018.

Como disse na postagem anterior, eu utilizo bastante o Alteryx para Ciência e Análise de Dados. Com base nisso, o fluxo que vamos trabalhar será este.

Antes de entrarmos no detalhe de cada ferramenta, vou realizar um breve detalhamento e explicação sobre o fluxo acima.

Este é um fluxo bem simples, que tem por objetivo demonstrar como seria um fluxo cujo a saída deve ser a previsão de vendas que o nosso Diretor Executivo solicitou.

Neste fluxo, a entrada de dados é realizada com Input Tool, em seguida é submetida a uma Select Tool, para retirar todos os outros campos que não vamos precisar, já que nossa demanda é somente para olhar a Data e Vendas, além disso, realizar a conversão de ambos campos. Em seguida, seguimos nosso fluxo com a Formula Tool, encarregada de tratar o campo de Data e então, esses dados são disponíveis em uma Summarize Tool para realizar o agrupamento e a soma do valor de Vendas.

Podemos reparar que o fluxo está divido. No fluxo onde possui o container, é realizado uma análise da Série Tempora e realizado validações para vermos qual algoritmo dará melhores resultados e comparamos estes valores, para ai sim então seguirmos com o algoritmo que gerou melhor resultado. Focando um pouco mais no fluxo, vemos que existe um TS Plot Tool, que realiza a criação de alguns Plots para analisarmos a Série. Já abaixo, temos um Filter Tool, que fica encarregado de filtrar uma parte dos dados para utilizarmos os dados no algoritmo e outra parte na validação dos resultados. Em seguida, esses dados para criar os modelos, são submetidos a duas ferramentas uma ARIMA Tool e ETS Tool (nomes conhecidos, certo?). E então, o resultado de ambos modelos é jogado para uma Union Tool para união dos resultados e em seguida, encaminhada para TS Compare Tool, que verifica os melhores resultados.

No fluxo abaixo do container, é realizado a conexão diretamente com o algoritmo que gerou melhor resultado dentro do container de validação, e então, é submetido a TS Forecast Tool, que é onde passamos os parâmetros para realizar o Forecast (Previsão) e as seguintes ferramentas de Formula Tool e Select Tool é somente para perfumaria, e uma saída diretamente para o Tableau Server (somente simulação).

Passo a Passo

Para inclusão dos dados no fluxo, foi utilizado o Input Data Tool, realizando a busca local por um arquivo .xlsx (Excel).

Como já dito, estamos tratando de uma base de vendas que contém inúmeras colunas referente ao detalhamento da venda em si, como mostra a imagem abaixo (print dos metadatas, pois ficou inviável tirar print dos dados).

Em seguida, vemos que os dados são submetidos a um Select Tool.

Essa ferramenta ela tem a tarefa de remover os campos que não vamos utilizar, pois como relatado acima, só vamos precisar de ambos campos, Data de Pedido e Vendas, além claro, que eu renomeio os campos, como mostra a imagem abaixo.

Dando continuidade ao fluxo, realizo uma transformação na Data, com a ferramenta de Formula.

Ela tem por objetivo, eliminar os dias da data, então utilizo uma função de SubString, para pegar somente os 8 primeiros elementos e concatenando com o valor de ‘-01’ para que represente o dia. Com essa transformação, o agrupamento ficará mensal, pois se formos agrupar por dia, teremos problemas de prever mensalmente além de que, os dados serão agrupados diariamente.

Seguindo, existe uma Summarize Tool, que fica encarregada de agrupar os dados.

Ela cria um grupo baseando-se na data tratada anteriormente e realiza uma soma do valor de vendas, sendo assim, reduzimos drasticamente o número de linhas do nosso conjunto de dados.

Nessa etapa, vamos primeiro falar das ferramentas que fazem parte do container.

Vamos começar com o TS Plot Tool, essa ferramenta tem por objetivo, nos mostrar diversos componentes fundamentais para Análise de uma Série Temporal.

Neste caso, a Ferramenta TS Plot, ela possui somente uma entrada e duas saídas. Suas saídas são a âncora R e I, repare que adicionei uma Browser Tool a saída I, pois a saída R ela contém somente as informações selecionadas na configuração, já a saída da âncora I, ela possui as informações selecionada mais algumas complementares, é um pouco mais pesada essa saída, porém, gera uma gama bem maior de informações.

Nesse nosso exemplo, estou utilizando um gráfico de decomposição da Série Temporal, pois afinal, é algo que sempre devemos fazer e que nos fornece muitas informações na hora de montar o modelo. Além disso, selecionamos qual variável alvo que queremos analisar, a frequência e a data de início da nossa Série.

Já no Browser Tool conectado a âncora I, a saída é exatamente essa:

Não vou entrar no assunto dos gráficos, mas, verifique que temos muito mais detalhes nessa âncora e até mesmo informações de correlação com os gráficos de ACF e PACF.

Já na questão de validação do modelo, temos uma ferramenta indispensável, o Filtro.

Geralmente quando queremos amostras para treinar e validar modelos de Machine Learning, utilizamos Create Sample Tool e Sample Tool, mas neste caso é diferente, como não fazemos a divisão com ferramentas de amostras, utilizamos o Filter Tool para realizar a divisão para nós.

Realizei a separação das datas desde 2014 até o final de 2016 e neste caso, utilizei o ano de 2017 para fazer a validação do modelo.

Continuando no fluxo, vemos duas ferramentas uma é o ARIMA e o ETS (Exponential Smoothing), ambos são algoritmos para Time Series.

Ambos possuem a mesma configuração inicial, basta selecionarmos a variável alvo que queremos prever, assim como no TS Plot acima, além de selecionar qual a frequência que queremos realizar a previsão.

Repare que existem outras abas de configuração, basicamente, as abas de Modelos, é onde ficam as configurações dos modelos, é neles que ajustamos parâmetros para melhor ajuste da previsão.

Um ponto importante, é ressaltar que na aba Other Options, existe um campo para darmos início a nossa série, mais uma vez, semelhante ao TS Plot, onde damos início ao ano de 2014 e mês 1.

Além disso, é bom ressaltar que ambas ferramentas possuem as mesmas saídas, mas no nosso caso, o que realmente interessa é a âncora O.

Com isso, é realizado uma União dos modelos, através da Union Tool.

Não vo entrar muito em detalhes, pois é uma ferramenta comumente utilizada e conhecida por todos.

Ainda na validação, vemos que a ferramenta Union, se conecta a âncora L e o a ferramenta de Filtro a âncora R da TS Compare Tool.

Essa ferramenta é bem utilizada quando o assunto é validação para realizar Forecast, pois ela compara qual modelo foi mais significativo e quais alcançou melhores resultados, por isso devemos dividir nosso fluxo para realizarmos validação, como foi feito na ferramenta de Filtro.

Sua configuração é somente para tamanhos e resolução de gráficos (por isso sem print), mas o que importa nela são as saídas.

Repare que temos três âncoras, O, R e I, a âncora de letra R contém as informações de métricas da âncora O e ainda os resultados das previsões para o ano de 2017 (dados para validação) comparando ambos modelos.

Já na âncora de letra I, temos um gráfico que fornece informações de como as previsões por ambos modelos se comportaram referente a previsão do ano de validação (2017).

Claramente existem técnicas para utilizar os melhores resultados de cada modelo, mas não é este o foco daqui.

Bom, seguindo agora com as previsões, repare que o algoritmo escolhido foi ARIMA.

Foi realizadas as mesmas configurações quando na validação, a única diferença, é que os dados que estão realizando Input na ferramenta vem diretamente da Summarize Tool, ou seja, estamos criando o modelo já com o ano de 2017.

Em seguida, o modelo do ARIMA na âncora de letra O, está sendo submetida a TS Forecast Tool, cujo seu objetivo é realizar as previsões do período fornecido.

Essa ferramenta, possui algumas configurações, como alterar os níveis de confiança e passar a quantidade de período que queremos prever, que neste caso de acordo com a demanda, seriam os próximos 12 meses, tornando assim a previsão completa para o ano de 2018.

Como vemos, adicionei um Browser Tool para mostrar a saída das previsões juntamente com os intervalos de confiança e a saída é essa.

Bem interessante, pois ele fornece algumas informações bacanas, além disso, da até para utilizar em um relatório.

O restante do fluxo como dito anteriormente, é somente questão de estética, para ajustar os dados e deixa-los um pouco mais “bonitinhos”.

Até o próximo post!

--

--

Murilo Cremon
Murilo Cremon

Bem Vindo! Neste blog, compartilharei minhas experiências e conhecimentos sobre Business Intelligence, Visualização de Dados, Tableau e outros assuntos!