卡方檢驗,或稱x2檢驗,被譽為二十世紀科學技術所有分支中的20大發明之一,它的發明者卡爾·皮爾遜是一位歷史上罕見的百科全書式的學者,研究領域涵蓋了生物、歷史、宗教、哲學、法律。之前做文本分類項目用過卡方值做特征選擇(降維),后來聽內部培訓,另一個部門說他們有用卡方檢驗做異常用戶的檢測,於是就想把卡方檢驗再溫習一次,同時把卡方檢驗和特征選擇串起來理解。
無關性假設
舉個例子,假設我們有一堆新聞標題,需要判斷標題中包含某個詞(比如吳亦凡
)是否與該條新聞的類別歸屬(比如娛樂
)是否有關,我們只需要簡單統計就可以獲得這樣的一個四格表:
組別 | 屬於娛樂 |
不屬於娛樂 |
合計 | |
---|---|---|---|---|
不包含吳亦凡 |
19 | 24 | 43 | |
包含吳亦凡 |
34 | 10 | 44 | |
合計 | 53 | 34 | 87 |
通過這個四格表我們得到的第一個信息是:標題是否包含吳亦凡
確實對新聞是否屬於娛樂
有統計上的差別,包含吳亦凡
的新聞屬於娛樂
的比例更高,但我們還無法排除這個差別是否由於抽樣誤差導致。那么首先假設標題是否包含吳亦凡
與新聞是否屬於娛樂
是獨立無關的,隨機抽取一條新聞標題,屬於娛樂
類別的概率是:(19 + 34) / (19 + 34 + 24 +10) = 60.9%
理論值四格表
第二步,根據無關性假設生成新的理論值四格表:
組別 | 屬於娛樂 |
不屬於娛樂 |
合計 |
---|---|---|---|
不包含吳亦凡 |
43 * 0.609 = 26.2 | 43 * 0.391 = 16.8 | 43 |
包含吳亦凡 |
44 * 0.609 = 26.8 | 44 * 0.391 = 17.2 | 44 |
顯然,如果兩個變量是獨立無關的,那么四格表中的理論值與實際值的差異會非常小。
x2值的計算
x2的計算公式為:
其中A為實際值,也就是第一個四格表里的4個數據,T為理論值,也就是理論值四格表里的4個數據。
x2用於衡量實際值與理論值的差異程度(也就是卡方檢驗的核心思想),包含了以下兩個信息:
-
實際值與理論值偏差的絕對大小(由於平方的存在,差異是被放大的)
-
差異程度與理論值的相對大小
對上述場景可計算x2值為10.01。
卡方分布的臨界值
既然已經得到了x2值,我們又怎么知道x2值是否合理?也就是說,怎么知道無關性假設是否可靠?答案是,通過查詢卡方分布的臨界值表。
這里需要用到一個自由度
的概念,自由度等於V = (行數 - 1) * (列數 - 1)
,對四格表,自由度V = 1
。
注:卡方檢驗的自由度:
1)如果是獨立性檢驗,那么自由度就等於(a-1)*(b-1),a b表示這兩個檢驗條件的對應的分類數。
比如《問卷與量表數據分析》課程里面的性別和是否購買之間的獨立性檢驗,自由度就等於(2-1)*(2-1)=1。這里可以理解為有兩個約束條件,即性別和是否購買這兩個變量,這兩個變量約束的方向都是自己那一方面的,所以要在自己的類別數目后面減去1,而不是總的類別數減去總的約束條件數目。
2)適合性檢驗,類別數減去1。此處相當於約束條件只有一個
對V = 1
,卡方分布的臨界概率是:
顯然10.01 > 7.88
,也就是標題是否包含吳亦凡
與新聞是否屬於娛樂
無關的可能性小於0.5%,反過來,就是兩者相關的概率大於99.5%。
應用場景
卡方檢驗的一個典型應用場景是衡量特定條件下的分布是否與理論分布一致,比如:特定用戶某項指標的分布與大盤的分布是否差異很大,這時通過臨界概率可以合理又科學的篩選異常用戶。
另外,x2值描述了自變量與因變量之間的相關程度:x2值越大,相關程度也越大,所以很自然的可以利用x2值來做降維,保留相關程度大的變量。再回到剛才新聞分類的場景,如果我們希望獲取和娛樂類別相關性最強的100個詞,以后就按照標題是否包含這100個詞來確定新聞是否歸屬於娛樂類,怎么做?很簡單,對娛樂類新聞標題所包含的每個詞按上述步驟計算x2值,然后按x2值排序,取x2值最大的100個詞。