Dadas as duas séries temporais a seguir ( x , y ; veja abaixo), qual é o melhor método para modelar o relacionamento entre as tendências de longo prazo nesses dados?
Ambas as séries temporais têm testes significativos de Durbin-Watson quando modelados em função do tempo e nem são estacionários (como eu entendo o termo, ou isso significa que ele só precisa ser estacionário nos resíduos?). Foi-me dito que isso significa que devo fazer uma diferença de primeira ordem (pelo menos, talvez até de segunda ordem) de cada série temporal antes de poder modelar uma em função da outra, utilizando essencialmente um arima (1,1,0 ), arima (1,2,0) etc.
Não entendo por que você precisa prejudicar antes de modelá-las. Entendo a necessidade de modelar a correlação automática, mas não entendo por que precisa haver diferenças. Para mim, parece que prejudicar pela diferenciação está removendo os sinais primários (neste caso, as tendências de longo prazo) nos dados em que estamos interessados e deixando o "ruído" de maior frequência (usando o termo ruído de maneira vaga). De fato, em simulações em que eu crio um relacionamento quase perfeito entre uma série temporal e outra, sem autocorrelação, diferenciar a série temporal me dá resultados que são contra-intuitivos para fins de detecção de relacionamento, por exemplo,
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))
Nesse caso, b está fortemente relacionado a , mas b tem mais ruído. Para mim, isso mostra que a diferenciação não funciona em um caso ideal para detectar relações entre sinais de baixa frequência. Entendo que a diferenciação é comumente usada para análise de séries temporais, mas parece ser mais útil para determinar as relações entre sinais de alta frequência. o que estou perdendo?
Dados de exemplo
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
fonte
Também não entendo esse conselho. A diferença remove tendências polinomiais. Se as séries são semelhantes por causa das diferenças de tendências, essencialmente remove esse relacionamento. você faria isso apenas se esperar que os componentes prejudicados estejam relacionados. Se a mesma ordem de diferenciação leva a acfs para os resíduos que parecem ser de um modelo ARMA estacionário, incluindo ruído branco que pode indicar que ambas as séries têm as mesmas tendências polinomiais iguais ou semelhantes.
fonte
Pelo que entendi, a diferenciação fornece respostas mais claras na função de correlação cruzada. Compare
ccf(df1$x,df1$y)
eccf(ddf$dx,ddf$dy)
.fonte