如何找到具有不同时间值的两个趋势之间的相关性

时间:2019-06-17 10:45:39

标签: python pandas statistics jupyter-notebook

我有一个表,其中包含时间和两种类型的风速趋势。我对找到两个风速趋势之间的相关性很感兴趣。这是下图。

enter image description here

但是,问题在于风速记录的时间略有不同。例如,可以在1/15/18 10:30 am记录来自1号风速的数据,而可以从1/15/18 10:31 am记录离2号风速最近的数据。当我尝试使用来自Jupyter Labs(python)的Pandas运行pearson / spearman相关性时,由于它们没有任何共同的时间,因此我得到了一个错误。有没有一种方法,尽管它们具有不同的时间,我仍然可以计算两个趋势之间的相关性?如果没有,您将建议如何解决此问题? enter image description here

1 个答案:

答案 0 :(得分:0)

如果您认为两次读数之间存在滞后,则可以使用argmax来获得此滞后,下面的简单示例可能会对您有所帮助

import numpy, scipy
from scipy.signal import correlate

x = numpy.array([1.0,2.0,3.0,4.0,5.0,6.0,7.0])
y = numpy.array([6.0,7.0,1.0,2.0,3.0,4.0,5.0])

sample_size = x.size

x -= x.mean(); x /= x.std()
y -= y.mean(); y /= y.std()

xcorr = correlate(x, y)

dt = numpy.arange(1-sample_size, sample_size)

time_different = dt[xcorr.argmax()]

print(time_different)

>> -2 # this indicates we have shifting two samples

这可能是一个完美的解决方案,至少发现移位量将帮助您继续操作。