38

2 つの 1D 配列があり、それらの相互関係を確認したいと考えています。numpyでどの手順を使用する必要がありますか? 私は and を使用してnumpy.corrcoef(arrayA, arrayB)おりnumpy.correlate(arrayA, arrayB)、両方とも、私が理解または理解できない結果をもたらしています。

誰かがこれらの数値結果を理解して解釈する方法を明らかにしてもらえますか (できれば例を使用して)。

4

4 に答える 4

19

numpy.correlate単純に 2 つのベクトルの相互相関を返します。

相互相関を理解する必要がある場合は、http://en.wikipedia.org/wiki/Cross-correlationから始めてください。

自己相関関数 (それ自体と相互相関するベクトル) を見ると、良い例が見られます。

import numpy as np

# create a vector
vector = np.random.normal(0,1,size=1000) 

# insert a signal into vector
vector[::50]+=10

# perform cross-correlation for all data points
output = np.correlate(vector,vector,mode='full')

コードグラフ

これは、両方のデータ セットが重複している場合に、最大のコーム/シャー関数を返します。これは自己相関であるため、2 つの入力信号間に「ラグ」はありません。したがって、相関の最大値は vector.size-1 です。

重複データの相関値のみが必要な場合は、 を使用できますmode='valid'

于 2012-11-18T14:28:17.510 に答える