É 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):
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 - 1? Você está dizendo que eu estou "indiferenciando" incorretamente?
fonte
Respostas:
Existem várias questões aqui.
Se você diferenciar primeiro,
Arima()
ajustará um modelo aos dados diferenciados. Se você deixarArima()
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 paraarima()
. 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ácilArima()
lidar com a diferenciação se você deseja previsões ou valores ajustados nos dados originais (não diferenciados).modB
modA
Arima()
include.mean
fonte
À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.
fonte
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.
fonte
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).
fonte