Учитывая следующие два временных ряда ( x , y ; см. Ниже), каков наилучший метод для моделирования взаимосвязи между долгосрочными тенденциями в этих данных?
Оба временных ряда имеют важные тесты Дурбина-Уотсона, когда они моделируются как функция времени, и ни один из них не является стационарным (как я понимаю, термин, или это означает, что он должен быть только в остатках?). Мне сказали, что это означает, что я должен взять разность первого порядка (по крайней мере, может быть, даже 2-го порядка) каждого временного ряда, прежде чем я смогу смоделировать один как функцию другого, по существу используя ариму (1,1,0 ), арима (1,2,0) и т. д.
Я не понимаю, почему вам нужно уменьшить тренд, прежде чем вы сможете моделировать их. Я понимаю необходимость моделировать автокорреляцию, но я не понимаю, почему должна быть разница. Мне кажется, что отклонение от разницы удаляет первичные сигналы (в данном случае долгосрочные тренды) в данных, которые нас интересуют, и оставляет высокочастотный «шум» (используя термин «шум» свободно). Действительно, в симуляциях, где я создаю почти идеальные отношения между одним временным рядом и другим, без автокорреляции, различие временного ряда дает мне результаты, которые не являются интуитивными для целей обнаружения отношений, например,
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))
В этом случае b тесно связана с a , но b имеет больше шума. Для меня это показывает, что дифференцирование не работает в идеальном случае для обнаружения взаимосвязей между низкочастотными сигналами. Я понимаю, что для анализа временных рядов обычно используется разность, но она представляется более полезной для определения взаимосвязей между высокочастотными сигналами. Что мне не хватает?
Пример данных
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
источник
Я тоже не понимаю этот совет. Дифференцирование удаляет полиномиальные тренды. Если серии схожи из-за различий в тенденциях, то по существу удаляются эти отношения. это можно сделать только в том случае, если вы ожидаете, что компоненты с трендом будут связаны. Если один и тот же порядок разности приводит к ACF для остатков, которые выглядят так, как будто они могут быть из стационарной модели ARMA, включая белый шум, который может указывать на то, что обе серии имеют одинаковые или похожие полиномиальные тренды.
источник
Как я понимаю, дифференциация дает более четкие ответы в функции взаимной корреляции. Сравните
ccf(df1$x,df1$y)
иccf(ddf$dx,ddf$dy)
.источник