你在 或者不在 需要邏輯回歸來算 | 協和八

原創 田菊 

筆者按:此前我們一起學習了很多統計學方法,包括 t 檢驗,ANOVA,線性回歸,這些方法都在實際的資料分析中應用得非常廣泛。那是不是掌握了這些統計方法就能從容應對所有的資料問題呢?告訴你一個不幸的消息:當因變數不是連續變數的時候,前面這些方法都不適用。

統計方法的最終目的,是説明我們定量地理解一組因素(引數)如何影響我們關心的現象(因變數)。與引數 x 類似,因變數 y 不僅可以是連續的數值,也可以是代表類別的離散值。 在研究體重和健康的關係時,我們如果將血壓高低作為因變數,那麼 y 就是連續的,而如果我們將是否得心臟病作為因變數,那麼 y 就是分類變數categorical variable)。

咱們之前學習的 t 檢驗,ANOVA,線性回歸等方法,解決的問題都有一個共同點:因變數 y 是連續的。這些方法的不同之處主要在於引數 x 的特點,t 檢驗中引數只能取兩個類別,比如科研中常用的對照組和實驗組的比較就常常用到 t 檢驗。ANOVA 中引數(也稱為因素)就更靈活了,不僅可以包括多個引數,每個引數還可以有多個組別。到了線性回歸模型,對於引數就更加沒有限制了,不管是連續的還是類別變數通通都可以丟進去,保準兒給你吐出個模型。

雖然線性回歸模型在引數的種類上面已經沒有限制了,因變數只能是連續的數值卻是一個很大的制約因素(後面會詳細說)。這個制約有多大呢?實話說,很大——大到需要統計學家們再發明許多其它模型,專門來解決這個問題,因為在實際應用中,因變數是分類變數的情形太普遍了。

分類變數中最簡單、也最常用的情形是二元變數binary variable)。二元變數的預測在我們日常生活中比比皆是。很多人都有出門前查看一下天氣預報的習慣,看看今天會不會下雨,這裡下雨就是二元變數,因為只有下和不下兩種情況。在健康領域,疾病的診斷需要綜合各種測試的結果,給出病人是否患某疾病的結論。在商業領域,咱們在網上網購的時候,電商平臺為了讓我們多剁手,需要利用各種資訊(如性別、年齡、地域、過往購物歷史等)預測用戶是否會點擊某個商品連結。 

既然二元變數作為因變數的情況如此普遍,而我們學過的招術又都不奏效,那麼有什麼統計模型可以説明我們預測類別變數呢?那就是大名鼎鼎的邏輯回歸模型(logistic regression)了。

 

邏輯回歸模型模型的目的是預測概率

別看邏輯回歸模型的名字有「邏輯」二字,其實這只是音譯,跟邏輯並沒有神馬太大的關係。邏輯回歸模型的輸入是各種引數的值,輸出是因變數取某個特定值的概率。看到這裡,你可能要抗議了,不是說好的要預測二元變數嗎?怎麼掛羊頭賣狗肉,變成預測概率了呢?

大家讀過我們對於線性回歸模型的討論,都會知道,由於資料的產生有隨機性,我們無法完全精確地預測因變數的取值。在已知父母身高以及孩子性別的情況下,孩子的身高並不是一個固定的值,因此在線性回歸模型裡面,我們強調過,模型預測的是在給定引數取值情況下,因變數 y 的平均值(可回顧《36.如果只能學習一種統計方法,我選擇線性回歸》)。 類似的,在預測二元變數的時候,我們預測的也是因變數取值的平均值。我們馬上就會發現,預測二元變數的平均值和取某個特定值的概率是等價的。

為了實際應用的方便,我們可以用 y 取值 0 1 來代表二元變數對應的兩種情況。這時預測二元變數的取值就變成預測 y 是等於 0 還是 1。如果把拋硬幣時哪面朝上作為一個二元變數 y,我們可以用1代表正面,0 代表反面(當然反過來也是完全可以的)。

假設我們扔了 10 次硬幣,8 次正面朝上,那麼 y 的平均值是 (8×1 0×2) / 10 = 0.8,這正是 y = 1(正面朝上)的概率。也就是說,取值 0 1 的二元變數y的平均值與 y = 1 的概率是一回事。因此,邏輯回歸模型預測二元變數y(用 0 1 表示)的平均值,也就是預測 y 取值為 1 的概率。

為什麼線性回歸模型不適合預測二元變數?

既然是預測 y 的平均值,能不能照搬之前學過的線性回歸模型呢?如果非要生搬硬套,使用線性模型預測二元變數,在某些情況下,得到的結果可能與用邏輯回歸模型也差不太遠。但是,使用邏輯回歸模型幾乎總是會得到更合理的結果。

假如把分析資料比做烹飪,選擇模型就像是選擇廚具。線性模型有點像電鍋,只要開夥做飯就都會用到,邏輯回歸模型像炒鍋,使用頻率也很高。如果是炒菜,我們都會用炒鍋 。在電鍋裡面烹小炒,雖然菜扔進去也能煮熟,指不定還能將就著吃,但是有炒鍋的時候,咱們幹嘛不用呢?

下面我們來細數為什麼線性回歸模型並不適合預測因變數是二元變數的情況。

首先,大家應該還記得,線性回歸模型的其中一條理論假設,是模型預測值與真實之間的誤差滿足正態分佈。這一條在 y 是二元變數的情況下很難得到滿足。比方說,在引數取某組數值的情況下,線性回歸模型給出的預測值 y 0.6。由於因變數 y 是個二元變數,所以實際資料的 y 只能取 0 1。這樣一來,預測值和真實值之間的誤差要麼是 0.6,要麼是 0.4,因此誤差的分佈只會是兩根柱子,不可能形成像正態分佈那樣中間高、兩頭低的連續分佈。

再者,線性模型的預測值取值範圍不一定在 0 1 之間。既然模型是用來預測二元變數取特定值的概率,那麼模型的輸出就應該在 0 1 之間,如果模型輸出的值大於 1 或者小於 0 則毫無意義。在線性模型裡面,只要引數能夠任意取值,那麼模型的預測值也可以是任意值。因此,使用線性模型預測二元變數便會導致預測值出現 0 1 之外的「非法」值。

最後,線性模型假設的y的平均值是各個因素的線性疊加,這一點往往並不符合實際。射擊運動員可能需要幾個月的訓練能把打中十環的概率提高到百分之五十,如果線性模型成立,只要再花幾個月的時間就能提高到百分之百的命中率。實際上,即使花費數年的訓練也很難達到百分之百。如果我們把射中靶心當作一個二元變數 y,在 y = 1 的概率非常接近1 的時候,引數 x(訓練時間)通常需要變化很大才能進一步提高其概率。這是現實世界遵循的規律,好的數學模型應該能反映這一規律。

到底什麼是邏輯回歸模型?

上面說到的用線性回歸模型預測二元變數的種種問題在使用了邏輯回歸模型之後便會迎刃而解。說了這麼多邏輯回歸模型的厲害之處,下面我們就來看看它的廬山真面目。

 

WeChat 圖片_20200601125157.jpg

其中 p 代表 y = 1 的概率,x 代表了不同的引數,表示了誤差項。與線性回歸模型對比,等式右邊完全相同,實際上邏輯回歸模型也是廣義上的線性模型。而等式的左邊形式更複雜了,引入了一些非線性的變換。

等式左邊的式子 log(p/(1-p)) 是對因變數 y 的一個轉換,它有一個專門的名字,叫做「分對數」,在英語裡面叫做 logit,由於英語發音的原因,所以就有了「邏輯回歸模型」這麼一個奇怪的名字。分對數與概率 p 有著一一對應關係,只要確定了分對數,便能計算出 y = 1 的概率,反之亦然。

引入了分對數以後,等式左邊就可以取任意值,從而不會出現模型的預測值「不合法」的現象。分對數中,p 的取值在 0-1 之間,p/(1-p) 便可以取任意大於 0 的值。對它再取對數,得到的分對數便可以是任意的實數(如下圖)。換句話說,不論丟進去的引數取什麼值,模型輸出的概率 p 總是在 0-1 之間。

 

WeChat 圖片_20200601130142.jpg

邏輯函數長什麼樣?左圖是 p/(1-p) 的函數曲線,在賭博中,如果 p 代表輸掉的概率,p/(1-p) 就是賠率(odds);對左圖的曲線取對數後得到右圖中邏輯函數的曲線。從右圖中可以看到,在概率 p 大於 0.5 時,邏輯函數取正值,小於 0.5 時,邏輯函數取負值,當 p 接近與 0 1 這兩個極端值時,邏輯函數變化很快,分別趨近於負無窮和正無窮。

不難想像,實現將概率 p 對應到整個實數範圍的轉換的方法有無窮多個,為什麼利用分對數進行轉換的邏輯回歸模型被使用得最多呢?這還得說一點兒概率論的歷史。

最早的概率理論是為了研究賭博而發明的。十七世紀的數學天才帕斯卡和費馬為了解決賭博時賠率為多少比較公平,建立了概率論的基礎。賭博中的賠率是指獎金應該是賭注的多少倍。當輸掉的概率是 p 時,  就恰好是最公平的賠率(想想這是為什麼?),即賭博的結果是不會贏錢也不會輸錢,而將賠率取對數就能得到分對數。

說到底,概率、賠率、分對數三者都是對可能性的一種量化,就好像測量溫度有攝氏度,華氏度和開爾文等不同的標準,但是這些描述的都是「溫度」這一屬性。賠率、分對數、概率這三者描述的也都是「可能性」這一屬性,只不過具體在數值上的尺度不一樣而已。

在實際應用中,相對於概率和賠率,分對數這種描述方法恰好與影響因變數取特定值可能性的因素之間有比較好的線性關係,而邏輯回歸模型正好利用了這一規律,於是成為了預測二元變數最常用的模型形式。

這一集我們主要講了為什麼邏輯回歸模型比之前學過的線性回歸模型更適合擬合二元變數,但是還沒有教大家怎麼找出回歸係數以及對回歸係數做統計推斷。想要進一步瞭解邏輯回歸,記得關注「說人話的統計學」欄目的後續更新哦!

系列文章

1 章  高屋建築看統計

1.你真的懂p值嗎?

2.做統計,多少資料才算夠?(上)

3.做統計,多少資料才算夠?(下)

4.提升統計功效,讓評審心服口服!

5.你的科研成果都是真的嗎?

6.見識資料分析的「獨孤九劍」

7.貝葉斯vs頻率派:武功到底哪家強?

 

2 章  算術平均數與正態分佈

8.數據到手了,第一件事先幹啥?

9.算術平均數:簡單背後有乾坤

10.正態分佈到底是怎麼來的?

 

3   t 檢驗:兩組平均數的比較

11.想玩轉t檢驗?你得從這一篇看起

12.就是要實用!t 檢驗的七十二變

13.不是正態分佈,t 檢驗還能用嗎?

14.只有15個標本,也能指望 t 檢驗嗎?

15.樣本分佈不正態?數據變換來救場!

16.數據變換的萬能鑰匙:Box-Cox變換

17. t 檢驗用不了?別慌,還有神奇的非參數檢驗

18.只講 p 值,不講效應大小,都是耍流氓!

19.找出 t 檢驗的效應大小,對耍流氓 say no

20.置信區間,就是這麼(不)自信!

21.如何確定 t 檢驗的置信區間

22.優雅秀出你的 t 檢驗,提升Paper

23.要做 t 檢驗,這兩口毒奶可喝不得!

 

4 章  方差分析(ANOVA):多組平均數的比較

24.要比較三組資料,t 檢驗還能用嗎?

25.ANOVA在手,多組比較不犯愁

26.ANOVA的基本招式你掌握了嗎?

27.ANOVA做出了顯著性?事兒還沒完呢!

28.聽說,成對t檢驗還有ANOVA進階版?

29.重複測量ANOVA:你要知道的事兒都在這裡啦

30.沒聽說過多因素 ANOVA ?那你就可就 OUT 了!

31.多因素ANOVA=好幾個單因素ANOVA?可沒這麼簡單!

32.兩個因素相互影響,ANOVA結果該如何判讀?

33.ANOVA還能搞三四五因素?等等,我頭有點兒暈

34.要做ANOVA,樣本量多大才夠用

 

5 章  線性回歸:統計建模初步

35.統計學模型你會玩嗎?

36.如果只能學習一種統計方法,我選擇線性回歸

37.回歸線三千,我只取這一條

38.三千回歸線裡選中了你,你靠譜嗎?

39.引數不止一個,線性回歸該怎麼做?

40.找出「交互效應」,讓線性模型更萬能

41.沒考慮到混雜因素,後果會這麼嚴重?

42.回歸係數不顯著?也許是打開方式不對!

43.評價線性模型,R平方是個好裁判嗎?

44.如果R平方是砒霜,本文教你三種解藥!

45.線性模型生病了,你懂得怎樣診斷嗎?

46.「脫離群眾」的資料點,是「春風化雨」還是「秋風掃落葉」

6  廣義線性模型:統計建模進階

47.你在 或者不在 需要邏輯回歸來算

 

 

arrow
arrow
    創作者介紹
    創作者 HCHUNGW 的頭像
    HCHUNGW

    HCHUNGW的部落格

    HCHUNGW 發表在 痞客邦 留言(0) 人氣()