使用 Python 計算相關係數的方法|實用解說與商業應用範例

1. 什麼是使用 Python 計算相關係數的方法?

相關係數是用來以數值表示兩組資料之間關係強度的指標,其範圍介於 -1 到 1。接近 1 表示強正相關(其中一個值增加時,另一個值也會增加),接近 -1 則表示強負相關(其中一個值增加時,另一個值會減少),而接近 0 則表示幾乎沒有相關性。

使用相關係數的優點

  • 可以快速評估資料之間的關聯性
  • 作為掌握趨勢與模式的預測依據
  • 有助於機器學習模型的特徵選擇

2. 使用 Python 計算相關係數的基本方法

在 Python 中,可以透過 NumPyPandas 這兩個函式庫輕鬆計算相關係數。

使用 NumPy 計算相關係數

NumPy 是一個專門用於數值計算的函式庫,利用 numpy.corrcoef() 函數即可計算列表或陣列之間的相關係數。

import numpy as np

# 準備資料
data1 = [1, 2, 3, 4, 5]
data2 = [5, 4, 3, 2, 1]

# 計算相關係數
correlation = np.corrcoef(data1, data2)
print(correlation)

使用 Pandas 計算相關係數

Pandas 中,可以透過資料框架的 .corr() 方法來生成多變數之間的相關矩陣,這對於了解整體資料之間的關聯性非常有用。

import pandas as pd

# 建立範例資料
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1],
    'C': [2, 3, 4, 5, 6]
}
df = pd.DataFrame(data)

# 計算相關矩陣
correlation_matrix = df.corr()
print(correlation_matrix)

 

3. 相關與因果的差異

在多數情況下,相關係數代表變數之間的關聯性,但這並不表示其中一個變數是另一個的原因。理解相關與因果的差異,有助於提升資料分析的可信度。

相關關係與因果關係的差異

  • 相關關係:表示兩個變數會同時變動,但不代表其中一個是另一個的原因。例如,冰淇淋的銷售量與防曬乳的銷售量在夏天同時上升,因此呈現出相關性,但這是因為季節這個共通因素造成的,並不是它們彼此之間有直接關係。
  • 因果關係:指的是一個變數會直接影響另一個變數的情況。例如,按下開關會讓燈泡亮起,這表示開關的操作是燈泡亮起的直接原因。

4. 相關係數的種類與應用範例

相關係數有多種類型,根據資料的特性選擇合適的類型是非常重要的。

  • Pearson 相關係數:用來評估線性關係,適合資料接近常態分佈的情況。
  • Spearman 相關係數:測量基於排名的相關性,適合資料不符合常態分佈或有較多極端值的情況。
  • Kendall 相關係數:評估排名的一致性,適合小型資料集或重視排名關係的分析場景。
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

5. 相關係數的視覺化方法

透過將相關關係以視覺化方式呈現,可以更直覺地掌握資料中的模式與趨勢。

使用熱力圖進行視覺化

利用 Seabornheatmap() 函數,可以用顏色來呈現相關矩陣。透過顏色的深淺變化,可以一目了然地看出變數之間相關性的強弱。

import seaborn as sns
import matplotlib.pyplot as plt

# 計算相關矩陣
correlation_matrix = df.corr()

# 繪製熱力圖
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
plt.show()

使用長條圖進行視覺化

若想針對某個特定變數與其他變數之間的相關性進行重點觀察,使用長條圖會是一個不錯的選擇。

target_corr = df.corr()['A'].sort_values()
target_corr.plot.barh()
plt.show()

 

6. 實際商業場景中的應用範例與注意事項

商業應用範例

  • 行銷分析:在分析廣告費與銷售額之間的關係時,可以使用相關係數來確認兩者的相關性,從而規劃更有效的廣告策略。
  • 用戶行為分析:評估網站訪問次數與轉換率之間的關係,有助於找出影響轉換的關鍵因素。
  • 機器學習:透過相關分析來協助選取合適的特徵變數,以提升模型效能。

注意事項

要注意的是,相關關係並不等同於因果關係,解讀相關係數時需格外小心。特別是在存在第三個變數(共同變量)的情況下,可能會導致錯誤的結論。例如,冰淇淋與防曬乳的銷量在夏天同時增加,但這是因為氣溫升高造成的,兩者之間並沒有直接的因果關係。

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

7. 總結

本篇文章說明了如何使用 Python 計算相關係數,介紹了相關與因果的差異,以及在商業上的實際應用與需要注意的事項。相關分析是理解資料之間關聯性的強大工具,但為避免誤解,也應搭配因果關係的驗證一併考慮。