Diferencia de series de tiempo antes de Arima o dentro de Arima

12

¿Es mejor diferenciar una serie (suponiendo que la necesite) antes de usar un Arima O mejor usar el parámetro d dentro de Arima?

Me sorprendió cuán diferentes son los valores ajustados dependiendo de qué ruta se tome con el mismo modelo y datos. ¿O estoy haciendo algo incorrectamente?

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")

AÑADIR:

Tenga en cuenta que estoy diferenciando la serie una vez y ajustando arima (1,0,0), luego estoy ajustando arima (1,1,0) a la serie original. Estoy (creo) invirtiendo la diferencia en los valores ajustados para la arima (1,0,0) en el archivo diferenciado.

Estoy comparando los valores ajustados, no las predicciones.

Aquí está la gráfica (el rojo es arima (1,1,0) y el azul es el arima (1,0,0) en la serie diferenciada después de volver a la escala original):

ingrese la descripción de la imagen aquí

Respuesta a la respuesta del Dr. Hyndman:

1) ¿Puede ilustrar en el código R lo que necesitaría hacer para que los dos valores ajustados (y presumiblemente los pronósticos) coincidan (permitiendo una pequeña diferencia debido a su primer punto en su respuesta) entre Arima (1,1, 0) y Arima (1,0,0) en la serie diferenciada manualmente? Supongo que esto tiene que ver con la media no incluida en modA, pero no estoy completamente seguro de cómo proceder.

X^t=Xt1+ϕ(Xt1Xt2)Y^t=ϕ(Xt1Xt2)Y^tX^tXt1? ¿Estás diciendo que estoy "indiferenciando" incorrectamente?

B_Miner
fuente
1
En cuanto a su actualización. 1) No veo ningún punto en hacer esto. Arima () producirá los valores y pronósticos ajustados. ¿Por qué debería producir código R adicional para hacer lo mismo que Arima () ya hace? 2) Sí, pero diferenciar X-hat no te da Y-hat. Entonces, el Y-hat no hace referencia a X-hat.
Rob Hyndman
2
Gracias. 1) Fue un ejercicio de aprendizaje para mí. 2) Mi error en el cálculo en mi pregunta original (usando diffinv) fue usar los valores ajustados y no el original es lo que creo que estoy obteniendo de esto. (?) ... lo que lleva al # 1 de cómo indiferenciar los datos. Sé que Arima lo hará, solo tratando de seguir un ejemplo de libro usando las ecuaciones.
B_Miner

Respuestas:

14

Hay varios problemas aqui.

  1. Si primero diferencia, entonces Arima()ajustará un modelo a los datos diferenciados. Si deja Arima()hacer la diferenciación como parte del procedimiento de estimación, utilizará un difuso previo para la inicialización. Esto se explica en el archivo de ayuda para arima(). Por lo tanto, los resultados serán diferentes debido a las diferentes formas en que se maneja la observación inicial. No creo que haga mucha diferencia en términos de la calidad de la estimación. Sin embargo, es mucho más fácil dejar de Arima()manejar la diferencia si desea pronósticos o valores ajustados en los datos originales (no diferenciados).

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

  3. X^t=Xt1+ϕ(Xt1Xt2)
    Y^t=ϕ(Xt1Xt2)
    {Xt}{Yt}
    X^tX^t1Y^t.
Rob Hyndman
fuente
1
+1, iba a dar como respuesta el punto 2. Felicitaciones por incluir a los otros 2.
mpiktas
Dr. Hyndman, ¡gracias por la respuesta! Tengo MUCHO para aprender sobre el análisis de series de tiempo. ¿Puedo pedir un seguimiento? No estoy seguro de saber exactamente qué hacer con esta información, así que publico un complemento a mi pregunta original.
B_Miner
2

A veces es necesario eliminar los medios locales para hacer que la serie sea estacionaria. Si la serie original tiene un acf que no se extingue, esto puede deberse a un cambio de nivel / paso en la serie. El remedio es reducir la serie.

RESPUESTA A LA OFERTA:

La forma de obtener los mismos resultados / valores ajustados es después de diferenciar físicamente la serie oroiginal (Y (t) para obtener la primera diferencia (dely), estimar un AR (1) sin una constante. Esto equivale a ajustar un modelo OLS de la serie forma dely (t) = B1 * dely (t-1) + a (t) SIN una intercepción. Los valores ajustados de este modelo, adecuadamente integrados del orden 1 (creo) le darán los valores ajustados de un modelo; [ 1-B] [AR (1)] Y (t) = a (t). La mayoría de las piezas de software, con la notable excepción de AUTOBOX NO LE PODRÁ estimar un modelo AR (1) sin una constante. Aquí está el ecuación para dely = + [(1- .675B * 1)] ** - 1 [A (T)] mientras que la ecuación para Y fue

[(1-B * 1)] Y (T) = + [(1- .676B * 1)] ** - 1 [A (T)]. Tenga en cuenta el error de redondeo causado por la diferenciación física de Y. Tenga en cuenta que cuando la diferenciación está vigente (en el modelo) O no, el usuario puede seleccionar si desea incluir o no la constante. El proceso normal es incluir una constante para un modelo ARIMA estacionario (es decir, no diferenciado) e incluir opcionalmente una constante cuando la diferencia está en el modelo. Parece que el enfoque alternativo (Arima) fuerza una constante en un modelo estacionario que en mi opinión ha causado su dilema.

IrishStat
fuente
¿Debería eso afectar los valores ajustados en este caso entre la arima (1,0,0) en delta-y y la arima (1,1,0) en y?
B_Miner
En ambos casos, está ajustando un AR (1) a la primera diferencia de la serie de tiempo, ¿verdad? Si ese es el caso y los métodos de ajuste son los mismos, deberían estar haciendo exactamente lo mismo. Ni siquiera hay una diferencia en el orden de las operaciones.
Michael R. Chernick
No parece ser el caso aquí. Quizás @Rob_Hyndman se registrará.
B_Miner
1

No sé por qué habría una diferencia en los resultados a menos que de alguna manera diferencies más de una manera que de otra. para un ARIMA (p, d, q) las diferencias d se hacen primero antes de cualquier ajuste del modelo. Entonces el modelo estacionario ARMA (p, q) se ajusta a las series diferenciadas. La suposición es que después de la eliminación de las tendencias polinómicas en la serie, la serie restante es estacionaria. El número de diferencias corresponde al orden del polinomio que desea eliminar. Entonces, para una tendencia lineal, solo toma una diferencia, para una tendencia cuadrática, toma dos diferencias. No estoy de acuerdo con la mayoría de lo que se dijo en la respuesta de John.

Michael R. Chernick
fuente
0

Una razón para diferenciar una serie I (1) es hacerla estacionaria. Suponiendo que tiene la especificación correcta para el modelo ARIMA, los residuos del modelo tendrán los componentes de promedio móvil y autorregresivo eliminados y deben ser estacionarios. A ese respecto, puede tener sentido utilizar los residuos para el modelo, en lugar de diferenciar. Sin embargo, en circunstancias en las que tiene muchos datos que cree que son aproximadamente I (1), algunas personas simplemente diferenciarán los datos en lugar de estimar el modelo ARIMA por completo. El modelo ARIMA puede adaptarse a una gran cantidad de problemas de series temporales en los que puede no tener sentido la diferencia. Por ejemplo, si los datos experimentan reversión a la media, esto no siempre puede ser apropiado para la diferencia, ya que puede no ser I (1).

John
fuente
¿Esperarías que las diferencias sean tan grandes? Me hizo pensar que estaba haciendo algo incorrectamente en cómo estaba volviendo de las diferencias al original.
B_Miner
¿Podría explicar exactamente lo que hizo? No soy bueno leyendo el código R. Si toma el mismo número de diferencias en ambos sentidos y se ajusta al mismo modelo ARMA después de la diferencia, debería obtener los mismos resultados siempre que las técnicas de ajuste sean las mismas (generalmente se utilizan mínimos cuadrados condicionales).
Michael R. Chernick
Toma algunos datos, ajusta un ARIMA (1,1,0), luego toma las diferencias y ajusta un ARIMA (1,0,0). Finalmente, compara el período de predicciones de muestra entre sí. Presumiblemente son diferentes, pero no podemos ver los gráficos en la publicación.
John
yt=βyt1+ϵtyt=(β1)yt1+ϵtϵtyt=βyt1+ϵt
John
1
Finalmente correcto. ¡No puedo hacer LaTex en 5 minutos! Lo mejor que puedo decir es que la ecuación anterior sale en ambos sentidos.
Michael R. Chernick