我想提出另一种方法。这是为了测试两个时间序列是否相同。这种方法仅适用于自相关性较低的不经常采样的数据。
如果时间序列 x 与时间序列 y 相似,则 xy 的方差应该小于 x 的方差。我们可以使用单边 F 检验来检验这一点。如果比率 var(xy)/var(x) 显着小于 1,则 y 解释了 x 方差的很大一部分。
我们还需要检查 xy 是否与 0 没有显着差异。这可以通过一个样本双面 t.test 来完成。
x <- cumsum(runif(10)-0.5)
t <- seq_along(x)
y <- x + rnorm(10, 0, 0.2)
# y <- x + rnorm(10, 0.2, 0.2)
plot(t,x, "b", col = "red")
points(t,y, "b", col = "blue")
var.test(x-y, x, alternative = "less") # does y improve variance of x?
#>
#> F test to compare two variances
#>
#> data: x - y and x
#> F = 0.27768, num df = 9, denom df = 9, p-value = 0.03496
#> alternative hypothesis: true ratio of variances is less than 1
#> 95 percent confidence interval:
#> 0.0000000 0.8827118
#> sample estimates:
#> ratio of variances
#> 0.277679
t.test(x-y) # check that x-y does not have an offset
#>
#> One Sample t-test
#>
#> data: x - y
#> t = -0.0098369, df = 9, p-value = 0.9924
#> alternative hypothesis: true mean is not equal to 0
#> 95 percent confidence interval:
#> -0.1660619 0.1646239
#> sample estimates:
#> mean of x
#> -0.0007189834
由reprex 包于 2021-09-02 创建 (v2.0.0 )
我认为应该可以扩展这种方法来测试两个时间序列是否线性相关,使用 x-lm(x ~ y) 而不是 xy。
编辑:我认为可以通过为测试找到合适的有效自由度来处理自相关,参见https://doi.org/10.1016/j.neuroimage.2019.05.011