卡方檢定(Chi-Square Test)入門教學
為什麼需要卡方檢定?
在資料分析或機器學習中,我們經常會遇到這樣的問題:
「兩個分類變數之間是否存在關聯?」
例如:
- 性別是否會影響某產品的購買行為?
- 是否為會員是否與是否購買有關?
- 詐欺交易是否與某種交易類型有關?
這類問題的資料通常不是連續數值,而是分類資料(categorical data)。
例如:
| 性別 | 是否購買 |
|---|---|
| 男 | 是 |
| 女 | 否 |
| 男 | 是 |
| 女 | 否 |
在這種情況下,我們無法使用平均數、相關係數等方法來判斷關係,因此就需要一種專門處理分類資料關聯性的方法。
卡方檢定(Chi-Square Test) 正是為了解決這類問題而設計的統計工具。
卡方檢定在做什麼?
卡方檢定的核心想法其實非常直觀:
比較「實際觀察到的數量」與「理論上應該出現的數量」是否有顯著差異。
如果兩者差異很大,我們就會懷疑:這兩個變數之間可能存在關聯。
如果差異很小,則表示:資料看起來只是隨機產生,兩個變數可能彼此獨立。
一個簡單的例子
假設某電商平台想研究:性別是否會影響商品購買行為。
收集到的資料如下:
| 性別 | 購買 | 未購買 | 總數 |
|---|---|---|---|
| 男 | 40 | 60 | 100 |
| 女 | 60 | 40 | 100 |
| 總數 | 100 | 100 | 200 |
這個表格稱為 列聯表(Contingency Table)。
從表面上看,好像:
- 男生比較不買
- 女生比較會買
但問題是:
這個差異是真的存在,還是只是隨機造成?
這就是卡方檢定要回答的問題。
如何計算「期望值」?
卡方檢定會先計算:如果兩個變數完全沒有關係,每個格子應該出現多少數量。
公式為:
例如,「男性且購買」這格的期望值為:
因此期望表格會變成:
| 性別 | 購買 (Expected) | 未購買 (Expected) |
|---|---|---|
| 男 | 50 | 50 |
| 女 | 50 | 50 |
也就是說,如果性別和購買行為完全沒有關係,理論上應該是:
- 男買 50
- 男不買 50
- 女買 50
- 女不買 50
但實際觀察到的是:
- 男買 40
- 男不買 60
- 女買 60
- 女不買 40
因此就出現了差異。
卡方統計量
接下來我們要計算:實際值與期望值的差距有多大。
卡方統計量公式為:
這個公式的意思是:
- 計算每個格子的差異
- 把差異平方
- 再除以期望值
- 最後全部加總
如果:
- 很小 → 代表差異不大
- 很大 → 代表差異明顯
當 超過某個門檻時,我們就會認為:兩個變數之間存在統計上的關聯。
假設檢定的觀念
卡方檢定其實是一種假設檢定(Hypothesis Testing)。
我們會先建立兩個假設:
虛無假設(H₀)
兩個變數彼此獨立,沒有關聯。
對立假設(H₁)
兩個變數之間存在關聯。
接著透過卡方統計量計算 p-value:
- 如果 p-value < 0.05 → 拒絕虛無假設 → 代表兩個變數可能存在關聯
- 如果 p-value ≥ 0.05 → 無法拒絕虛無假設 → 資料不足以證明兩者有關
Python 實作範例
在 Python 中,我們可以使用 scipy 來進行卡方檢定。
import numpy as np
from scipy.stats import chi2_contingency
# 建立列聯表
table = np.array([
[40, 60],
[60, 40]
])
chi2, p, dof, expected = chi2_contingency(table)
print("Chi-square:", chi2)
print("p-value:", p)
print("Expected table:\n", expected)
如果輸出的 p-value 小於 0.05,就表示:性別與購買行為之間可能存在關聯。
卡方檢定在資料科學中的應用
卡方檢定在資料科學中其實非常常見,尤其是在以下情境:
1) 特徵篩選(Feature Selection)
在機器學習中,可以用卡方檢定來判斷:某個類別型特徵是否與目標變數有關。
例如:
- device type
- transaction type
- merchant category
如果卡方檢定顯示某個特徵與目標高度相關,就可以保留該特徵。
2) A/B Test 分析
例如比較:
- 不同版本 UI
- 不同廣告文案
是否影響:
- 點擊率
- 轉換率
只要資料是分類型(點擊 / 未點擊),就可以使用卡方檢定。
3) 詐欺偵測
在金融詐欺分析中,可以檢查:
- transaction type vs fraud
- country vs fraud
- device vs fraud
看看哪些類別與詐欺交易存在關聯。
卡方檢定的限制
雖然卡方檢定非常常見,但它也有一些限制。
1) 只適用於分類資料
卡方檢定不能直接用於連續數值資料。
例如:
- 年齡
- 收入
- 金額
需要先進行 分箱(binning) 才能使用。
2) 樣本數太小時不適用
卡方檢定有一個常見建議:
每個格子的期望值最好大於 5。
如果資料太少,結果可能不可靠。
結論
卡方檢定(Chi-Square Test)是一種用來檢驗分類變數之間是否存在關聯的重要統計方法。它的核心概念是比較「觀察值」與「期望值」之間的差距,透過卡方統計量與 p-value 判斷這個差異是否具有統計意義。
在資料科學實務中,卡方檢定常被用於特徵篩選、A/B Test 分析以及詐欺偵測等情境。理解它的原理不僅有助於統計分析,也能幫助我們更好地解讀資料中的模式與關係。