ARIMA significa média móvel integrada autorregressiva (Autoregressive Integrated Moving Average) e é uma técnica para análise de séries temporais e forecasting de possíveis valores futuros de uma série temporal.
A modelagem autorregressiva e a modelagem de médias móveis são duas abordagens diferentes para previsão de dados de séries temporais. O ARIMA integra essas duas abordagens, daí o nome. Forecasting é um ramo do aprendizado de máquina que usa o comportamento passado de uma série temporal para prever um ou mais valores futuros dessa série temporal. Imagine que você está comprando sorvetes para abastecer uma pequena loja. Se você sabe que as vendas de sorvete têm aumentado de forma constante à medida que o clima aquece, provavelmente deve prever que o pedido das próximas semanas deve ser um pouco maior do que o pedido desta semana. O quanto maior deve depender de o quanto as vendas desta semana diferem das vendas da semana passada. Não podemos prever o futuro sem um passado para compará-lo; portanto, os dados de séries temporais passadas são muito importantes para a ARIMA e para todos os métodos de forecasting e análise de séries temporais.
O ARIMA é uma das abordagens mais usadas para a forecasting de séries temporais e pode ser usada de duas maneiras diferentes, dependendo do tipo de dados de séries temporais com os quais você está trabalhando. No primeiro caso, criamos um modelo ARIMA não sazonal que não exige a contabilização da sazonalidade em seus dados de séries temporais. Prevemos o futuro simplesmente com base em padrões nos dados passados. No segundo caso, levamos em conta a sazonalidade, que são ciclos regulares que afetam as séries temporais. Esses ciclos podem ser diários, semanais ou mensais e ajudam a definir padrões nos dados anteriores da série temporal que podem ser usados para prever valores futuros. Como grande parte da ciência de dados, a base da forecasting é ter bons dados de séries temporais para treinar seus modelos. Uma série temporal é uma sequência ordenada de medições de uma variável em intervalos de tempo igualmente espaçados. É importante lembrar que nem todos os conjuntos de dados que possuem um elemento de tempo são, na verdade, dados de séries temporais, devido a esse requisito de intervalo de tempo igualmente espaçado.
Em 1970, os estatísticos George Box e Gwilym Jenkins propuseram o que ficou conhecido como o método de Box-Jenkins para ajustar qualquer tipo de modelo de séries temporais.1 A abordagem começa com a suposição de que o processo que gerou a série temporal pode ser aproximado usando um modelo, caso seja estacionário. Ela consiste em quatro etapas:
Identificação: avalie se a série temporal é estacionária e, se não for, quantas diferenças são necessárias para torná-la estacionária. Em seguida, gere dados diferenciados para uso em gráficos de diagnóstico. Identifique os parâmetros de um modelo ARIMA para os dados de autocorrelação e autocorrelação parcial.
Estimativa: use os dados para treinar os parâmetros do modelo (ou seja, os coeficientes).
Verificação de diagnóstico: avalie o modelo ajustado no contexto dos dados disponíveis e verificar as áreas onde o modelo pode ser aprimorado. Em particular, isso envolve a verificação do overfitting e o cálculo dos erros residuais.
Forecasting: agora que você tem um modelo, pode começar a prever valores com ele.
Depois de confirmar que seu modelo se ajusta corretamente aos seus dados, você estará pronto para iniciar a forecasting ARIMA. Examinaremos cada uma dessas etapas em detalhes.
Uma série temporal pode ser estacionária ou não estacionária. Uma série temporal estacionária possui propriedades estatísticas constantes ao longo do tempo. Isso significa que estatísticas como a média, a variância e a autocorrelação não mudam com os dados. A maioria dos métodos estatísticos de previsão, como o ARIMA, baseiam-se na suposição de que a série temporal pode ser tornada aproximadamente estacionária por meio de uma ou mais transformações. Uma série estacionária é relativamente fácil de prever, pois você pode supor que as propriedades estatísticas serão aproximadamente as mesmas no futuro. É possível trabalhar com dados não estacionários, mas é difícil com uma abordagem como o ARIMA.
Outra característica principal dos dados de séries temporais é a presença ou não de uma tendência. Por exemplo, os preços de itens básicos em um mercado nos últimos 50 anos apresentariam uma tendência de alta devido à inflação. Prever dados com tendências pode ser complicado, pois a tendência pode mascarar outros padrões nos dados. Caso os dados apresentem uma linha de tendência estável à qual retornam de forma consistente, eles podem ser estacionários em tendência. Nesse cenário, a tendência pode ser eliminada ajustando uma linha de tendência e subtraindo-a dos dados antes de modelá-los. Caso os dados não sejam estacionários em tendência, podem ser estacionários em diferença; nesse caso, a tendência é removida calculando as diferenças. A maneira mais simples de realizar a diferenciação é subtrair cada valor pelo anterior, obtendo uma medida das variações na série temporal. Então, por exemplo, se Yt é o valor da série temporal Y no período t, então a primeira diferença de Y no período t é igual a Yt-Yt-1.
Aqui vemos o gráfico de uma série temporal não estacionária. Tem uma tendência óbvia de aumento e exibe sazonalidade.
A sazonalidade aqui é um ciclo regular de 12 meses. Isso poderia ser resolvido diferenciando a série temporal em 12 unidades, de modo a diferenciarmos o abril de 1990 do abril de 1989. Depois de aplicarmos a diferenciação com uma defasagem de 12 unidades à série temporal, podemos ver uma série temporal mais estacionária. A variância dessa série temporal ainda muda, mas um modelo ARIMA poderia ser adequado a essa série temporal e às previsões feitas com ela.
A estacionariedade pode ser confusa; por exemplo, uma série temporal que apresenta comportamento cíclico, mas na qual nenhuma tendência ou sazonalidade é estacionária. Desde que os ciclos não tenham uma duração fixa quando observamos a série, não poderemos saber onde os picos e vales dos ciclos ocorrerão. Geralmente, uma série temporal estacionária não terá padrões previsíveis a longo prazo. Se você fosse plotar os dados de séries temporais em um gráfico de linhas, ele pareceria aproximadamente horizontal, com uma variância constante e sem picos ou quedas significativos.
Podemos ver o grau em que uma série temporal está correlacionada com seus valores passados calculando a autocorrelação. O cálculo da autocorrelação pode responder a perguntas sobre se os dados exibem aleatoriedade e como uma observação está relacionada a uma observação imediatamente adjacente. Isso pode nos dar uma noção de que tipo de modelo pode representar melhor os dados. As autocorrelações são frequentemente plotadas para ver a correlação entre os pontos até, e incluindo, a unidade de defasagem.
Cada defasagem na autocorrelação é definida como:
r é qualquer defasagem na autocorrelação, T é o comprimento da série temporal e y é o valor da série temporal. Os coeficientes de autocorrelação compõem a função de autocorrelação ou ACF.
Na ACF, o coeficiente de correlação está no eixo x, enquanto o número de defasagens (referido como ordem de defasagem) é mostrado no eixo y. Um gráfico de autocorrelação pode ser criado em Python usando plot_acf da biblioteca statsmodels e pode ser criado em R usando a função acf.
Neste gráfico ACF de uma série temporal diferenciada com uma defasagem de 12 unidades de tempo, a defasagem zero se correlaciona perfeitamente consigo mesma. A primeira defasagem é negativa, a segunda defasagem é ligeiramente positiva, a terceira defasagem é negativa e assim por diante. Você notará que a 12º defasagem está fortemente correlacionada consigo mesma. Como estávamos analisando dados mensais, isso faz sentido. Podemos ver que a autocorrelação mantém aproximadamente o mesmo ciclo ao longo da série temporal, uma indicação de que nossa série temporal ainda contém sazonalidade significativa. Os gráficos ACF também são úteis para ajudar a inferir os parâmetros do modelo ARIMA que melhor se ajustam a esses dados.
Outro gráfico importante na preparação para usar um modelo ARIMA em dados de séries temporais é a função de autocorrelação parcial. Um gráfico ACF mostra a relação entre yt e yt−k para diferentes valores de k. Se yt e yt−1 estão correlacionados, então yt−1 e yt−2 também estarão correlacionados. Mas também é possível que yt e yt-2 estejam correlacionados porque ambos estão conectados a yt-1, não por causa de qualquer nova informação contida em yt-2 que poderia ser usada na forecasting de yt. Para superar esse problema, podemos usar autocorrelações parciais para remover várias observações de defasagem. Essas medidas avaliam a relação entre yt e yt−k, após a remoção dos efeitos das defasagens 1 a k. Portanto, a primeira autocorrelação parcial é idêntica à primeira autocorrelação, pois não há nada entre elas para remover. Cada autocorrelação parcial pode ser estimada como o último coeficiente em um modelo autorregressivo.
Quer esteja trabalhando com R, Python ou outra linguagem de programação ou biblioteca, você terá uma maneira de calcular a PACF e criar um gráfico da PACF para facilitar a inspeção. Um gráfico de autocorrelação pode ser criado em Python usando plot_pacf da biblioteca statsmodels e pode ser criado em R usando a função pacf.
Essa PACF usa os mesmos dados que o gráfico ACF acima. O gráfico PACF começa em 1 em vez de 0 como no gráfico ACF e mostra fortes correlações até a defasagem 1,0, que se correlaciona com o mesmo mês do ano anterior. Após esse primeiro ano, vemos uma quantidade decrescente de autocorrelação à medida que o número de defasagens aumenta. Como estávamos analisando dados mensais com uma variância que muda ano a ano, isso faz sentido.
Como o próprio nome indica, o acrônimo ARIMA integra modelos de autorregressão e média móvel em um único modelo dependendo dos parâmetros passados. Essas duas maneiras de modelar mudanças ao longo da série temporal estão relacionadas, mas têm algumas diferenças importantes. Em um modelo de autorregressão, prevemos a variável de interesse usando uma combinação linear de valores passados da variável. O termo autorregressão indica que é uma regressão da variável em relação a si mesma. Essa técnica é semelhante a um modelo de regressão linear na forma como usa valores passados como entradas para a regressão. A autorregressão é definida como:
onde εt é ruído branco. Isso é semelhante a uma regressão múltipla, mas com valores defasados de yt como preditores. Chamamos isso de um modelo AR(p), um modelo autorregressivo de ordem p.
Um modelo de média móvel, por outro lado, usa os erros de previsão passados em vez de usar valores passados da variável de previsão em uma regressão. Uma média móvel simplesmente calcula a média dos valores de k em uma janela, onde k é o tamanho da janela de média móvel e, em seguida, avança a janela. Os valores de previsão são avaliados usando os valores reais para determinar o erro em cada etapa da série temporal. Uma média móvel é definida como:
εt é ruído branco. Nós nos referimos a isso como um modelo MA(q), um modelo de média móvel de ordem q. Obviamente, não observamos os valores de εt, então não é realmente uma regressão no sentido usual. Observe que cada valor de yt pode ser considerado uma média móvel ponderada dos últimos erros de previsão.
Normalmente, em um modelo ARIMA, você usará o termo Autorregressivo (AR) ou o termo Média móvel (MA). O gráfico ACF e o gráfico PACF são frequentemente usados para determinar qual desses termos é mais apropriado.
Uma vez que a série temporal tenha sido tornada estacionária e a natureza das autocorrelações tenha sido determinada, é possível ajustar um modelo ARIMA. Existem três parâmetros principais para um modelo ARIMA, que normalmente são chamados de p, d e q.
p: a ordem da parte autorregressiva do ARIMA
d: o grau de diferenciação envolvido
q: a ordem da parte da média móvel
Esses modelos são geralmente escritos na seguinte ordem: ARIMA(p, d, q). Muitas linguagens de programação e pacotes fornecem uma função ARIMA que pode ser chamada com a série temporal a ser analisada e esses três parâmetros. Frequentemente, os dados são divididos em um conjunto de treino e um conjunto de teste, para que a precisão do modelo possa ser testada após o treinamento. Geralmente, não é possível determinar apenas observando um gráfico temporal quais valores de p e q serão mais apropriados para os dados. No entanto, muitas vezes é possível usar os gráficos de ACF e PACF para determinar valores adequados para p e q, tornando esses gráficos importantes para trabalhar com ARIMA.
Uma regra geral para quando usar termos de RA no modelo é quando:
Uma rubrica aproximada de quando usar termos de MAS no modelo é quando:
Existem alguns tipos clássicos de modelos ARIMA que você pode encontrar.
ARIMA(1,0,0) = modelo autorregressivo de primeira ordem: se a série for estacionária e autocorrelacionada, talvez ela possa ser prevista como um múltiplo de seu próprio valor anterior, mais uma constante. Se as vendas de sorvete de amanhã puderem ser previstas diretamente usando apenas as vendas de sorvete de hoje, esse é um modelo autorregressivo de primeira ordem.
ARIMA(0,1,0) = passeio aleatório: se a série temporal não for estacionária, o modelo mais simples possível para ela é um modelo de caminhada aleatória. Um passeio aleatório é diferente de uma lista de números aleatórios porque o próximo valor na sequência é uma modificação do valor anterior na sequência. É assim que geralmente modelamos valores diferenciados para preços de ações.
ARIMA(1,1,0) = modelo autorregressivo de primeira ordem diferenciado: se os erros de um modelo de caminhada aleatória são autocorrelacionados, o problema pode ser resolvido adicionando uma defasagem da variável dependente à equação de previsão, ou seja, realizando uma regressão da primeira diferença de Y sobre si mesma, defasada por um período.
ARIMA(0,1,1) sem constantes = modelos de suavização exponencial simples: é usado para dados de séries temporais sem sazonalidade ou tendência. Exige um único parâmetro de suavização, que controla a taxa de influência das observações históricas (indicadas com um valor de coeficiente entre 0 e 1). Nessa técnica, valores mais próximos de 1 significam que o modelo presta pouca atenção às observações passadas, enquanto valores menores estipulam que mais da história é considerada durante as previsões.
ARIMA(0,1,1) com constante = modelos de suavização exponencial simples com crescimento. É o mesmo que a suavização exponencial simples, exceto pelo fato de que há um termo constante aditivo que faz com que o valor Y da série temporal cresça à medida que ela progride.
É claro que existem muitas outras maneiras pelas quais os modelos ARIMA podem ser ajustados, e é por isso que muitas vezes calculamos vários modelos e os comparamos para ver qual deles será o mais adequado para nossos dados. Todos esses são modelos de primeira ordem, o que significa que eles mapeiam processos lineares. Existem modelos de segunda ordem que mapeiam processos quadráticos e modelos superiores que mapeiam processos mais complexos.
Normalmente, vários modelos ARIMA são ajustados aos dados e comparados entre si para descobrir qual deles prevê melhor os padrões observados nos dados da série temporal. Há três métricas principais para avaliar a precisão de um modelo ARIMA:
Critério de Informação de Akaike (Akaike’s Information Criterion - AIC). É amplamente utilizado para selecionar preditores para modelos de regressão e também é útil para determinar a ordem de um modelo ARIMA. O AIC quantifica tanto a qualidade do ajuste do modelo quanto a simplicidade/parcimônia do modelo em uma única estatística. Uma pontuação AIC mais baixa é melhor do que uma mais alta; portanto, preferimos o modelo que tem uma pontuação mais baixa. O AIC favorece modelos mais simples; modelos mais complexos recebem pontuações mais altas, desde que sua precisão seja aproximadamente a mesma de um modelo mais simples. Há também o AIC corrigido, ou ou AICC, que simplesmente possui uma pequena correção aplicada ao tamanho da amostra.
Critério de Informação Bayesiano (Bayesian Information Criterion - BIC). Esse é outro critério para a seleção de modelos que penaliza a complexidade ainda mais do que o AIC. Assim como no AIC, modelos com BIC mais baixo geralmente são preferidos àqueles com pontuações mais altas. Se o seu modelo for usado para forecasting de longo prazo, o BIC pode ser preferível, enquanto a forecasting de curto prazo pode significar que o AIC é preferível.
O valor sigma ao quadrado, ou sigma2, é a variância dos resíduos do modelo. O termo sigma descreve a volatilidade do processo hipotético. Se você tiver dados altamente voláteis mas uma pontuação sigma ao quadrado muito baixa ou, ao contrário, dados não voláteis mas uma pontuação sigma ao quadrado alta, isso é um sinal de que o modelo não está capturando bem o processo de geração de dados reais.
Se retivermos um conjunto de dados de teste, também poderemos comparar métricas de precisão como RMSE para diferentes intervalos de previsão. O modelo ARIMA pode prever valores para uma única etapa de tempo no futuro ou para várias etapas de cada vez.
Uma outra abordagem para configurar e comparar modelos ARIMA é usar o Auto-ARIMA, que aplica tarefas de configuração automatizadas à geração e comparação de modelos ARIMA. Existem várias maneiras de chegar a qualquer modelo ideal. O algoritmo gerará vários modelos e tentará minimizar o AICc e o erro da Estimativa de Máxima Verossimilhança para obter um modelo ARIMA.
SARIMA (Seasonal Autoregressive Integrated Moving Average) ou ARIMA sazonal é uma extensão do ARIMA que suporta dados de séries temporais com um componente sazonal. Para isso, adiciona três novos hiperparâmetros para especificar a autorregressão, a diferenciação e a média móvel para o componente sazonal da série, bem como um parâmetro adicional para o período da sazonalidade. Um modelo SARIMA é tipicamente expresso como SARIMA((p,d,q),(P,D,Q)), onde as letras minúsculas indicam o componente não sazonal da série temporal e as letras maiúsculas indicam o componente sazonal.
Os modelos vetoriais autorregressivos (ou modelos VAR) são usados para séries temporais multivariadas. Eles são estruturados de modo que cada variável seja uma função linear de defasagens anteriores dela mesma e de defasagens anteriores das outras variáveis.
Os modelos ARIMA são uma ferramenta poderosa para analisar dados de séries temporais para entender processos passados, bem como para prever valores futuros de uma série temporal. Os modelos ARIMA combinam modelos autorregressivos e modelos de média móvel para fornecer ao previsor uma ferramenta altamente parametrizável, que pode ser usada com uma ampla variedade de dados de séries temporais.
Tenha acesso a insights exclusivos sobre o cenário em evolução das soluções avançadas de BI, destacando as principais descobertas, suposições e recomendações para líderes de dados e de análises.
Simplifique o acesso aos dados e automatize a governança dos dados. Conheça o poder da integração de uma estratégia de data lakehouse à sua arquitetura de dados, incluindo a otimização dos custos das suas cargas de trabalho e a escala de IA, com todos os seus dados, em qualquer lugar.
Explore o guia do líder de dados para criar uma organização baseada em dados e gerar vantagem comercial.
Saiba como uma abordagem de data lakehouse aberta pode oferecer dados confiáveis e execução mais rápida para as análises de dados e projetos de IA.
Para prosperar, as empresas devem utilizar os dados para conquistar a fidelidade do cliente, automatizar processos de negócios e inovar com soluções orientadas por IA.
Libere o valor dos dados empresariais com a IBM® Consulting, construindo uma organização orientada por insights, que proporciona vantagem comercial.
Apresentamos o Cognos Analytics 12.0, insights impulsionados por IA para maior eficiácia na tomada de decisão.
1 Time Series Analysis: Forecasting and Control, Holden Day, 1970.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com