Previsão ARIMA com sazonalidade e tendência, resultado estranho

9

enquanto passo para a previsão com os modelos ARIMA, estou tentando entender como posso melhorar uma previsão com base no ajuste do ARIMA à sazonalidade e à deriva.

Meus dados são as seguintes séries temporais (mais de 3 anos, com clara tendência ascendente e sazonalidade visível, o que parece não ser suportado pela autocorrelação nos intervalos 12, 24, 36 ??).

    > bal2sum3years.ts
             Jan     Feb     Mar     Apr     May     Jun     Jul     Aug          
    2010 2540346 2139440 2218652 2176167 2287778 1861061 2000102 2560729 
    2011 3119573 2704986 2594432 2362869 2509506 2434504 2680088 2689888 
    2012 3619060 3204588 2800260 2973428 2737696 2744716 3043868 2867416 
             Sep     Oct     Nov     Dec
    2010 2232261 2394644 2468479 2816287
    2011 2480940 2699780 2760268 3206372
    2012 2951516 3119176 3032960 3738256

O modelo sugerido por auto.arima(bal2sum3years.ts)mim me deu o seguinte modelo:

    Series: bal2sum3years.ts 
    ARIMA(0,0,0)(0,1,0)[12] with drift         

    Coefficients:
              drift
          31725.567
    s.e.   2651.693

    sigma^2 estimated as 2.43e+10:  log likelihood=-321.02
    AIC=646.04   AICc=646.61   BIC=648.39

No entanto, o acf(bal2sum3years.ts,max.lag=35)não mostra coeficientes de ACF superiores a 0,3. A sazonalidade dos dados é, no entanto, bastante óbvia - pico no início de cada ano. É assim que a série se parece no gráfico: Séries cronológicas originais

A previsão usando fit=Arima(bal2sum3years.ts,seasonal=list(order=c(0,1,0),period=12),include.drift=TRUE), chamada por função forecast(fit), resulta nas médias dos próximos 12 meses iguais aos últimos 12 meses dos dados mais constantes. Isso pode ser visto chamando plot(forecast(fit)),

Dados reais e previstos

Também verifiquei os resíduos, que não são autocorrelacionados, mas têm média positiva (diferente de zero).

O ajuste não modela a série cronológica original com precisão, na minha opinião (azul a série cronológica original, vermelho é o fitted(fit):

Original vs fit

A opinião é: o modelo está incorreto? Estou esquecendo de algo? Como posso melhorar o modelo? Parece que o modelo leva literalmente os últimos 12 meses e adiciona uma constante para atingir os próximos 12 meses.

Sou iniciante em modelos e estatísticas de previsão de séries temporais.

zima
fonte
" O ajuste não modela a série cronológica original com precisão, na minha opinião " - por que você esperaria?
Glen_b -Reinstala Monica
@Glen_b, essa opinião foi baseada nas diferenças que vejo quando olho para o enredo. Se eu estou tentando previsão, por exemplo, as vendas mensais para fins contábeis, o erro pode ser significativo ...
zima
" as diferenças que vejo quando olho para o enredo " é outra maneira de dizer " não modela a série temporal com precisão ". Isso não está em disputa. Sua expressão de desejo por uma previsão melhor é o mesmo que todo previsor tem. Em muitos casos, isso pode ser muito importante. No entanto, esse desejo não coloca mais informações nos dados. Todo modelo ARIMA - de fato, qualquer modelo de série temporal relevante para esta tarefa - possui um termo de erro diferente de zero. Haverá sempre ser incompatibilidade entre os dados e ajuste. Existe algo que faz você pensar que seu modelo perdeu algo que pode ser modelado?
Glen_b -Reinstate Monica
Acabei de pensar em algo. Talvez o modelo ARIMA não consiga refletir os dados devido a não levar em conta a natureza dos dados - atividade do usuário no site. Acho que pode haver outros eventos afetando os números, não apenas a sazonalidade - como eventos especiais, promoções. Talvez outros métodos de previsão (não o ARIMA), mas mais complexos, envolvendo técnicas de aprendizado de máquina, sejam capazes de prever melhor os valores. Vou analisar isso.
Zima
Bastante plausível. Nesse caso, você deve conseguir identificar essa falha nos resíduos. Observe que os modelos ARIMA e os modelos estruturais de séries temporais podem incorporar coisas como eventos especiais e promoções por meio de termos de regressão; modelos de regressão de séries temporais são bastante comuns.
Glen_b -Reinstala Monica

Respostas:

9

Eu[12]

Sim, de fato, o modelo sugerido é "Este junho = junho passado + constante + erro" e da mesma forma para os outros meses.

O que há de errado com isso exatamente? Parece ser uma excelente descrição dos seus dados.

Você pode achar uma decomposição de séries temporais mais intuitiva e fácil de explicar, talvez até algo baseado em um Modelo Estrutural Básico - um com sazonalidade - mas que não implique necessariamente um modelo que funcione melhor do que o que você possui. Ainda vale a pena tentar uma ou mais das técnicas de decomposição padrão - há muito a ser dito sobre um modelo que você compreende bem.

Glen_b -Reinstate Monica
fonte
1

Acredito que nosso problema é que estamos pulando diretamente para o modelo ARIMA sem experimentar os modelos tradicionais. por esse motivo, você pode descobrir que o modelo não está fornecendo os resultados necessários. No seu caso, testei seus dados, descobri que há uma sazonalidade a cada 12 meses, o que é claro para você, mas também descobri que uma média móvel simples de 3 termos Ajuste sazonal: Multiplicativo é o melhor modelo. Na minha opinião, temos que tentar os algoritmos tradicionais de previsão antes de pular para qualquer técnica avançada. Previsão de 12 meses para dados de perguntas

Awbath
fonte
11
O modelo que você está sugerindo é um modelo ARIMA da forma (3,0,0) (0,0,0), no qual você codifica os três coeficientes para 0,333, 0,333 e 0,333 e uma constante de 0,0. Portanto, não apenas assumimos a forma do modelo de arima, mas também assumimos os valores dos coeficientes E não existem valores extremos na série. Permita que os dados falem por si em termos da forma do modelo e dos valores ideais para os parâmetros ... você não tem nada a perder e muito a ganhar. Se seu modelo estiver correto, ele será encontrado. Todos os modelos arima são funções ponderadas do passado.
IrishStat
11
stats.stackexchange.com/questions/40905/… explica como a modelagem ponderada e o arima estão relacionados. Dessa maneira, um modelo ARIMA pode ser explicado como a resposta à pergunta Quantos valores históricos devo usar para calcular uma soma ponderada do passado? Precisamente quais são esses valores?
IrishStat