1. 程式人生 > >利用python庫計算person相關係數

利用python庫計算person相關係數

使用numpy庫,可以實現person相關係數的計算,例如對於矩陣a。

a
Out[235]: 
array([[1, 1, 2, 2, 3],
       [2, 2, 3, 3, 5],
       [1, 4, 2, 2, 3]])

使用np.corrcoef(a)可計算行與行之間的相關係數,np.corrcoef(a,rowvar=0)用於計算各列之間的相關係數,輸出為相關係數矩陣。
np.corrcoef(a)
Out[236]: 
array([[ 1.   ,  0.976,  0.105],
       [ 0.976,  1.   ,  0.179],
       [ 0.105,  0.179,  1.   ]])

np.corrcoef(a,rowvar=0)
Out[237]: 
array([[ 1.   , -0.189,  1.   ,  1.   ,  1.   ],
       [-0.189,  1.   , -0.189, -0.189, -0.189],
       [ 1.   , -0.189,  1.   ,  1.   ,  1.   ],
       [ 1.   , -0.189,  1.   ,  1.   ,  1.   ],
       [ 1.   , -0.189,  1.   ,  1.   ,  1.   ]])

應用公式0.5*value+0.5可以將相關係數矩陣的值域由[-1,1]對映為[0,1]。

np.corrcoef(a)*0.5+0.5
Out[238]: 
array([[ 1.   ,  0.988,  0.552],
       [ 0.988,  1.   ,  0.59 ],
       [ 0.552,  0.59 ,  1.   ]])