Учитывая следующие два временных ряда ( 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