Séries temporais de diferença antes de Arima ou dentro de Arima


12

É melhor diferenciar uma série (supondo que seja necessária) antes de usar um Arima OU melhor para usar o parâmetro d no Arima?

Fiquei surpreso com a diferença entre os valores ajustados, dependendo de qual rota é tomada com o mesmo modelo e dados. Ou estou fazendo algo incorretamente?

install.packages("forecast")
library(forecast)

wineindT<-window(wineind, start=c(1987,1), end=c(1994,8))
wineindT_diff <-diff(wineindT)

#coefficients and other measures are similar
modA<-Arima(wineindT,order=c(1,1,0))
summary(modA)
modB<-Arima(wineindT_diff,order=c(1,0,0))
summary(modB)

#fitted values from modA
A<-forecast.Arima(modA,1)$fitted

#fitted from modB, setting initial value to the first value in the original series
B<-diffinv(forecast.Arima(modB,1)$fitted,xi=wineindT[1])


plot(A, col="red")
lines(B, col="blue")

ADICIONAR:

Observe que estou diferenciando a série uma vez e ajustando o arima (1,0,0) e, em seguida, ajustando o arima (1,1,0) à série original. Estou (acho) invertendo a diferenciação nos valores ajustados para o arima (1,0,0) no arquivo diferenciado.

Estou comparando os valores ajustados - não as previsões.

Aqui está o gráfico (vermelho é arima (1,1,0) e azul é o arima (1,0,0) nas séries diferenciadas depois de voltar à escala original):

insira a descrição da imagem aqui

Resposta à resposta do Dr. Hyndman:

1) Você pode ilustrar no código R o que eu precisaria fazer para obter a correspondência entre os dois valores ajustados (e presumivelmente previsões) (permitindo uma pequena diferença devido ao seu primeiro ponto na sua resposta) entre o Arima (1,1, 0) e Arima (1,0,0) nas séries diferenciadas manualmente? Suponho que isso tenha a ver com a média de não ser incluído no modA, mas não tenho muita certeza de como proceder.

2) Em relação ao seu # 3. Eu sei que eu estou faltando o óbvio, mas não é X t = X t - 1 + φ ( X t - 1 - X t - 2 ) e Y t = φ ( X t - 1 - X t - 2 ) a mesmo quando Y t é definido como X t - X t - 1X^t=Xt1+ϕ(Xt1Xt2)Y^t=ϕ(Xt1Xt2)Y^tX^tXt1? Você está dizendo que eu estou "indiferenciando" incorretamente?


1
Em relação à sua atualização. 1) Não vejo sentido em fazer isso. Arima () produzirá os valores e previsões ajustados. Por que eu deveria produzir código R adicional para fazer o mesmo que o Arima () já faz? 2) Sim, mas diferenciar o X-hat não fornece Y-hat. Portanto, o Y-hat não diferenciado não lhe dá um X-hat.
Rob Hyndman

2
Obrigado. 1) Foi um exercício de aprendizado para mim. 2) Meu erro no cálculo da minha pergunta original (usando diffinv) foi no uso dos valores ajustados e não o original é o que eu acho que estou obtendo disso. (?) ... o que leva ao item 1 de como corrigir não diferencie os dados. Eu sei que o Arima fará isso, apenas tentando seguir um exemplo de livro usando as equações.
B_Miner

Respostas:


14

Existem várias questões aqui.

  1. Se você diferenciar primeiro, Arima()ajustará um modelo aos dados diferenciados. Se você deixar Arima()fazer a diferenciação como parte do procedimento de estimativa, ele usará um difuso anterior para a inicialização. Isso é explicado no arquivo de ajuda para arima(). Portanto, os resultados serão diferentes devido às diferentes maneiras pelas quais a observação inicial é tratada. Não acho que faça muita diferença em termos de qualidade da estimativa. No entanto, é muito mais fácil Arima()lidar com a diferenciação se você deseja previsões ou valores ajustados nos dados originais (não diferenciados).

  2. modBmodAArima()d=0d>0include.mean

  3. X^t=Xt1+ϕ(Xt1Xt2)
    Y^t=ϕ(Xt1Xt2)
    {Xt}{Yt}
    X^tX^t1Y^t.

1
+1, eu ia dar como resposta o 2 ponto. Parabéns por incluir o outro 2.
mpiktas

Dr. Hyndman, obrigado pela resposta! Tenho MUITO para aprender sobre análise de séries temporais. Posso pedir um acompanhamento? Não sei ao certo o que fazer com essas informações, por isso estou postando um complemento à minha pergunta original.
B_Miner

2

Às vezes, você precisa remover os meios locais para deixar a série estacionária. Se a série original tiver um ACF que não desapareça, isso pode ocorrer devido a uma mudança de nível / etapa na série. O remédio é eliminar a série.

RESPOSTA AO RECONHECIMENTO:

A maneira de obter os mesmos resultados / valores ajustados é após diferenciar fisicamente a série oroiginal (Y (t) para obter a primeira diferença (dely), estimar um AR (1) sem uma constante. Isso é o mesmo que ajustar um modelo OLS do forma dely (t) = B1 * dely (t-1) + a (t) SEM um intercepto. Os valores ajustados desse modelo, adequadamente integrados na ordem 1 (acredito) fornecerão os valores ajustados de um modelo; [ 1-B] [AR (1)] Y (t) = a (t). A maioria dos softwares, com a exceção observada de AUTOBOX, NÃO PERMITE QUE você estime um modelo AR (1) sem uma constante. equação para dely = + [(1- .675B * 1)] ** - 1 [A (T)] enquanto a equação para Y era

[(1-B * 1)] Y (T) = + [(1-676B * 1)] ** - 1 [A (T)]. Observe o erro de arredondamento causado pela diferenciação física de Y. Observe que quando a diferenciação está em vigor (no modelo) OU o usuário não pode selecionar se deseja incluir ou excluir a constante. O processo normal é incluir uma constante para um modelo ARIMA estacionário (ou seja, não diferenciado) e, opcionalmente, incluir uma constante quando houver diferença no modelo. Parece que a abordagem alternativa (Arima) força uma constante a um modelo estacionário que, na minha opinião, causou seu dilema.


Isso deve impactar os valores ajustados neste caso entre o arima (1,0,0) em delta-y e o arima (1,1,0) em y?
B_Miner 19/07/12

Nos dois casos, você está ajustando um AR (1) à primeira diferença da série temporal, certo? Se for esse o caso e os métodos de ajuste forem os mesmos, eles devem estar fazendo exatamente a mesma coisa. Não há diferença na ordem das operações.
22912 Michael Michael Chernick

Não parece ser o caso aqui. Talvez @Rob_Hyndman faça o check-in.
B_Miner

1

Não sei por que haveria diferença nos resultados, a menos que, de alguma maneira, você esteja diferenciando mais vezes uma maneira do que a outra. para um ARIMA (p, d, q), as diferenças d são feitas primeiro antes de qualquer ajuste do modelo. Em seguida, o modelo estacionário ARMA (p, q) é adequado às séries diferenciadas. O pressuposto é que, após a remoção das tendências polinomiais das séries, as demais são estacionárias. O número de diferenças corresponde à ordem do polinômio que você deseja remover. Portanto, para uma tendência linear, você apenas faz uma diferença; para uma tendência quadrática, você faz duas diferenças. Não concordo com a maior parte do que foi dito na resposta de John.


0

Uma razão para diferenciar uma série I (1) é torná-la estacionária. Presumindo que você tenha a especificação correta para o modelo ARIMA, os resíduos no modelo terão os componentes da média móvel e auto-regressivos removidos e devem ser estacionários. Nesse sentido, pode fazer sentido usar os resíduos no modelo, em vez de diferenciar. No entanto, nas circunstâncias em que você tem muitos dados que você pensa serem aproximadamente I (1), algumas pessoas apenas diferenciam os dados em vez de estimar totalmente o modelo ARIMA. O modelo ARIMA pode atender a uma série de problemas de séries temporais, onde pode não fazer sentido a diferença. Por exemplo, se os dados experimentam reversão média, isso pode nem sempre ser apropriado para a diferença, pois pode não ser I (1).


Você esperaria que as diferenças fossem tão grandes? Isso me fez pensar que estava fazendo algo incorretamente em como estava revertendo as diferenças para o original.
B_Miner

Você poderia explicar exatamente o que fez? Eu não sou bom em ler código R. Se você pegar o mesmo número de diferenças nos dois sentidos e ajustar o mesmo modelo ARMA após a diferenciação, deverá obter os mesmos resultados, desde que as técnicas de ajuste sejam as mesmas (geralmente são usados ​​mínimos quadrados condicionais).
Michael R. Chernick

Ele pega alguns dados, se encaixa em um ARIMA (1,1,0), depois pega as diferenças e se encaixa em um ARIMA (1,0,0). Por fim, ele compara o período de previsões de amostra entre si. Presumivelmente, eles são diferentes, mas não podemos ver os gráficos no post.
John

yt=βyt1+ϵtyt=(β1)yt1+ϵtϵtyt=βyt1+ϵt
João

1
Finalmente certo. Não posso fazer o LaTex em 5 minutos! O melhor que posso dizer é que a equação acima aparece nos dois sentidos.
22912 Michael Michael Chernick
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.