Matlabに2つのサンプルベクトルがあります:
A = [5,3,3,0,4,1,5,0,2,5,5,0,5,3,4,0,1,4,4,0,4,2];
B = [1,0,0,0,1,0,4,0,0,0,0,4,4,0,1,0,0,0,0,0,0,0];
手動でピアソン相関を計算してExcelで計算すると、同じ結果になります(0.667)
1 0,667 0,667 1
しかし、MatLabで簡単なコードを試してみたところ:
pearson = corr(A',B');
異なるスコア(0,2139)の結果を返します。
1 0,2139 0,2139 1
たぶんそれはゼロスコア(0)がそれを計算するために使用しているために起こります。欠落している値がmatlabでzero(0)に置き換えられるために発生します。
ピアソン相関では、それを計算するために共同評価された値のみを使用します。(太字の値を参照)
A = [ 5、3、3、0、4、1、5、0、2、5、5、0、5、3、4、0、1、4、4、0、4、2 ] ; _ _ _ _ _ B = [ 1、0、0、0、1、0、4、0、0、0、0、4、4、0、1、0、0、0、0、0、0、0 ] ; _ _ _ _ _
またはそれは簡単にすることができます:
A = [ 5、4、5、5、4 ] ; _ _ _ _ _ B = [ 1、1、4、4、1 ] ; _ _ _ _ _
このための簡単なコードを作成する方法を知っている人はいますか?私は手続き型コードでそれを試しました:最初に、関数をcorated、average_coratedにし、最後に類似性を計算します。時間がかかりすぎる。
前に感謝します:)