Dengan dua seri waktu berikut ( x , y ; lihat di bawah), apa metode terbaik untuk memodelkan hubungan antara tren jangka panjang dalam data ini?
Kedua seri waktu memiliki tes Durbin-Watson yang signifikan ketika dimodelkan sebagai fungsi waktu dan tidak ada yang stasioner (seperti yang saya pahami istilahnya, atau apakah ini berarti hanya perlu stasioner dalam residu?). Saya telah diberitahu bahwa ini berarti saya harus mengambil perbedaan urutan pertama (setidaknya, mungkin bahkan urutan kedua) dari setiap rangkaian waktu sebelum saya dapat memodelkan satu sebagai fungsi dari yang lain, pada dasarnya menggunakan arima (1,1,0 ), arima (1,2,0) dll.
Saya tidak mengerti mengapa Anda perlu melakukan detrend sebelum Anda dapat membuat model. Saya mengerti perlunya memodelkan korelasi-otomatis, tetapi saya tidak mengerti mengapa harus ada perbedaan. Bagi saya, tampak seolah-olah detrending dengan differencing menghilangkan sinyal primer (dalam hal ini tren jangka panjang) dalam data yang kami minati dan meninggalkan "noise" frekuensi tinggi (menggunakan istilah noise dengan longgar). Memang, dalam simulasi di mana saya membuat hubungan yang hampir sempurna antara satu seri waktu dan lainnya, tanpa autokorelasi, membedakan seri waktu memberi saya hasil yang berlawanan dengan intuisi untuk tujuan deteksi hubungan, misalnya,
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))
Dalam hal ini, b sangat terkait dengan a , tetapi b memiliki lebih banyak noise. Bagi saya ini menunjukkan bahwa perbedaan tidak berfungsi dalam kasus yang ideal untuk mendeteksi hubungan antara sinyal frekuensi rendah. Saya memahami bahwa pembeda umumnya digunakan untuk analisis deret waktu, tetapi tampaknya lebih bermanfaat untuk menentukan hubungan antara sinyal frekuensi tinggi. Apa yang saya lewatkan?
Contoh Data
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
sumber
Saya juga tidak mengerti saran itu. Membedakan menghilangkan tren polinomial. Jika seri serupa karena tren perbedaan pada dasarnya menghilangkan hubungan itu. Anda hanya akan melakukan itu jika Anda mengharapkan komponen detrended terkait. Jika urutan pembedaan yang sama mengarah ke ACF untuk residu yang terlihat seperti mereka dapat berasal dari model ARMA stasioner termasuk white noise yang mungkin mengindikasikan bahwa kedua seri memiliki tren polinomial yang sama atau serupa.
sumber
Cara saya memahaminya, membedakan memberikan jawaban yang lebih jelas dalam fungsi lintas-korelasi. Bandingkan
ccf(df1$x,df1$y)
danccf(ddf$dx,ddf$dy)
.sumber