Skip to main content

1. Introdução às séries temporais

O estudo e análise de séries temporais não é algo tão simples de realizar e necessita-se de que o profissional de ciência de dados fique atento a determinados detalhes que podem comprometer a sua análise de previsão. Segundo [2], uma Série Temporal é uma sequência de valores observado são longo do tempo, em intervalos iguais.

Um dos principais objetivos do estudo de Séries Temporais é criar modelos que demonstrem o comportamento do fenômeno estudado e,  a partir daí,  gerar previsões.  Quando se pensa por exemplo em fazer uma previsão de vendas de sapatos com dados temporais de registros de vendas mensais nos anos de 2005 a 2017, como seriam os passos a seguir se fosse preciso construir um modelo preditivo que demonstrasse como seria o comportamento dessas vendas nos meses seguintes?

De maneira geral e resumida, poderiam ser aplicados os seguintes passos: (i) análise de tendências e sazonalidades para verificar como seria o comportamento dessa série nessas decomposições,realizar um pequeno experimento com as amostras dos dados obtidos em um modelo seja ele estatístico ou de aprendizado de máquina e verificar como o modelo se comporta em cima desses dados.

É importante ficar atento quando se fala em previsão e como essa previsão será feita, por exemplo, pegando o exemplo do registro de vendas mensais de sapatos, se a previsão é para identificar qual será a quantidade de vendas de sapatos no próximo mês, basicamente é utilizar a última vendado mês anterior para prever a venda do próximo mês, agora se a previsão é para ser feita daqui há 12 meses corridos, significa dizer que o modelo precisa prever a partir do mês anterior aos 12 meses, os próximos 12 meses.

Diante desse contexto, o presente documento pretende realizar um estudo de um mini-case de um conjunto de dados de tópicos mais acessados na internet nos anos de 2004 a 2017, construir um modelo de série temporal utilizando machine learning com os dados de 2004 a 2016 e prever os dados no ano de 2017.

2. Metodologia

Para metodologia desse trabalho foi utilizado o dataset chamado timeline.csv de pesquisas relacionadas a três tópicos pesquisados na internet: dieta, academia e finanças, ou seja, cada um desses tópicos nos anos de 2004 a 2017.

Esse dataset está temporalmente organizado de maneira mensal,cada registro mostra a quantidade de pesquisas em cada tópico mensalmente. A figura 1 abaixo apresenta um recorte desse dataframe.

séries temporais

Para análise do dataset foi aplicado uma decomposição em tendência e sazonalidade para identificar o comportamento da série decomposta.

Para decomposição da tendência foi aplicada uma função de média móvel para retirar ruídos da séries e assim verificar o comportamento da tendência e para sazonalidade foi aplicada uma função de diferença, deixando a série no comportamento estacionário para verificar esse comportamento sazonal.

Para previsão da série foi utilizado o modelo K-nearest Neighbors Regressor da bibliotecas kylearn dopython. O algoritmo KNN é um dos algoritmos de classificação mais simples e é um dos algoritmos de aprendizagem mais usados.

Uma instância de teste é classificada por maioria devotos de seus vizinhos, com a instância sendo atribuída à classe mais comum entre seus vizinhos mais próximos (k é um número inteiro positivo,  tipicamente pequeno)[4].   Se k = 1,  então, a instância é simplesmente atribuída à classe daquele único vizinho mais próximo.  Um dos pontos fracos deste classificador é a definição do parâmetro K, que define o número de vizinhos.

O valor de K controla a forma do limite de decisão.  Quando K é pequeno, a região usada para realizara previsão é restrito,  forçando o classificador a ser “mais cego” para a distribuição geral.   Um pequeno valor para K fornece o ajuste mais flexível, que terá baixa viés, mas alta variância.

Por outro lado, um K mais alto tem a média demais eleitores em cada previsão e, portanto, é mais resistente a outliers . Valores maiores de K irão têm limites de decisão mais suaves, o que significa menor variância, mas maior viés [1].

Para validação do modelo será utilizado a medida de erro RMSE (Erro Quadrático Médio) e a visualização da previsão do mesmo que apresentou melhor RMSE.

3. Experimento e resultados sobre sérires temporais

Antes da realização dos experimentos e geração de resultados foram utilizados os seguintes passos:

•Passo 1:verificar o comportamento natural da série temporal ao longo do tempo nos três tópicos: dieta, academia e finanças como representado na figura 2.

•Passo 2:Decompor as séries temporais separadamente em tendências representado na figura 3.   Para realização  dessa  decomposição, foi  aplicada  a média  móvel  de período  12  dos pandas, pois como a série é mensal no intervalo de 14 anos, o melhor período seria de 12 meses.

•Passo 3:Decompor as séries temporais separadamente em sazonalidades representado na figura 4.  Para realização dessa decomposição, foi aplicada a função diff do pandas e foi verificado que para todos os tópicos opico sazonal era nos meses de janeiro de cada ano.

•Passo 4: Aplicar função de janelamento nos dados para cada tópico e separar os conjuntos de treinamento e de teste para análise de previsão do modelo.

O modelo escolhido para realizar a previsão do case foi o K-nearest Neighbors Regressor da bibliotecaskylearn do pyhton.  O motivo da escolha desse modelo é que, diferente dos demais,ele é mais simples de parametrizar porter apenas um parâmetro que é o número de vizinhos e essa facilidade faz com que ele seja um forte candidato a ser um dos primeiros modelos a serem testados em problemas de séries temporais para verificar a complexidade da previsão.

O modelo foi variado com número de K no intervalo [2:7] e foi filtrado o melhor resultado, ou seja, o menor RMSE de previsão para cada tópico como representado pela tabela 1 e visualmente pelas figuras 6, 7 e 8

. Conclusões

Esse mini-estudo apresentou de forma resumida o processo para se construir um modelo de previ-são de séries temporais utilizando algoritmos de machine learning. Espera-se que esse documento sirva como um norte para os cientistas que pretendem se aventurar nesse ramo de séries temporais.

Gostou da aula? Continue navegando nos conteúdos do Semantix Lab e aprenda muito mais!

5. Referências

[1]   Jonnathann Silva Finizola et al. “A comparative studybetween deep learning and traditionalmachine learning techniques for facialbiometric recognition”. Em:Ibero-American Confe-rence on ArtificialIntelligence. Springer. 2018, pp. 217–228.
[2]    William WS Wei. “Time series analysis”.Em:The Oxford Handbook of Quantitative Methodsin Psychology: Vol. 2. 2006.

Leave a Reply