O ARIMA (AutoRegressive Integrated Moving Average) é um modelo estatístico amplamente utilizado para análise e previsão de séries temporais. Ele combina três componentes principais:- AR (AutoRegressivo): Dependência dos valores passados.- I (Integrado): Diferenciação para tornar a série estacionária.- MA (Média Móvel): Dependência dos erros passados.Assim, ARIMA acaba criar um arcabouço para lidar com séries temporais muito melhor que uma regressão linear simples. Vamos explicar o que é ARIMA e depois comparar com uma regressão linear simples para entender por que ela é melhor quando lidamos com o tempo.Componentes do Modelo ARIMA1. AR(p) – AutoRegressivo de Ordem pSéries AutoRegressivas são aquelas que dependem dos próprios valores passados, geralmente estamos falando de número populacional ou preço de produtos, inflação no geral. Em uma população o número de indivíduos cresce no tempo, e conforme mais indivíduos, mais é possível crescer. Preço de produto depende do valor do ano passado mais a inflação no ano e repare que a inflação é uma percentagem do valor antigo do produto.Modela \( Y_t \) como uma combinação linear de seus valores passados:\[ Y_t = c + \phi_1 Y_{t-1} + \phi_2 Y_{t-2} + \dots + \phi_p Y_{t-p} + \epsilon_t \]Sendo p o número de lags usados.2. I(d) – Integração de Ordem dNúmero de diferenciações necessárias para tornar a série estacionária, isto é, sem tendência de crescimento ou queda.Uma série temporal é considerada estacionária quando suas propriedades estatísticas (como média, variância e autocorrelação) não mudam ao longo do tempo. Isso é crucial para modelos como ARIMA, que assumem estacionariedade para fazer previsões confiáveis. Utilize do Teste de Dickey-Fuller Aumentado para verificar estacionariedade. Esse teste será visto mais na frente, aqui farão no olho.Olhe para a série a seguir e repare que trabalhar com a diferença entre os valores no tempo mantém a série com média constante:Mês (t)Vendas (Yₜ)1ª Diferença (∇Yₜ)1100–2120120 - 100 = 203130130 - 120 = 104150150 - 130 = 205170170 - 150 = 206190190 - 170 = 20Assim, aplicamos I(d) quando percebemos uma tendência de crescimento ou queda na sua série. Caso o crescimento não seja linear, podemos usar I(2) ao invés de I(1), isto é, aplicar novamente a diferença até termos média constante.3. MA(q) – Média Móvel de Ordem qUsamos o MA(q) quando sua série tem picos repentinos e você precisa corrigir para os erros só daquele momento. Usamos MA(1) ou MA(2) quando a série tem "memória curta". O valor é afetado pelo erro anterior. Exemplos de dados que sofrem impactos temporários: preços de ações ou produtos após um evento único, demanda após uma promoção relâmpago.Modela \( Y_t \) como uma combinação linear de erros passados:\[ Y_t = \mu + \epsilon_t + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \dots + \theta_q \epsilon_{t-q} \]- q: Número de termos de erro usados.- FAC: Identifica a ordem \( q \) (corte no lag significativo).Dia (t)Preço (Yₜ)Erro (εₜ)Cálculo do Modelo MA(2)150.00+2.00-252.00-1.00-351.50+1.50Y₃ = 50 + 1.50 + 0.8×(-1) + 0.3×2 = 51.50452.80-0.80Y₄ = 50 + (-0.80) + 0.8×1.5 + 0.3×(-1) = 52.80553.34+0.34Y₅ = 50 + 0.34 + 0.8×(-0.8) + 0.3×1.5 = 53.34652.72-0.28Y₆ = 50 + (-0.28) + 0.8×0.34 + 0.3×(-0.8) = 52.72Notação ARIMA(p, d, q)- ARIMA(1, 1, 1):- AR(1): \( Y_t \) depende de \( Y_{t-1} \).- I(1): 1ª diferenciação aplicada.- MA(1): \( Y_t \) depende de \( \epsilon_{t-1} \).Exemplo de Equação ARIMA(1,1,1):\[ \nabla Y_t = c + \phi_1 \nabla Y_{t-1} + \theta_1 \epsilon_{t-1} + \epsilon_t \]Exemplo Prático: Previsão de Vendas MensaisPasso 1: Carregar e Visualizar os DadosDados de vendas mensais (em milhares):MêsVendas110021203130415051706190Passo 2: Verificar Estacionariedade- Teste ADF: p-valor = 0,12 (não estacionária).- Aplicar 1ª diferenciação:\[ \nabla Y_t = Y_t - Y_{t-1} \]Podemos observar isso pela tabela abaixo:MêsVendas\( \nabla Y_t \)212020313020415010517020619020- Novo teste ADF: p-valor = 0,01 (estacionária).Passo 3: Definir o Modelo ARIMA(1,1,1)A fórmula do modelo é:\[ \nabla Y_t = \phi_1 \nabla Y_{t-1} + \theta_1 \epsilon_{t-1} + \epsilon_t \]Onde:- \(\nabla Y_t\) = Yₜ - Yₜ₋₁ (série diferenciada)- \(\phi_1\) = coeficiente AR(1)- \(\theta_1\) = coeficiente MA(1)- \(\epsilon_t\) = erro no tempo \(t\)Passo 4: Estimar os Coeficientes (AR e MA)Como estamos fazendo manualmente, usaremos valores típicos para ilustração:- \(\phi_1 = 0.6\) (AR)- \(\theta_1 = -0.3\) (MA)Pacotes como statsmodels do python utilizam de Markov Chain para chegar nas constantes ótimas minimizando o SSE da função.Passo 5: Calcular as PrevisõesVamos prever \(\nabla Y_t\) a partir do mês 3:Mês∇Yₜ (Real)Previsão ARIMA(1,1,1)310\(\hat{\nabla Y_3} = 0.6 \times 20 + (-0.3) \times \epsilon_2\)420\(\hat{\nabla Y_4} = 0.6 \times 10 + (-0.3) \times \epsilon_3\)520\(\hat{\nabla Y_5} = 0.6 \times 20 + (-0.3) \times \epsilon_4\)620\(\hat{\nabla Y_6} = 0.6 \times 20 + (-0.3) \times \epsilon_5\)Passo 6: Calcular os Erros (\(\epsilon_t\))Assumindo \(\epsilon_1 = 0\) (erro inicial):Mês∇Yₜ (Real)Previsão (\(\hat{\nabla Y_t}\))Erro (\(\epsilon_t = \nabla Y_t - \hat{\nabla Y_t}\))220-\(\epsilon_2 = 20 - 0 = 20\) (valor inicial)310\(0.6 \times 20 + (-0.3) \times 20 = 6\)\(\epsilon_3 = 10 - 6 = 4\)420\(0.6 \times 10 + (-0.3) \times 4 = 4.8\)\(\epsilon_4 = 20 - 4.8 = 15.2\)520\(0.6 \times 20 + (-0.3) \times 15.2 = 7.44\)\(\epsilon_5 = 20 - 7.44 = 12.56\)620\(0.6 \times 20 + (-0.3) \times 12.56 = 8.23\)\(\epsilon_6 = 20 - 8.23 = 11.77\)Passo 7: Prever o Próximo Mês (Mês 7)Usando os últimos valores:\[\hat{\nabla Y_7} = 0.6 \times 20 + (-0.3) \times 11.77 = 8.47\]\[ \hat{Y_7} = Y_6 + \hat{\nabla Y_7} = 190 + 8.47 = 198.47\]Resumo do Modelo ARIMA(1,1,1)- Equação estimada:\[ \nabla Y_t = 0.6 \nabla Y_{t-1} - 0.3 \epsilon_{t-1} + \epsilon_t \]- Previsão para o mês 7: ~198.5 (arredondado)Diferença entre os ARIMASModeloFórmulaQuando Usar?Exemplo PráticoARIMA(0,0,0)(White Noise)\( Y_t = \mu + \epsilon_t \)Quando a série é puro ruído sem padrõesTemperatura ambiente controladaARIMA(0,1,0)(Random Walk)\( Y_t = Y_{t-1} + \epsilon_t \)Séries com tendência estocásticaPreços de açõesARIMA(1,0,0)(AR(1))\( Y_t = c + \phi_1 Y_{t-1} + \epsilon_t \)Quando Yₜ depende apenas de Yₜ₋₁Demanda energética diáriaARIMA(0,0,1)(MA(1))\( Y_t = \mu + \epsilon_t + \theta_1 \epsilon_{t-1} \)Choques temporários afetam apenas 1 períodoVendas pós-promoçãoARIMA(1,0,1)(ARMA(1,1))\( Y_t = c + \phi_1 Y_{t-1} + \theta_1 \epsilon_{t-1} + \epsilon_t \)Quando há memória do valor passado E do erro passadoPreços de commoditiesARIMA(1,1,0)\( \nabla Y_t = \phi_1 \nabla Y_{t-1} + \epsilon_t \)Tendência + autocorrelação no 1º lagCrescimento do PIBARIMA(0,1,1)\( \nabla Y_t = \theta_1 \epsilon_{t-1} + \epsilon_t \)Tendência + choques temporáriosPreços de petróleoARIMA(1,1,1)\( \nabla Y_t = \phi_1 \nabla Y_{t-1} + \theta_1 \epsilon_{t-1} + \epsilon_t \)Combina todos os efeitosVendas com sazonalidadePor que usar ARIMA em vez de Regressão Linear com o Tempo?A escolha entre ARIMA e regressão linear com o tempo depende da estrutura dos dados e das suposições estatísticas. A Regressão Linear com o Tempo (Modelo Simples) assume que a série temporal pode ser modelada como:\[ Y_t = \beta_0 + \beta_1 \cdot t + \epsilon_t \]Onde:- \( t \) = variável temporal (ex: 1, 2, 3, ...).- \( \epsilon_t \) = erro aleatório.A Vantagem é por ser simples de implementar e interpretar. Também é util quando há uma tendência linear clara (ex: crescimento constante). Mas Ignora autocorrelação: Em séries temporais, valores passados influenciam valores futuros (ex: demanda de produtos, preços de ações); A regressão linear trata cada observação como independente, o que raramente é verdade em dados temporais. Também não lida com sazonalidade ou ciclos; se os dados têm padrões repetitivos (ex: vendas no Natal), a regressão linear não os captura. E exige resíduos não correlacionados: em séries temporais, os resíduos muitas vezes têm autocorrelação (ex: se hoje foi um dia de alta demanda, amanhã também pode ser).Comparação Direta: Regressão Linear vs. ARIMACritérioRegressão Linear com TempoARIMATendênciaModela apenas linearRemove tendência via diferenciaçãoAutocorrelaçãoIgnoraCaptura (AR e MA)SazonalidadeNão lidaModela (SARIMA)ResíduosExige independênciaPermite autocorrelação controladaComplexidadeBaixaAlta (escolha de p, d, q)Exercícios1. Qual é a diferença entre os componentes AR e MA em um ARIMA?a) AR usa valores passados, MA usa erros passados.b) AR é para tendência, MA é para sazonalidade.c) Ambos são iguais.2. Faça uma previsão para o tempo 6 usando ARIMA(0,1,0).MêsVendas1100212031304150517061903. Ajuste um ARIMA(1,0,0) para a série abaixo e faça uma previsão para t=5 com \(\phi_1 = 0.6\) e \(\theta_1 = -0.3\) e \(c=10\).tY1102153204254. Ajuste um ARIMA(1,0,1) para a série abaixo e faça uma previsão para t=5 com \(\phi_1 = 0.6\) e \(\theta_1 = -0.3\) e \(c=10\).tY1102153204255. Ajuste um ARIMA(1,1,1) para a série abaixo e faça uma previsão para t=5 com \(\phi_1 = 0.6\) e \(\theta_1 = -0.3\) e \(c=10\).tY1102153204256. Use ARIMA(1,1,0) para calcular a previsão para todos os tempos do 1 ao 6 (faça 1 tempo a mais). Use \(\phi_1 = 0.6\), \(\theta_1 = 0.3\) e \(c=20\). Após isso, calcule o SEE da previsão usando o tempo 2 a 5 como referência.TempoY (Vendas)180270390411051207. Use ARIMA(1,1,1) para calcular a previsão para todos os tempos do 1 ao 6 (faça 1 tempo a mais). Use \(\phi_1 = 0.6\), \(\theta_1 = 0.3\) e \(c=20\).TempoY (Vendas)18027039041105120Gabarito1. a)
— Commenti 0
, Reazioni 1
Diventa il primo a commentare