Prevendo o futuro com ARIMA
Autor: SergioJr
Data: 07 de Agosto de 2023
Categorias: Ciência de Dados

Uma breve introdução para Séries Temporais.
Uma série temporal é uma mesma variável, nas séries temporais como temos uma única variável, nós temos dados num intervalo de tempo e a suposição é que exista essa dependência e relação entre os intervalos de tempo, e esse intervalo de tempo deve ser regular, se temos dados coletados mensalmente, toda a série deve ser coletada mensalmente. A Série Temporal tem uma dependência de ordem no tempo, é a ordem que define a auto correlação entre os intervalos, por exemplo, se coletamos dados diários em 10 dias, não podemos usa-los de forma aleatória, e sim de forma ordenada dia por dia. Não é possível analisar mais de uma amostra a cada intervalo pois temos que coletar dados em intervalos regulares (uma coleta a cada intervalo).
A analise de séries temporais estuda o comportamento de uma variável contínua (um número, inteiro ou real) ao longo do tempo, como já foi dito o intervalo de coleta é feito de forma regular (se a coleta é diária, ela tem que se permanecer diária). O intervalo deve ser sempre o mesmo em toda a série, assim como já foi dito acima.
É Série Temporal?
Observemos a tabela abaixo:

Podemos ver que temos o elemento “Data”, um atributo data pode ser tratada como categórico ou contínuo, podemos usar esses dados de vendas em um algoritmo de machine learning e ele vai considerar essa data como um outro atributo qualquer (categoria ou contínuo), ou seja, não necessariamente a presença de uma data em um conjunto de dados, torna ele uma série temporal.
.png)
Porém, podemos transformar esse conjunto de dados de forma que ele pudesse ser utilizado e analisado com técnicas de Série Temporal. Logo podemos agrupar dados por intervalo de tempo de forma regular, ou seja, o primeiro intervalo do dia 1 de janeiro (onde temos 2 dados) seria 1 observação da série temporal, o dia 2 seria outra observação, o dia 3 outra e assim segue.
Fazendo previsões com ARIMA
Existem várias técnicas que podemos usar para realizar previsões de séries temporais, inclusive algumas que usam redes neurais, porém dentre elas a mais robusta e utilizada é o ARIMA, e é robusta pois pode ser usada em praticamente qualquer tipo de Série Temporal. ARIMA tem uma característica que requer que os dados sejam estacionários (dados que flutuam numa mesma média e variância), porém se seus dados não forem estacionários o ARIMA pode transforma-los em estacionários através de técnicas como diferenciação.
O ARIMA é composto por 3 elementos e o grau de cada elemento define o modelo, são eles:
- AR - AutoRegressivo: avalia a relação entre os períodos (lags): autocorrelação.
- I - Integrated: Aplica a diferenciação, se necessária.
- MA - Moving Average: Avalia os erros entre os períodos e extrai esses erros.
O modelo ARIMA é composto desta maneira:

Se tivermos um modelo com P igual a 2 significa que uma determinada observação no tempo pode ser explicada pelas 2 observações prévias + erro. D é o grau de diferenciação, se for igual a 0 não será aplicada diferenciação (a série já é estacionária), se for igual a 1 será aplicada a diferenciação de 1º Ordem, se for igual a 2 será aplicada a diferenciação de 2ª Ordem. Q é nossa ordem da média móvel se for igual a 2 significa que certa observação pode ser explicada pelo erro das duas observações prévias. Então podemos ter vários tipos de modelo ARIMA, como ARIMA 200, ARIMA 001, ARIMA 100 e por ai vai.
A definição dos parâmetros q, d e p pode ser extremamente difícil mesmo para quem tem experiência, não é um processo claro e linear e nem sempre o modelo intuído é o melhor.
Uma solução para os problemas acima é o auto arima, o qual testa diferentes combinações de parâmetros p,q,r. É extremamente flexível e mesmo que você faça a intuição de um modelo podemos confirmar a parametrização usando o auto arima, ou seja, definimos os valores para p,d,r porém se quisermos ter certeza se aqueles valores minimizam os índices de performance do modelo você ainda pode usar o auto arima.
Como saber qual o melhor modelo?
Existem algumas métricas que o modelo ARIMA gera o qual podemos avaliar qual o melhor modelo as principais métricas são: Akaike Information Criteria (AIC e AICc) Baysian Information Criteria (BIC) E o objetivo dessas métricas é minimizar elas ou seja devemos procurar o modelo, a combinação de parâmetros que tragam os modelos com os menores valores.
Obrigado por me acompanhar nesta viagem!
Que tal começarmos outra?
🚀