我看过这个问题,但它没有给我任何答案。
本质上,我如何使用
示例输入
这将产生以下输出:
如果我不知道最大可能的相关性价值是多少,我如何判断哪些是强相关,哪些是弱相关?
另一个例子:
本质上,我如何使用
np.correlate
确定是否存在强相关性?我期望得到与matlab的xcorr
相同的输出,使用coeff
选项可以理解(1是在滞后l
处的强相关性,0是在滞后l
处没有相关性),但是np.correlate
产生大于1的值,即使输入向量已在0和1之间进行了归一化。示例输入
import numpy as np
x = np.random.rand(10)
y = np.random.rand(10)
np.correlate(x, y, 'full')
这将产生以下输出:
array([ 0.15711279, 0.24562736, 0.48078652, 0.69477838, 1.07376669,
1.28020871, 1.39717118, 1.78545567, 1.85084435, 1.89776181,
1.92940874, 2.05102884, 1.35671247, 1.54329503, 0.8892999 ,
0.67574802, 0.90464743, 0.20475408, 0.33001517])
如果我不知道最大可能的相关性价值是多少,我如何判断哪些是强相关,哪些是弱相关?
另一个例子:
In [10]: x = [0,1,2,1,0,0]
In [11]: y = [0,0,1,2,1,0]
In [12]: np.correlate(x, y, 'full')
Out[12]: array([0, 0, 1, 4, 6, 4, 1, 0, 0, 0, 0])
编辑:这是一个问得不好的问题,但被标记的答案确实回答了所问的内容。我认为值得注意的是,在探索这个领域时发现,不能比较交叉相关的输出结果。换句话说,使用交叉相关的输出结果来说信号x与信号y比信号z更相关是无效的。交叉相关不提供这种信息。
xcorr
的内容,输出结果也没有被归一化到[0,1]。它似乎与numpy.correlate
的行为完全相同。 - Jan Christoph Terasacoeff
选项的xcorr
。问题已经更正。 - JakeCowton