Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算不同时间序列的相关性_Python_Matlab_Time Series_Correlation - Fatal编程技术网

Python 计算不同时间序列的相关性

Python 计算不同时间序列的相关性,python,matlab,time-series,correlation,Python,Matlab,Time Series,Correlation,我有几个时间序列,即我在15分钟内测量了几个信号。每个信号每秒采样几次,但不同信号的时间戳不相等。假设我们从时间0开始。例如,信号1具有以下内容(时间戳、值): 信号2具有以下内容(时间戳、值): 我现在如何计算这些时间序列值的相关性,例如python或Matlab?如果这些值总是在相同的时间戳上,我可以只计算各个值之间的相关性,但不幸的是,这些值不在相同的时间戳上。您可以对其中一个数据集进行一些简单的插值(参见MATLAB),以便它们共享采样率,如果这是您唯一的问题 X=[0.1954 零点二

我有几个时间序列,即我在15分钟内测量了几个信号。每个信号每秒采样几次,但不同信号的时间戳不相等。假设我们从时间0开始。例如,信号1具有以下内容(时间戳、值):

信号2具有以下内容(时间戳、值):


我现在如何计算这些时间序列值的相关性,例如python或Matlab?如果这些值总是在相同的时间戳上,我可以只计算各个值之间的相关性,但不幸的是,这些值不在相同的时间戳上。

您可以对其中一个数据集进行一些简单的插值(参见MATLAB),以便它们共享采样率,如果这是您唯一的问题

X=[0.1954
零点二一零零零
零点二四一零九零
零点三八五五
0.45  600];
Y=[0.05 900
零点一三九六零
零点二一零零零
零点二九八五零
0.33  800];
t=Y(:,1);%从Y获取时间样本
%将X2值插值(线性,外推)到时间样本t上
X2=[t,interp1(X(:,1),X(:,2),t,'linear','extrap');
>>X2=[0.05 931
0.13  967.8
零点二一零零零
0.29  894.1667
0.33  804];

现在它们有了相同的采样点,你可以做你想做的事。

假设你有一个信号,在时间点
t1
处有一个数组
s1
,在时间点
t2
处有一个信号
s2
求值。在Python中使用:

  • 为两个信号选择一组共同的时间点
    t
    。您可以选择
    t1
    t2
    ,或使用计算所考虑时间范围内的线性空间。在任何情况下,我都会确保
    t
    的最小值和最大值都在
    t1
    t2
    的范围内,以避免外推
  • 计算两个信号的插值,
    s1interp
    s2interp
    。这可以通过计算线性插值的。如果你需要更复杂的插值方法,你可以看看SciPy的
  • 计算
    s1interp
    s2interp
    之间的相关性。这件事就这样结束了

  • 插入相同的时间戳,然后计算相关性。谢谢你的回答,jdehesa。用corrcoef我得到了一个价值矩阵。如何将其聚合为单个值来估计相关性?@machine-Right,我忘了,
    np.corrcoef
    给出了皮尔逊相关矩阵。因为这里只有两个变量,所以您可以选择元素
    [0,1]
    [1,0]
    (值相同),它应该在
    [-1,1]
    范围内。谢谢。假设两个信号相互关联,但它们在y方向上移动(一个信号的振幅较低)。如果我不知道移位的值,我如何补偿?我不想将这个移位合并到相关值中。@Mmm,我不确定我是否遵循。。。您实际上是在寻找()还是()呢?
    0.1s: 954
    0.2s: 1000
    0.24s: 1090
    0.3s: 855
    0.45s: 600
    ... 
    
    0.05s: 900
    0.13s: 960
    0.2s: 1000
    0.29s: 850 
    0.33s 800
    ...