有人可以教我如何证明这两个时间序列相关吗?

时间:2013-10-09 14:54:51

标签: python matlab correlation data-analysis sliding-window

我有以下两个时间序列:

enter image description here

x轴超过10000个值。现在,如果我将它们分解为滑动窗口,那么我就不会得到相关性,因为它们并不是相关的。但是,您可以看到,在更大的图片中,它们确实相关。我需要表明这种相关性。谁能指点一下如何做到这一点?

我在Matlab& Python,但我主要需要一个概述。谢谢!

2 个答案:

答案 0 :(得分:1)

我建议用两个方法来显示整体相关性,在 Matlab 中。让x1x2向量表示您的数据。

如果你的矢量包含NaN,你应该先删除它们:

ind = ~(isnan(x1)|isnan(x2));
x1 = x1(ind);
x2 = x2(ind);

例如:以下两个示例向量给出c=0.91,云形状明显表明存在显着的相关性:

Signals

Cloud

答案 1 :(得分:0)

以下是使用numpy.corrcoef的Python中的相关性示例,它使用以下公式:

enter image description here

其中Cij是变量xi和xj的协方差(每个变量都是随机变量)。 Pij变量告诉我们使用xi和xj有多相似,如果两个信号相似,它们接近1或-1,如果它们不相关,它们将接近0。

>>> import numpy as np
>>> n = 100
>>> x = np.linspace(0, 10, n)
>>> y1 = np.sin(x) + np.random.randn(n) * 0.3 + 2
>>> y2 = np.sin(x) + np.random.randn(n) * 0.5
>>> np.corrcoef(y1,y2)
 [[ 1.          0.79680839]
  [ 0.79680839  1.        ]]

顺便说一下,有两个我们已经相关的信号

>>> import matplotlib.pyplot as plt
>>> plt.plot(x,y1, x, y2)
>>> plt.show()

enter image description here