我有一个表,其中包含时间和两种类型的风速趋势。我对找到两个风速趋势之间的相关性很感兴趣。这是下图。
但是,问题在于风速记录的时间略有不同。例如,可以在1/15/18 10:30 am记录来自1号风速的数据,而可以从1/15/18 10:31 am记录离2号风速最近的数据。当我尝试使用来自Jupyter Labs(python)的Pandas运行pearson / spearman相关性时,由于它们没有任何共同的时间,因此我得到了一个错误。有没有一种方法,尽管它们具有不同的时间,我仍然可以计算两个趋势之间的相关性?如果没有,您将建议如何解决此问题?
答案 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
这可能是一个完美的解决方案,至少发现移位量将帮助您继续操作。