大家好,時隔……(我也不知道到底時隔多久了),媛子終於從精品案例的海洋中探出頭來,又出沒在「多元劍法」系列(戳這裡看其他多元劍法招式)。
今天想跟大家分享的是又一著名招式——判別分析。「判別分析」這個不明覺厲的名字通常和「分類分析」成對出現,有一些熊孩子就問過,這兩者到底有什麼聯繫,它們又跟聚類分析有什麼不同?
媛子有個兩歲的女兒,叫小橙子。在橙子一歲的時候,我發現她可以準確地說出馬路上見到的小動物,這只是小貓,那只是小狗。但是其實爸爸媽媽只是陪她看過卡通片或者繪本上面的小動物,告訴他這裡面哪些是小貓,哪些是小狗,她並沒有見過現實中的貓貓狗狗。那麼小孩子為什麼會有這種能力,可以從看過的卡通片裡面的小動物中,學習到小貓和小狗的區別,並準確將一隻從未見過的小動物歸類到「小貓」或「小狗」的行列呢?
再比如,當一個人向銀行貸款買房買車的時候,作為銀行的借貸員,你需要根據這個人的個人信息、貸款記錄等歷史數據判斷這個人的還款能力。簡單來說,你需要通過以上信息將這個人歸為「可以按時還款,非違約」和「不能按時還款,違約」這兩組中的一組。那麼如何能儘量準確地分組呢?
又或者,醫生在診斷重大疾病的時候,通常都有一堆的指標作為參考。他們會根據這些指標對病人疾病的所屬類別進行一個判斷,然後對症治療。那麼如果從數據本身出發,怎樣從過去病人的歷史數據中總結規律,從而對新病人的病情判斷進行指導呢?
上述的這些例子背後所遵從的數據分析的原理其實都是相通的——我們分兩步解決這些問題:首先需要有一些「前人的經驗」,即歷史數據,在這些數據中清晰地知道每個個體所屬的類別。所以,這第一步就是從這些信息中,總結出各個類別彼此之間的差異,找到區別各個類別最有效的「分類規則」;第二步就是對於一個新來的個體,雖然並不事先知道它是屬於哪個類別的,但是可以根據第一步找到的「分類規則」,將這個個體分類到所有類別中的某一個。這兩個步驟中的第一步,在多元分析裡面,就稱之為「判別分析」(discriminant analysis),而第二步,就是「分類」(classification)。判別分析是描述性的,而分類分析是推斷性的。當然,這二者並不是可以嚴格割離的,因為判別分析的主要目的就是進一步進行分類,而分類分析通常都要有判別分析的結果做基礎。我們這一次就先討論第一步,判別分析。
需要注意的是,這裡我們明確地知道在歷史數據中,每個個體分別屬於哪一個類別(橙子在她看過的卡通片裡,是知道哪些是小貓,哪些是小狗的)。而對於每一個新個體而言,它也有一個明確的類別屬性,只是我們暫時並不知道,因此需要用已有的信息去推斷。這就好像有個無所不知的「上帝」在監督著的分類,所以習慣上把這種分類分析稱為「監督式學習」(Supervised learning)。之後我們還會講到沒有上帝監督的情況,叫做「無監督式學習」(Unsupervised learning),例如聚類分析。
我們剛剛提到了,判別分析是指,從歷史數據中總結各個類別的規律,建立「分類規則」。橙子看到的卡通片或者繪本裡面的小動物,就是她所收集到的「歷史數據」。當她看到很多隻小貓小狗之後,就會無形之中總結出一種規律。比如,耳朵大的通常是狗;個頭很大的通常也是狗;體毛較長的多是小狗;尾巴細長的更多的是小貓……這些信息便構成了一組多元數據,包括「耳朵大小」、「個頭大小」、「體毛長度」、「尾巴特徵」等變量。
如果按一元數據的處理思想,只將裡面的某一個變量單獨挑出來,比如「耳朵大小」,用它來區分貓和狗,這顯然不是一種明智的選擇,畢竟有很多狗的耳朵也像貓一樣小。所以,其實橙子腦海中默認的方式是,把這些變量綜合考慮,得到一個「綜合指標」來刻畫貓與狗的不同。
這種「綜合指標」的獲得在統計上有很多種方式,這裡主要介紹一種像主成分分析(戳這裡)一樣,對原始變量求「線性加權平均」的規則形式。這種方法是由費歇爾(R.A. Fisher)最早提出的,所以稱它為「Fisher線性判別法則「(Fisher’s linear discriminant analysis, LDA)。
比如在天氣預報中,根據經驗,今天和昨天的溼溫差和氣溫差是關於預測明天下雨或不下雨的兩個重要因素。那麼如何利用這兩個因素來得到晴天和雨天的費歇爾線性判別法則,並用它來進行以後天氣的預報呢?(當然,這個例子只是用來展示判別分析的方法,如果真的用它來做天氣預報肯定是圖樣圖森破了)
現在假設有如下10天的歷史數據可供使用:(數據來源見[4])
其中x1和x2分別是該樣本點獲得時前兩天的溼溫差及氣溫差,而該樣本點收集當天是否下雨決定了它屬於第1類(雨天組)還是第2類(非雨天組)。將這組多元數據畫成下面這種散點圖,並標明每個點來自的組別:
從圖中可以看出,無論單獨使用溼溫差x1(也就是只考慮上述散點的橫坐標的值)還是氣溫差x2(只考慮縱坐標),都無法將下雨組和不下雨組很好地分離開。但如果仔細觀察這些散點,就會發現其實可以用一條直線將兩組較好地分開(比如下圖中紅線所示),其中雨天(第1類)基本集中在紅線之下,而非雨天(第2類)反之:
當然,我們無法做到完美,總是有一些點(比如上圖中藍色圈內的點)無法被準確地分到它本該屬於的組別——橙子在辨認小貓小狗的時候還是有可能出錯。但我們所能夠做到的就是,找到的一個規則,使得用它分辨錯誤的概率在所有類似的分類規則中最小,或者說使得兩組數據在這個規則下分離得最開。
那麼怎樣找到這個規則呢?
由於我們的目標是用一條分割線將兩組數據儘量分得越開越好,用幾何圖形表示就是在如下這條與分割線垂直的方向(下圖紫色直線)上,兩組數據在該方向上的投影分離得越開越好:
所以,Fisher判別法則給出的結果其實並不是分割線本身(圖中紅色直線),而是跟它垂直的投影線(圖中紫色直線)。而由於這裡所使用的判別法則是線性的,所以對應的分割線和投影線均為直線,而不是曲線或其他圖形。學過幾何的朋友應該知道,在坐標系中的直線可以表示為橫縱坐標的線性函數ax1+bx2的形式。所以,這裡的任務就是尋找針對投影線的係數估計a和b。在這個例子中,根據軟體求得的a和b分別為a=-0.104, b=0.225。也就是說,可以根據溼溫差和氣溫差的線性組合建立一個新的綜合指標:-0.104*溼溫差+0.225*氣溫差,用這個指標就可以將下雨組和不下雨組很好地分離開來。確定了這個新的指標,即紫色投影線之後,紅色分割線的方向也一目了然了——就是與投影線垂直的方向。
對於橙子而言,根據費歇爾判別法則來區分貓和狗,就是應用耳朵大小、個頭大小、體毛長度等變量的線性組合來作為她的規則。當然,判別法則不只有費歇爾線性法則一種,例如還可以用曲線來作為判別函數。在這裡就不再涉及細節。
判別分析顯然不只可以用到分辨小動物和天氣預報中,在商業領域有更加廣泛的應用。例如徵信分析,在大數據時代下數據導向的網際網路徵信領域,當需要判斷某客戶的貸款審批是否予以通過時,所參考的歷史數據中將會包含歷史借款人的諸多信息——用戶自填數據(年齡、職業、收入、婚姻狀況、信用卡張數等),用戶行為數據(刷卡詳單、刷卡商戶分布、月消費等),甚至還會有跨平臺的數據(招聘網站的簡歷數據等):
同時,歷史借款人是否按時還款是有記錄的,因此可以根據歷史數據找到基於以上變量的Fisher判別法則,用一個或幾個原始變量的線性函數,將「未違約組」和「違約組」充分分離。
判別分析還可應用於其他商業領域,例如市場營銷中新用戶、流失用戶和忠實用戶的分離;消費者對不同競爭品牌的不同屬性偏好;市場細分等。當然,判別分析只是用來找尋規則的,還屬於描述性分析範疇,至於一個新來的個體到底屬於哪個類別,還需要推斷性的分類分析來告訴你。那就且聽下回分解吧。
>>>>參考文獻:
[1] Richard A. Johson and Dean W. Wichern. 「Applied Multivariate Statistical Analysis」.
[2] Alvin C. Rencher and William F. Christensen. 「Methods of Multivariate Analysis」.
[3] Brian Everitt and Torsten Hothorn. 「An Introduction to Applied Multivariate Analysis with R」.
[4] 王斌會 《多元統計分析及R語言建模》
畢業於美國賓夕法尼亞州立大學統計系的博士小海龜一隻;
就職於廈門大學經濟學院統計系、王亞南經濟研究院的小青椒一個;
學術方面關注高維數據的統計模型和方法、網絡數據和圖模型、統計基因學等;
實踐方面關注統計諮詢,想讓更多的人認識統計了解統計會用統計。