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