Statistic

卡方檢定(Chi-Square Test)入門教學

以直觀的方式理解卡方檢定(Chi-Square Test)的概念、原理與實際應用,學習如何判斷兩個分類變數是否存在關聯。

為什麼需要卡方檢定?

在資料分析或機器學習中,我們經常會遇到這樣的問題:

「兩個分類變數之間是否存在關聯?」

例如:

  • 性別是否會影響某產品的購買行為?
  • 是否為會員是否與是否購買有關?
  • 詐欺交易是否與某種交易類型有關?

這類問題的資料通常不是連續數值,而是分類資料(categorical data)

例如:

性別是否購買

在這種情況下,我們無法使用平均數、相關係數等方法來判斷關係,因此就需要一種專門處理分類資料關聯性的方法。

卡方檢定(Chi-Square Test) 正是為了解決這類問題而設計的統計工具。


卡方檢定在做什麼?

卡方檢定的核心想法其實非常直觀:

比較「實際觀察到的數量」與「理論上應該出現的數量」是否有顯著差異。

如果兩者差異很大,我們就會懷疑:這兩個變數之間可能存在關聯。

如果差異很小,則表示:資料看起來只是隨機產生,兩個變數可能彼此獨立。


一個簡單的例子

假設某電商平台想研究:性別是否會影響商品購買行為。

收集到的資料如下:

性別購買未購買總數
4060100
6040100
總數100100200

這個表格稱為 列聯表(Contingency Table)

從表面上看,好像:

  • 男生比較不買
  • 女生比較會買

但問題是:

這個差異是真的存在,還是只是隨機造成?

這就是卡方檢定要回答的問題。


如何計算「期望值」?

卡方檢定會先計算:如果兩個變數完全沒有關係,每個格子應該出現多少數量。

公式為:

Expected=Row Total×Column TotalGrand TotalExpected = \frac{Row\ Total \times Column\ Total}{Grand\ Total}

例如,「男性且購買」這格的期望值為:

100×100200=50\frac{100 \times 100}{200} = 50

因此期望表格會變成:

性別購買 (Expected)未購買 (Expected)
5050
5050

也就是說,如果性別和購買行為完全沒有關係,理論上應該是:

  • 男買 50
  • 男不買 50
  • 女買 50
  • 女不買 50

但實際觀察到的是:

  • 男買 40
  • 男不買 60
  • 女買 60
  • 女不買 40

因此就出現了差異。


卡方統計量

接下來我們要計算:實際值與期望值的差距有多大。

卡方統計量公式為:

χ2=(ObservedExpected)2Expected\chi^2 = \sum \frac{(Observed - Expected)^2}{Expected}

這個公式的意思是:

  1. 計算每個格子的差異
  2. 把差異平方
  3. 再除以期望值
  4. 最後全部加總

如果:

  • χ2\chi^2 很小 → 代表差異不大
  • χ2\chi^2 很大 → 代表差異明顯

χ2\chi^2 超過某個門檻時,我們就會認為:兩個變數之間存在統計上的關聯。


假設檢定的觀念

卡方檢定其實是一種假設檢定(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 分析以及詐欺偵測等情境。理解它的原理不僅有助於統計分析,也能幫助我們更好地解讀資料中的模式與關係。

Copyright © 2026 StudyWithWoody. All rights reserved.