Python 有人能教我如何显示这两个时间序列的相关性吗?

Python 有人能教我如何显示这两个时间序列的相关性吗?,python,matlab,correlation,data-analysis,sliding-window,Python,Matlab,Correlation,Data Analysis,Sliding Window,我有以下两个时间序列: x轴超过10000个值。现在,如果我把它们分解成滑动窗口,那么我就不会得到相关性,因为它们是不相关的。然而,你可以看到,在更大的图景中,它们确实相互关联。我需要证明这种相关性。谁能告诉我怎么做 我在Matlab和Python中工作,但我主要需要一个概述。谢谢 我建议在Matlab中使用两种方法来显示整体相关性。让x1,x2向量表示您的数据 计算c=corrcof(x1,x2)并观察c(2,1)。这是整个向量的最大值。它测量-1和1之间的标准化相关性 绘图(x1,x2,

我有以下两个时间序列:

x轴超过10000个值。现在,如果我把它们分解成滑动窗口,那么我就不会得到相关性,因为它们是不相关的。然而,你可以看到,在更大的图景中,它们确实相互关联。我需要证明这种相关性。谁能告诉我怎么做


我在Matlab和Python中工作,但我主要需要一个概述。谢谢

我建议在Matlab中使用两种方法来显示整体相关性。让
x1
x2
向量表示您的数据

  • 计算
    c=corrcof(x1,x2)
    并观察
    c(2,1)
    。这是整个向量的最大值。它测量-1和1之间的标准化相关性
  • 绘图(x1,x2,','markersize',3)
    。这将绘制一个点云,从中可以直观地评估相关性。对于相关的
    x1
    x2
    ,这些点倾向于沿直线形成或多或少的薄云(请参阅)
如果向量包含
NaN
,则应首先删除它们:

ind = ~(isnan(x1)|isnan(x2));
x1 = x1(ind);
x2 = x2(ind);
例如:以下两个示例向量给出了
c=0.91
,云的形状表明存在显著的相关性:


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

其中CIJ是变量席和XJ的协方差(它们都是随机变量)。PIJ变量告诉我们席和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()

为什么要拆散他们?为什么不检查一下整体的相关性呢?NAN是存在的。我需要显示各个分量的相关性。c=corrcoef(1:10,2:11)对不起,我不太明白。对不起,我的错误。更正为
corrcoef(x1,x2)
你应该为你的第二个绘图添加代码,除非我不知何故遗漏了它?@Dan你是什么意思?第二个图是答案中所述的
图(x1,x2,','markersize',3)
。第一个图形就是
plot(x2),等等,plot(x1,'r')