探索 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
廣告