Dadas las siguientes dos series de tiempo ( x , y ; ver más abajo), ¿cuál es el mejor método para modelar la relación entre las tendencias a largo plazo en estos datos?
Ambas series de tiempo tienen pruebas significativas de Durbin-Watson cuando se modelan en función del tiempo y ninguna de las dos es estacionaria (según tengo entendido el término, ¿o esto significa que solo necesita ser estacionaria en los residuos?). Me han dicho que esto significa que debería tomar una diferencia de primer orden (al menos, tal vez incluso de segundo orden) de cada serie de tiempo antes de poder modelar una en función de la otra, esencialmente utilizando una arima (1,1,0 ), arima (1,2,0) etc.
No entiendo por qué necesita desactualizar antes de poder modelarlos. Entiendo la necesidad de modelar la autocorrelación, pero no entiendo por qué debe haber diferencias. Para mí, parece que la tendencia a diferenciar es eliminar las señales primarias (en este caso, las tendencias a largo plazo) en los datos que nos interesan y dejar el "ruido" de mayor frecuencia (usando el término ruido libremente). De hecho, en las simulaciones donde creo una relación casi perfecta entre una serie de tiempo y otra, sin autocorrelación, diferenciar la serie de tiempo me da resultados que son contradictorios para fines de detección de relaciones, por ejemplo,
a = 1:50 + rnorm(50, sd = 0.01)
b = a + rnorm(50, sd = 1)
da = diff(a); db = diff(b)
summary(lmx <- lm(db ~ da))
En este caso, b está fuertemente relacionado con a , pero b tiene más ruido. Para mí, esto muestra que la diferenciación no funciona en un caso ideal para detectar relaciones entre señales de baja frecuencia. Entiendo que la diferenciación se usa comúnmente para el análisis de series de tiempo, pero parece ser más útil para determinar las relaciones entre las señales de alta frecuencia. ¿Qué me estoy perdiendo?
Datos de ejemplo
df1 <- structure(list(
x = c(315.97, 316.91, 317.64, 318.45, 318.99, 319.62, 320.04, 321.38, 322.16, 323.04, 324.62, 325.68, 326.32, 327.45, 329.68, 330.18, 331.08, 332.05, 333.78, 335.41, 336.78, 338.68, 340.1, 341.44, 343.03, 344.58, 346.04, 347.39, 349.16, 351.56, 353.07, 354.35, 355.57, 356.38, 357.07, 358.82, 360.8, 362.59, 363.71, 366.65, 368.33, 369.52, 371.13, 373.22, 375.77, 377.49, 379.8, 381.9, 383.76, 385.59, 387.38, 389.78),
y = c(0.0192, -0.0748, 0.0459, 0.0324, 0.0234, -0.3019, -0.2328, -0.1455, -0.0984, -0.2144, -0.1301, -0.0606, -0.2004, -0.2411, 0.1414, -0.2861, -0.0585, -0.3563, 0.0864, -0.0531, 0.0404, 0.1376, 0.3219, -0.0043, 0.3318, -0.0469, -0.0293, 0.1188, 0.2504, 0.3737, 0.2484, 0.4909, 0.3983, 0.0914, 0.1794, 0.3451, 0.5944, 0.2226, 0.5222, 0.8181, 0.5535, 0.4732, 0.6645, 0.7716, 0.7514, 0.6639, 0.8704, 0.8102, 0.9005, 0.6849, 0.7256, 0.878),
ti = 1:52),
.Names = c("x", "y", "ti"), class = "data.frame", row.names = 110:161)
ddf<- data.frame(dy = diff(df1$y), dx = diff(df1$x))
ddf2<- data.frame(ddy = diff(ddf$dy), ddx = diff(ddf$dx))
ddf$ti<-1:length(ddf$dx); ddf2$year<-1:length(ddf2$ddx)
summary(lm0<-lm(y~x, data=df1)) #t = 15.0
summary(lm1<-lm(dy~dx, data=ddf)) #t = 2.6
summary(lm2<-lm(ddy~ddx, data=ddf2)) #t = 2.6
fuente
Tampoco entiendo ese consejo. La diferenciación elimina las tendencias polinómicas. Si las series son similares debido a las tendencias, la diferenciación elimina esencialmente esa relación. solo lo harías si esperas que los componentes de tendencia estén relacionados. Si el mismo orden de diferenciación conduce a acfs para los residuos que parecen ser de un modelo ARMA estacionario que incluye ruido blanco que puede indicar que ambas series tienen tendencias polinómicas iguales o similares.
fuente
Según lo entiendo, la diferenciación da respuestas más claras en la función de correlación cruzada. Compara
ccf(df1$x,df1$y)
yccf(ddf$dx,ddf$dy)
.fuente