探索 Python 中的相關性


相關性是一個統計術語,用於衡量兩個變數之間的關係。如果關係很強,這意味著一個變數的變化以可預測的模式反映在另一個變數的變化中,那麼我們就說這兩個變數是相關的。此外,第一個變數的變化可能導致第二個變數的正變化或負變化。相應地,它們被稱為正相關或負相關。理想情況下,相關係數的值在 -1 到 +1 之間變化。

  • 如果值為 +1 或接近 +1,我們就說變數是正相關的。它們同時朝相同方向變化。
  • 如果值為 -1 或接近 -1,我們就說變數是負相關的。它們同時朝相反方向變化。
  • 如果值為 0 或接近 0,我們就說變數不相關。

有多種方法可以衡量相關係數。它們在 numpy 或 scipy.stats 中作為函式提供。下面我們將看到它們是如何使用的。

使用斯皮爾曼相關性

斯皮爾曼相關性用於衡量線性相關變數之間關係的程度。它基於 scipy.stats 包用來生成結果的公式。它是查詢相關性的最廣泛使用的公式。

在下面的示例中,我們採用兩個變數,其值使用 numpy.randon() 函式生成。然後應用 spearmanr() 獲取最終結果。

示例

 線上演示

from numpy.random import randn
from numpy.random import seed
from scipy.stats import spearmanr
seed(1)
data_input1 = 20 * randn(1000) + 100
data_input2 = data_input1 + (10 * randn(1000) + 50)
correlation = spearmanr(data_input1, data_input2)
   print(correlation)

輸出

執行以上程式碼得到以下結果:

SpearmanrResult(correlation=0.8724050484050484, pvalue=1.58425746359e-312)

使用皮爾遜相關性

皮爾遜相關性是另一種衡量線性相關變數之間關係程度的方法。它基於 scipy.stats 包用來生成結果的公式。

在下面的示例中,我們採用兩個變數,其值使用 numpy.randon() 函式生成。然後應用 pearsonr() 獲取最終結果。

示例

 線上演示

from numpy.random import randn
from numpy.random import seed
from scipy.stats import pearsonr
seed(1)
data1 = 20 * randn(1000) + 100
data2 = data1 + (10 * randn(1000) + 50)
correlation, _ = pearsonr(data1, data2)
print('Pearsons correlation: %.3f' % correlation)

輸出

執行以上程式碼得到以下結果:

Pearsons correlation: 0.888

更新於:2019年12月19日

454 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告