Was ist angesichts der folgenden zwei Zeitreihen ( x , y ; siehe unten) die beste Methode, um die Beziehung zwischen den langfristigen Trends in diesen Daten zu modellieren?
Beide Zeitreihen haben signifikante Durbin-Watson-Tests, wenn sie als Funktion der Zeit modelliert werden, und beide sind nicht stationär (wie ich den Begriff verstehe, oder bedeutet dies, dass sie nur in den Residuen stationär sein müssen?). Mir wurde gesagt, dass dies bedeutet, dass ich für jede Zeitreihe einen Unterschied erster Ordnung (zumindest vielleicht sogar 2. Ordnung) nehmen sollte, bevor ich eine als Funktion der anderen modellieren kann, wobei ich im Wesentlichen eine Arima (1,1,0) verwende ), Arima (1,2,0) usw.
Ich verstehe nicht, warum Sie sich abmühen müssen, bevor Sie sie modellieren können. Ich verstehe die Notwendigkeit, die Autokorrelation zu modellieren, aber ich verstehe nicht, warum es Unterschiede geben muss. Für mich scheint es so, als würde durch Differenzierung die Primärsignale (in diesem Fall die langfristigen Trends) in den Daten, an denen wir interessiert sind, entfernt und das höherfrequente "Rauschen" (mit dem Begriff Rauschen lose) belassen. In Simulationen, in denen ich eine nahezu perfekte Beziehung zwischen einer Zeitreihe und einer anderen ohne Autokorrelation herstelle, führt die Differenzierung der Zeitreihen zu Ergebnissen, die für die Erkennung von Beziehungen nicht intuitiv sind, z.
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))
In diesem Fall ist b stark mit a verwandt , aber b hat mehr Rauschen. Für mich zeigt dies, dass die Differenzierung im Idealfall nicht funktioniert, um Beziehungen zwischen niederfrequenten Signalen zu erkennen. Ich verstehe, dass die Differenzierung häufig für die Zeitreihenanalyse verwendet wird, aber sie scheint für die Bestimmung der Beziehungen zwischen Hochfrequenzsignalen nützlicher zu sein. Was vermisse ich?
Beispieldaten
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
quelle
Ich verstehe diesen Rat auch nicht. Durch Differenzieren werden Polynomtrends entfernt. Wenn die Serien aufgrund der unterschiedlichen Trends ähnlich sind, wird diese Beziehung im Wesentlichen entfernt. Sie würden dies nur tun, wenn Sie erwarten, dass die abgelehnten Komponenten in Beziehung stehen. Wenn die gleiche Reihenfolge der Differenzierung zu acfs für die Residuen führt, die aussehen, als könnten sie aus einem stationären ARMA-Modell mit weißem Rauschen stammen, das möglicherweise darauf hinweist, dass beide Reihen dieselben oder ähnliche Polynomtrends aufweisen.
quelle
So wie ich es verstehe, gibt die Differenzierung klarere Antworten in der Kreuzkorrelationsfunktion. Vergleiche
ccf(df1$x,df1$y)
undccf(ddf$dx,ddf$dy)
.quelle