天天看點

關于Pearson相關系數是否要事先标準化資料的問題

部落客寫論文的時候,整理代碼,突然發現以前預處理大腦Fmri時間序列的代碼好像沒有标準化資料。

而部落客的訓練模型所使用的特征都是以Pearson的值為基礎的。吓得部落客驚出了一聲冷汗。趕快看一下有無影響。

但是根據Pearson的公式來看,應該是影響不大的,協方差除以兩個資料的标準差之積,感覺已經包含了标準化的過程。

關于Pearson相關系數是否要事先标準化資料的問題

​​皮爾森相關系數(Pearson correlation coefficient)​​,這篇文章介紹得比較詳細

但是為了讓自己安心,還是試驗一下。

我們先對大腦ROI的時間序列資料直接計算Pearson相關系數。

在神經科學領域,對兩個大腦ROI的時間序列計算Pearson視為兩個大腦的功能連接配接程度。

第一條ROI的時間序列資料:X

關于Pearson相關系數是否要事先标準化資料的問題

第二條ROI的時間序列資料:Y

關于Pearson相關系數是否要事先标準化資料的問題

​​資料規範化(歸一化)、及Z-score标準化​​ 我們這裡使用Z-score标準化,減去均值後除以标準差

X_mean = np.mean(X,axis=0)
 Y_mean = np.mean(Y,axis=0)
 X_std =  np.std(X,axis=0)
 Y_std = np.std(Y,axis=0)

 X_zscore = (X-X_mean)/X_std
 Y_zscore = (Y-Y_mean)/Y_std      

标準化後的第一個ROI的時間序列:

關于Pearson相關系數是否要事先标準化資料的問題

标準化後的第二個ROI的時間序列:

關于Pearson相關系數是否要事先标準化資料的問題

經過Z_score标準化之後,均值為0,标準差為1

使用pandas計算相關系數

cc = np.array([X, Y])
 cc_pd = pd.DataFrame(cc.T, columns=['c1', 'c2'])
 cc_corr = cc_pd.corr(method='pearson')  # 相關系數矩陣
 val =cc_corr.iloc[0,1]      
關于Pearson相關系數是否要事先标準化資料的問題

兩次結果相差6e-16次方,看來影響是不大的。然後一個功能連接配接肯定不能說明全部,然後我就對所有功能連接配接都試驗了一下

關于Pearson相關系數是否要事先标準化資料的問題

繼續閱讀