Princípios básicos para criar previsões de Séries Temporais

Leandro Rabelo
Ensina.AI
Published in
21 min readMay 15, 2019

Ao nosso redor existem padrões que se repetem constantemente durante o tempo, pode-se notar padrões repetitivos no clima, com as estações do tempo; no trânsito, com os horários de pico de ida e volta ao trabalho e escola; nas batidas do coração, onde procura-se padrões fora da normalidade; em ações da bolsa de valores, como também em nos ciclos de venda de determinados produtos.

Analisar séries temporais são úteis para verificar esses padrões e criar previsões de movimentos futuros. Existem diversas maneiras de se criar essas previsões, nesse post irei abordar os conceitos das metodologias mais básicas e tradicionais.

Todo código em Python e informações adicionais estão no link do meu Github.

Abaixo irei comentar sobre as condições para se analisar séries temporais.

Série estacionária

Uma série estacionária tem média constante durante o tempo, não existe tendências de alta ou de baixa. A razão disso é que tendo uma média constante com variações ao redor desta média fica muito mais fácil de extrapolar ao futuro.

Uma série temporal estacionária é aquela cujas propriedades estatísticas, como a média, a variância e a auto correlação, são constantes ao longo do tempo. Assim, uma série não estacionária é uma cujas propriedades estatísticas mudam com o tempo.

Antes de iniciar qualquer modelagem preditiva é necessário verificar se essas propriedades estatísticas são constantes, abaixo explicarei cada um desses pontos:

  • Média constante
  • Com variância constante
  • Auto correlacionada

Média Constante

Uma série estacionária tem média constante durante o tempo, não existe tendências de alta ou de baixa. A razão disso é que tendo uma média constante com variações ao redor desta média fica muito mais fácil de extrapolar ao futuro.

Há casos que a variância é pequena em relação à média e usá-la pode ser uma boa métrica para fazer previsões para o futuro, abaixo um gráfico para mostrar a média em relação as variações ao longo do tempo:

Caso a série não seja estacionária a previsão para o futuro não será eficiente, pois as variações de valores ao redor da média se afastam significativamente como pode ser visto abaixo:

No gráfico acima claramente nota-se uma tendência de alta e a média gradativamente subindo, neste caso se a média fosse usada para fazer previsões futuras o erro ia ser significante, pois os preços previstos estariam sempre abaixo do preço real.

Variância Constante

Quando a série tem variância constante, temos ideia da variação padrão em relação à média, quando a variância não é constante (como imagem abaixo) a previsão provavelmente vai ter erros maiores em determinados períodos e estes períodos não serão previsíveis, pois nestes casos espera-se que a variância permaneça inconstante durante o tempo, inclusive no futuro.

Para diminuir o efeito da variância, pode-se aplicar a transformação logarítmica, transformação de escalas exponenciais como o método Box-Cox ou deflacionar a série, caso faça sentido.

Série auto correlacionada

Quando duas variáveis tem variação semelhante em relação ao desvio padrão pode-se dizer que as variáveis são correlacionadas, um exemplo seria o aumento do peso corporal com doenças do coração, quanto maior o peso maior a incidência de problemas no coração, neste caso a correlação é positiva e o gráfico seria algo semelhante a este:

Um caso de correlação negativa seria quanto maior o gasto com segurança no trabalho menor seria a quantidade de acidentes que ocorreriam.

Abaixo vários exemplos de gráficos de dispersão com os níveis de correlação:

Fonte: Wikipedia

Quando o assunto é Auto Correlação, significa que existe uma correlação de determinados períodos anteriores com o período atual, o nome que se dá ao período com esta correlação é lag, exemplo: em uma série que tem medições a cada hora, a temperatura de hoje às 12:00h é muito semelhante à temperatura de 24 horas atrás, neste caso há uma auto correlação dos valores atuais com o 24º lag.

Existir auto correlação é condição para se criar previsões com uma única variável, pois caso não exista essa correlação não pode-se usar valores passados para prever o futuro, quando existem diversas variáveis, pode-se verificar se há correlação entre a variável dependente e os lags das variáveis independentes.

Caso uma série não tenha auto correlação ela é uma série com sequências aleatória e imprevisíveis e a melhor maneira de se fazer uma previsão normalmente é usar o valor do dia anterior. Usarei de gráficos e explicações mais detalhadas a seguir.

A partir daqui irei analisar os preços semanais do etanol Hidratado da Esalq, os dados podem ser baixados aqui.

Antes de se iniciar qualquer analise, vamos dividir os dados em base de treino e de teste

Dividindo os dados em base de treinamento e de teste

Quando vamos criar um modelo de previsão de séries temporais o ideal é separar os dados em duas partes:

  • Treino: estes dados serão a base principal para definir os coeficientes/parâmetros do modelo;
  • Teste: são dados que serão separados e não foram vistos pelo modelo e serão usados para testá-lo e comparar com as previsões (geralmente comparando os valores passo-a-passo).

O tamanho do conjunto de testes é normalmente cerca de 20% da amostra total, embora esse percentual dependa do tamanho da amostra que você tenha e também quanto tempo adiante você deseja fazer a previsão. A base de testes deve ser idealmente pelo menos tão grande quanto o horizonte máximo de previsão necessário.

Diferente de outros métodos de previsões, como classificações e regressões sem a influência do tempo, em séries temporais não podemos dividir os dados de treino e teste com amostras aleatórias de qualquer parte dos dados, deve-se seguir o critério temporal da série, onde os dados de treino devem vir antes dos dados de teste.

Neste exemplo dos preços do Hidratado temos 856 semanas, onde usaremos como base de treino as primeiras 700 semanas e as últimas 156 semanas (3 anos ~18%) usaremos como base de testes:

A partir de agora só iremos usar a base de treino para fazer os estudos, a base de teste será somente usada para validar as previsões que iremos fazer.

Toda série temporal pode ser decomposta em 3 partes: tendência, sazonalidade e resíduo, que é o que resta após retirar da série as duas primeiras partes, abaixo a separação dessas partes:

Claramente a série tem uma tendência de alta, com picos entre o final e inicio de anos e mínimas entre abril e setembro (início da moagem de cana no centro-sul do Brasil).

Porém é indicado utilizar testes estatísticos para confirmar se a séries é estacionária, vamos usar dois testes: o teste de Dickey Fuller e o teste KPSS.

Primeiramente vamos usar o teste de Dickey Fuller, usarei o valor P base de 5%, ou seja, caso o valor P esteja abaixo desses 5% significa que a série é estatisticamente estacionária.

Além disso, existe o Teste estatístico do modelo, onde estes valores podem ser comparados com os valores críticos de 1%, 5% e 10%, caso o teste estatístico esteja abaixo de algum valor critico escolhido a série será estacionária:

Neste caso o teste de Dickey Fuller indicou que a série não é estacionária (Valor P de 36% e o valor crítico de 5% é menor que o teste estatístico)

Agora vamos analisar a série com o teste KPSS, ao contrário do teste de Dickey Fuller, o teste KPSS já pressupõe que a série é estacionária e só não será se o valor P for inferior a 5% ou o teste estatístico for menor que algum valor crítico escolhido:

Confirmando o teste de Dickey Fuller, o teste KPSS também mostra que a série não é estacionária, pois o valor P está em 1% e o teste estatístico está acima de qualquer valor crítico.

A seguir irei demonstrar maneiras de transformar uma série para que ela fique estacionária.

Transformando a série em estacionária

Diferenciação

A diferenciação é usada para remover os sinais de tendências e reduzir a variância, ela simplesmente é a diferença do valor do período T com o valor do período anterior T-1.

Para ficar mais fácil o entendimento, abaixo pegamos somente uma fração dos preços do etanol para melhor visualização, note a partir de mai/05 os preços começam a subir até meados de mai/06, os preços tem subidas semanais que se acumulam criando uma tendência de alta, este é um caso de série não estacionária.

Ao se fazer a primeira diferenciação (gráfico abaixo), retiramos o efeito acumulado da série e só mostramos a variação do período T contra o período T-1 ao longo de toda a série, assim, se o preço de 3 dias atrás estiver a R$ 800,00 e variou para R$ 850,00, o valor da diferenciação será de R$ 50,00 e se o valor de hoje estiver a R$ 860,00 então a diferença será de -R$ 10,00.

Normalmente só é necessário uma diferenciação para transformar uma série em estacionária, mas caso seja necessário, pode-se aplicar uma segunda diferenciação, neste caso a diferenciação será sobre a primeira diferenciação (dificilmente haverá casos com mais do que 2 diferenciações).

Usando o mesmo exemplo, para se fazer uma segunda diferenciação devemos pegar a diferenciação de T menos T-1: R$ 2.9 — R$ 5,5 = -R$ 2,6 e assim por diante.

Vamos fazer o teste de Dickey fuller para ver se a série ficará estacionária com a primeira diferenciação:

Neste caso confirmamos que a série está estácionária, o valor P está zerado e se formos comparar, o valor do teste estatístico está muito abaixo dos valores críticos.

Próximo exemplo para tentar transformar uma série em estacionária é usar o ajuste de inflação.

Ajuste de Inflação

Preços de produtos são relativos ao tempo que foram negociados, em 2002 o preço do etanol estava a R$ 680,00, se o preço deste produto fosse negociado neste preço nos dias de hoje certamente muitas usinas estariam fechadas, pois é muito baixo.

Para tentar tornar a série estacionária, irei colocar a série toda com base nos valores atuais pelo IPCA, acumulando do final do treino (abr/16) até o início do estudo, a fonte dos dados está no site do IBGE.

Após fazer o ajuste dos preços com base na inflação, o gráfico mudou significativamente, a tendência de alta aparentemente desapareceu e a série parece bem mais linear com variações sazonais, para confirmar se a série realmente está estacionária vamos fazer o teste de Dickey Fuller e ver como o resultado ficou:

Seguindo a análise visual, o teste de Dickey Fuller também confirma que a séries agora é estacionária, apenas por questão de curiosidade, veja abaixo o gráfico com o preço com ajuste de inflação contra o original:

Reduzindo a variância

Logaritmo

O logaritmo geralmente é usado para transformar séries que tem valores com crescimentos exponenciais em séries com crescimentos mais lineares, neste exemplo usaremos o Logaritmo Natural (LN), onde a base é 2,718, este tipo de logaritmo é bastante usado em modelos econômicos.

A diferença dos valores transformados em LN são aproximadamente equivalentes à variação percentual dos valores da série original, o que vale como base para redução da variância em séries com preços diferentes, veja o exemplo abaixo:

Se tivermos um produto que teve aumento de preços no ano de 2000 e saiu de R$ 50,00 para 52,50, algums anos depois (2019) o preço já estava em R$ 100,00 e alterou para R$ 105,00, a diferença absoluta entre os preços é de R$ 2,50 e R$ 5,00 respectivamente, porém a diferença percentual de ambos é de 5%.Ao usarmos o LN nesses preços temos: LN(52,50) - LN(50,00) = 3,96 - 3,912 = 0,048 ou seja 4,8%,
do mesmo jeito usando o LN na segunda sequência de preços temos: LN(105) - LN(100) = 4,654 - 4,605 = 0,049 ou seja 4,9%.

Nesse exemplo conseguimos diminuir a variação dos valores trazendo quase para a mesma base de variação.

Abaixo o mesmo exemplo em python:

Resultado: A variação percentual do primeiro exemplo é 4.9% e do segundo é 4.9%

Abaixo a tabela comparando valores de variação percentual de X com os valores de variação do LN(X):

Fonte

Vamos plotar os gráficos para ver como ficarão os preços com o ajuste de LN:

Transformação de Box-Cox (Power Transform)

A transformação de BOX COX é também uma maneira de transformar uma série através do valor base da função que neste caso é lambda (λ), resumindo, esta função é a junção de várias funções de transformação exponêncial, onde busca-se o melhor valor de lambda que transforme a série para que fique com uma distribuição mais próxima de uma distribuição normal gaussiana. Uma pré condição para essa transformação é que a série só tenha valores positivos, a fórmula é:

Abaixo irei plotar o gráfico da série original com sua distribução e logo depois a série transformada com o valor ideal de lambda com sua nova distribuição, para encontrar o valor de lambda vamos usar a função boxcox da biblioteca Scipy, onde ele gera a série transformada e o lambda ideal:

Abaixo um gráfico interativo, onde mudei o valor de lambda entre -5 e +5 para ver as mudanças:

Essa ferramenta geralmente é usada para melhorar o desempenho do modelo, pois torna ele com distribuições mais normais, lembrando que depois de terminar a previsão do modelo, deve-se voltar à base original desfazendo a transformação conforme fórmula abaixo:

À procura de lags correlacionados

Para ter previsibilidade uma série com uma única variável deve ser auto correlacionada, ou seja, o período atual deve ter explicação com base em um período anterior (lag).

Como esta série de preços tem períodos semanais, 1 ano tem aproximadamente 52 semanas, irei usar a função de auto correlação para um período de 60 lags para verificar correlações do período atual com estes lags.

Ao analisar o gráfico de auto correlação gerado acima acredita-se que todos os lags poderiam ser usados para criar previsões para eventos futuros, pois todos tem uma correlação positiva próximo de 1 e estão fora do intervalo de confiança, porém essa característica de auto correlação é de uma série não estacionária.

Uma outra função extremamente importante é a função de auto correlação parcial, onde o efeito do lag anterior sobre o período atual é removido e só resta o efeito do lag analisado sobre o período atual, exemplo: a auto correlação parcial do quarto lag irá remover o efeito do primeiro, segundo e terceiro lag.

Abaixo o gráfico de auto correlação parcial:

Como pode ser visto, quase nenhum lag tem efeito sobre o período atual, porém como demonstrado anteriormente, a série sem diferenciação não é estacionária, iremos plotar agora essas duas funções com a série com uma diferenciação para ver como fica:

O gráfico de auto correlação mudou significativamente, mostrando que a série tem correlação significativa somente no primeiro lag da auto correlação, e dois significativos no gráfico de auto correlação parcial, além disso, tem um efeito sazonal com correlação negativa ao redor do vigésimo sexto mês (metade de um ano).

Um detalhe extremamente importante sobre encontrar lags correlacionados para criar previsões é que é importante que haja uma razão para que esta correlação exista, pois caso não haja alguma razão lógica é possível que seja só o acaso ou que a parte que está sendo analisada apresentou esta correlação, podendo mudar ao analisar outra parte da série.

Outro ponto importante é que os gráficos de auto correlação e auto correlação parcial são muito sensíveis à pontos fora da curva (outliers), assim, é importante que se analise o gráfico da série normal para conferir com os dois gráficos de correlação.

Neste exemplo o primeiro lag tem uma correlação alta com o período atual, pois os preços da semana anterior historicamente não variam significativamente, no mesmo caso o vigésimo sexto lag apresenta uma correlação negativa, indicando uma tendência contrária ao período atual, provavelmente devido à períodos de oferta e demanda bastante diferentes ao longo de um ano.

Como a série com o preço ajustado pela inflação se tornou estacionária, usaremos ela no momento de fazer as previsões, abaixo os gráficos de auto correlação e auto correlação parcial da série ajustada:

Usaremos somente os dois primeiros lags como fator de previsão para séries auto regressivas.

Para mais informações, o site do professor Robert Nau da Duke University é um dos melhores relacionados ao assunto.

Métricas para avaliar o modelo

Para analisar se as previsões estão com os valores próximos dos dados reais deve-se fazer a medição do erro, o erro (ou resíduo) neste caso é basicamente Yreal − Yprev.

Avalia-se o erro nos dados de treino para verificar se o modelo tem boa assertividade, e valida-se o modelo verificando o erro nos dados de teste (dados que não foram “vistos” pelo modelo).

Abaixo estão as principais métricas usadas para avaliar modelos de séries temporais:

Mean Forecast Error — (Erro Médio da Previsão ou Viés)

O erro médio da previsão nada mais é do que a média dos erros da série avaliada, os valores podem ser positivos ou negativos. Essa métrica sugere que o modelo tende a fazer previsões acima do real (erros negativos) ou abaixo do real (erros positivos), desse modo também pode-se dizer que o erro médio é o viés do modelo.

MAE — Mean Absolute Error — (Erro Médio Absoluto)

Essa métrica é muito semelhante ao erro médio da previsão mencionado acima, a única diferença é o erro com valor negativo, ou seja, a previsão com valor maior que o número real, é transformado em positivo e posteriormente a média é calculada.

Essa métrica é muito usada em séries temporais, pois há casos que o erro negativo pode zerar o positivo ou dar uma ideia que o modelo é preciso, no caso do MAE isso não acontece, pois essa métrica mostra o quanto a previsão está longe dos valores reais, independente se acima ou abaixo, veja o caso abaixo:

Resultado: O erro de cada valor do modelo ficou assim: [-4 -2 0 2 4]
O cálculo do erro da MFE é 0.0, o erro do MAE é 2.4

MSE — Mean Squared Error — (Erro Quadrático Médio)

Essa métrica coloca mais peso nos erros maiores, pois cada valor individual do erro é elevado ao quadrado e posteriormente a média desses valores é calculada. Assim, essa métrica é muito sensível à outliers e coloca bastante peso nas previsões com erros mais significativos.

Diferente do MAE e MFE, os valores do MSE estão em unidades quadráticas e não na unidade do modelo.

RMSE — Root Mean Squared Error — (Erro Quadrático Médio da Raiz)

Essa métrica é simplesmente a raiz quadrada do MSE, onde o erro volta a ter a unidade de medida do modelo (R$/m3), ela é muito usada em séries temporais porque é mais sensível à erros maiores devido ao processo de elevação ao quadrado que a originou.

MAPE — Mean Absolute Percentage Error — (Erro Percentual Médio Absoluto)

Essa é outra métrica interessante de ser usada, geralmente usada em relatórios gerenciais, pois o erro é medido em termos percentuais e pode-se comparar o erro percentual do modelo de um produto X com o erro percentual de um produto Y.

O cálculo dessa métrica pega o valor absoluto do erro dividido pelo preço real e posteriormente é calculada a média:

Vamos criar uma função para avaliar o erro dos dados de treino e teste com várias métricas de avaliação:

Checando os valores residuais

Criar o modelo e verificar o valor do seu resíduo de acordo com a métrica escolhida não é suficiente, é necessário analisar também as características do próprio resíduo, pois há casos em que o modelo não consegue capturar as informações necessárias para se fazer uma boa previsão resultando em um resíduo com “informações na mesa”.

Para verificar este resíduo iremos checar:

  • Valores reais vs previstos (sequencial);
  • Resíduo vs valores previstos (dispersão):

É muito importante analisar este gráfico, pois nele podemos verificar padrões que podem nos dizer se é necessária alguma modificação no modelo, o ideal é que o erro esteja distribuído linearmente ao longo da sequência da previsão.

Resumindo esse é um gráfico que mostra onde o resíduo deveria estar distribuído teoricamente, seguindo uma distribuição gaussiana, contra como ele realmente ficou.

  • Auto correlação do resíduo (sequencial):

Onde não deve haver valores que saiam da margem de confiança, ou o modelo está deixando informação na mesa.

Para isso precisamos criar outra função para plotar estes gráficos:

Formas mais básicas para se fazer uma previsão

A partir de agora iremos criar alguns modelos de previsão de preços do etanol Hidratado, abaixo estarão os passos que iremos seguir para cada modelo:

  • Criar previsão nas base de treino posteriormente validar na base de teste;
  • Checar o erro de cada modelo de acordo com as métricas mencionadas acima;
  • Plotar o modelo com os comparativos do resíduo.

Vamos aos modelos:

Abordagem Simples:

A maneira mais simples de se fazer uma previsão é usar o valor do período anterior, há casos que essa é a melhor abordagem que pode ser feita, onde o erro fica inferior às outras formas de previsão, porém usar essa metodologia para prever vários períodos adiante geralmente não funciona bem, pois os erros em relação ao valores reais tendem a aumentar.

Muitas pessoas também usam essa abordagem como baseline para tentar melhorar com modelos mais complexos.

Abaixo vamos usar os dados de treino e plotar o gráfico com previsões, e mostrar o erro do modelo conforme segue:

O gráfico QQ mostra que há alguns resíduos maiores (para cima e para baixo) do que teoricamente deveriam haver que são os chamados outliers, e ainda existe uma auto correlação significativa no primeiro, sexto e sétimo lag, os quais poderiam ser usados para melhorar o modelo.

Do mesmo modo iremos agora fazer a previsão nos dados de teste. O primeiro valor da série prevista será o último dos dados de treino, posteriormente esses valores serão atualizados passo-a-passo pelo primeiro valor do teste e assim por diante, o resultado ficou assim:

Os erros RMSE e MAE ficaram semelhantes aos dados de treino, o gráfico QQ está com os resíduos mais alinhados com o que deveria teoricamente estar, provavelmente devido à poucos valores de amostras comparado com o treino.

No gráfico que compara os resíduos com os valores previstos nota-se que há uma tendência de os erros aumentarem em valores absolutos quando os preços aumentam, talvez um ajuste com logaritmos diminuísse essa expansão dos erros, e para finalizar o gráfico de auto correlação dos resíduos mostram que ainda há espaço para melhoras, pois há uma correlação forte no primeiro lag, onde provavelmente poderia ser adicionada uma regressão com base no primeiro lag para melhorar as previsões.

Próximo modelo é o de médias simples:

Média simples:

Outra forma de se fazer previsões, é usar a média da série, geralmente esta forma de previsão fica boa quando os valores oscilam ao redor da média, com variância constante e sem tendências de alta ou de baixa, porém é possível usar métodos melhores, onde possa fazer a previsão usando padrões sazonais entre outros.

Este modelo usa a média do início dos dados até a data anterior e vai expandindo diariamente até o final dos dados, no final a tendência é que a linha fique reta, vamos agora comparar o erro deste modelo com o primeiro:

Na base de testes continuarei a usar a média do início dos dados do treino e farei a expansão da média de acordo com os valores que serão acrescentados nos dados de teste:

O modelo de média simples não conseguiu capturar informações relevantes da série de preços, como pode ser visto no gráfico de Real vs Previsto como também nos gráficos de auto correlação e Resíduos vs Previsto.

Média móvel simples:

A média móvel é uma média que é calculada por um período determinado (5 dias por exemplo) e vai se movendo e sendo calculada sempre usando este período determinado, neste caso estaremos usando sempre a média os últimos 5 dias para prever o valor do dia seguinte, abaixo o erro no treino:

O erro ficou inferior à média simples, porém ainda acima do modelo simples, abaixo o modelo de teste:

Do mesmo modo que o treino, o modelo de médias móveis estão melhores do que a média simples, porém ainda não ganham do modelo simples. As previsões estão com auto correlação em dois lags e o erro está com uma variância muito alta em relação aos valores previstos.

Média Móvel Exponencial:

O modelo de média móvel simples descrito acima tem a propriedade de tratar as últimas X observações igualmente e ignorar completamente todas as observações anteriores. Intuitivamente, dados passados devem ser descontados de forma mais gradual, por exemplo, a observação mais recente teoricamente deve ter um pouco mais de peso do que o segundo mais recente, e o segundo mais recente deve ter um pouco mais de peso que o terceiro mais recente, e assim por diante, o modelo de Média móvel exponencial (MME) faz isso.

Sendo α (alpha) uma constante com valor entre 0 e 1, iremos calcular a previsão com a fórmula a seguir:

Onde o primeiro valor da previsão é o valor atual respectivo, os outros valores irão ser atualizados por α vezes a diferença entre o valor real e a previsão do período anterior. Quando alpha é zero temos uma constante baseada no primeiro valor da previsão, quando α é 1 temos um modelo com abordagem simples, pois o resultado é o valor do período anterior.

Abaixo um gráfico com vários valores de α:

O período médio dos dados na previsão de MME é 1 / α. Por exemplo, quando α = 0,5, o lag é equivalente a 2 períodos; quando α = 0,2 o lag é de 5 períodos; quando α = 0,1 o lag é de 10 períodos e assim por diante.

Neste modelo iremos usar arbitrariamente um α de 0,50, porém você pode fazer um grid search para procurar o α que reduz o erro no treino e também na validação, vamos ver como vai ficar:

O erro deste modelo foi semelhante ao erro das médias móveis, porém temos que validar o modelo na base de testes:

Na validação o erro até o momento é o segundo melhor dos modelos que já treinamos., porém as características dos gráficos dos resíduos são muito semelhantes aos gráficos do modelo da média móvel de 5 dias.

Auto Regressivo:

Um modelo auto regressivo é basicamente uma regressão linear com lags significativamente correlacionados, onde inicialmente deve-se plotar o gráfico de auto correlação e auto correlação parcial para verificar se existe algo relevante, havendo, treina-se o modelo com estes lags.

Abaixo está o gráfico de auto correlação e auto correlação parcial da série de treino que mostra uma assinatura de modelo auto regressivo e com os dois primeiros lags com correlações significativas:

Abaixo vamos criar o modelo com base nos dados de treino e após obter os coeficientes do modelo, iremos multiplicá-los pelos valores que forem sendo realizados pelos dados do teste.

O resultado do erro no modelo de treino foi muito bom, o melhor até o momento:

Agora vamos usar os coeficientes dele para fazer a previsão passo-a-passo dos dados de treino, o resultado na base de testes ficou:

Nota-se que na validação dos dados o erro não se manteve estável, ficando até pior que o modelo simples, note no gráfico que as previsões estão quase sempre abaixo dos valores reais, a medição do Viés mostra que os valores reais estão R$ 53,89 acima das previsões, talvez afinando alguns parâmetros no modelo de treino essa diferença diminuísse.

Para melhorar estes modelos pode-se aplicar várias transformações, como as explicadas neste post, além disso pode-se adicionar variáveis externas como fonte de previsão, porém este é um assunto para outro post.

Considerações Finais

Cada modelo de série temporal tem suas próprias características, devendo elas serem analisadas para podermos extrair o máximo de informação possível e consequentemente fazermos boas previsões para reduzir a incerteza do futuro.

Checar estacionariedade, transformar os dados, criar modelo, validar na base de testes, checar o erro são passos fundamentais para criar uma boa previsão de séries temporais.

Em breve também farei outro post relacionado à detalhes de modelos ARIMA.

Espero que tenha gostado, qualquer dúvida ou informação segue meu LinkedIn para contato.

--

--

Leandro Rabelo
Ensina.AI

Into Time Series, Data Science and Machine Learning