喂,你的邏輯回歸模型該做個體檢啦!| 協和八

原創 田菊 

 

通過前面幾集對邏輯回歸模型的討論,我們已經知道,當因變數 y 是二元變數時,要想知道引數 x 是不是顯著地與因變數 y 相關,邏輯回歸模型是一個比較靠譜的選擇,這裡的引數 x 可以有多個,既能取如身高體重等連續變數,也可以取性別之類的分類變數。

也許大家已經發現,邏輯回歸模型其實和我們之前學習的線性回歸有許多相似之處,只是解決問題的手段略為不同。之前討論線性模型的時候,我們強調過,做回歸分析不要光顧著看回歸係數、p 值等等,還得檢查模型的基本假設是否成立。因此,我們當時分兩集講了一些模型診斷的方法和問題,回顧請戳《45.線性模型生病了,你懂得怎樣診斷嗎?》《46.「脫離群眾」的資料點,是「春風化雨」還是「秋風掃落葉」》。

使用邏輯回歸模型,同樣要掌握模型診斷方法。幸運的是,線性回歸模型診斷的大體思路也能應用到邏輯回歸模型上面。今天這一集文章裡,通過在邏輯回歸模型裡再思考一下模型診斷的問題,我們能對什麼是好的統計學模型有更深入的認識。如果能舉一反三地靈活地運用這些知識,今後即使遇到新的統計模型,也能更容易地發現模型的潛在問題,並找到合適的解決方法。

沒有完全正確的模型

 

在構建和評估統計學模型的時候,我們首先要認識到,沒有百分之百正確的模型,好的模型只是更接近真相。 一個經典的說法是:All models are wrong, but some are useful.(所有的模型都是錯誤的,但是有一些是有用的)。認識到這一點,我們就會自然地接受模型的構建是一個不斷試錯的過程,沒有什麼萬能的方法可以一步找出足夠合理、有用的模型,當然正確的方法可以幫助我們少走彎路。

對於剛接觸統計模型的讀者,下面的比喻也許能幫助你更好地理解這一點。假設有一天你遇到了一個看不見的隱形人,你的任務是幫助他挑選合適的衣服。由於無法直接觀察到隱形人的高矮胖瘦,我們只能通過讓他試穿衣服並觀測衣服的形變來推測什麼樣的衣服會更合適,最終找到一個相對合適的衣服。這裡,隱形人的體型就像是理想中完全正確的模型,但是我們最後挑選的衣服就是實踐中通過試錯調整找出的一個相對好的模型。

在構建模型的過程中,找出一個比較好的模型的關鍵,在於對統計模型有正確的品味——知道什麼樣的模型是好的,什麼是不好的。這個話題我們在《44.如果R平方是砒霜,本文教你三種解藥!》曾經討論過,咱們今天將從另外一個角度再做個討論,希望能幫助大家獲得更深入的理解。

「簡單有效」的模型就是好的模型 

「簡單有效模型就是好的模

好的模型可以歸結為簡單有效,簡單是指模型用到的未知參數儘量少,有效是指模型對已有的資料的擬合程度高,也就是說模型裡面引數和因變數之間的定量關係和觀察到的資料相吻合。

模型是否簡單是個相對的概念,並沒有絕對的標準,在我們比較同一組資料的兩個模型的時候,參數越少的模型越簡單。下面我們具體看幾個例子:

相對於

y~x1+x2

下面幾個模型都是更加複雜的模型

y~x1+x2+x1²

y~x1+x2+x3

y~x1+x2+x1*x2

模型的有效性是指模型能否有效地擬合現有的資料。在線性回歸模型裡面,我們用 R² 來定量地描述模型的有效性:的取值範圍在 0 1 之間,越接近 1,模型的預測值就越接近因變數 y 的實際值,則模型有效性越高(詳情可以回顧《43.評價線性模型,R平方是個好裁判嗎?》)。在邏輯回歸模型裡面,偏常(deviance)被用描述模型擬合的好壞 ,詳情可以回顧《49.邏輯回歸的統計檢驗,原來招數辣麼多?》。

別小看簡單有效原理,它可是大有來頭,還有另外一個有趣的名字叫做奧卡姆剃刀法則(Occam's Razor),是由哲學家奧卡姆提出的。奧卡姆剃刀定律有好多種說法,最常見的是:如果有幾個假說都同樣有可能成立,那就選擇所依賴的假設最少的那個。簡單有效不僅是判斷好的統計模型的標準,也是科研領域廣泛應用的一種思維方式。

為什麼統計模型在擬合程度差別不大的時候,越簡單的模型越好呢?這主要有兩個原因。 首先,複雜的模型容易過度擬合。複雜的模型參數較多,在資料量不大的時候容易受到資料中的雜訊影響,個中原因大家可以回顧《44.如果R平方是砒霜,本文教你三種解藥!》。

另外,簡單的模型更容易被其他科研人員或者有需要的人理解,變成可以利用的知識。是否容易理解往往取決於模型的參數的意義能否用幾句話表達清楚,如果模型複雜到很難跟別人說清楚,這樣的模型使用的局限性就會很大。

簡單有效這個標準,說起來容易,實現起來卻並不那麼簡單。實際上,提高簡單有效中一個的水準,往往會降低另外一個。因此,問題的關鍵在於在兩者之間找個平衡點。咱們之前在《44.如果R平方是砒霜,本文教你三種解藥!》講過的修正 R 平方等標準,其實是把簡單有效兩個標準結合起來考量模型的好壞。

構建模型的過程

 

講了一堆大道理,還扯上了奧卡姆家的剃刀,就是為了說明簡單有效的模型是好模型。但是在遇到實際問題的時候,如何才能達到這一目標呢?

在不同的模型形式之中,我們會首先嘗試已知最簡單有效的模型,用來描述感興趣的引數和因變數之間的關係。當預測變數是連續變數時,線性回歸模型是首選;當預測變數是二元類別變數時,邏輯回歸模型便是首選。

下一步,通過模型診斷再對已選擇的模型進行調整。模型診斷的目的就是看看模型有沒有明顯不合適的地方。不合適表現為兩個方面,一個是看模型的基本假設是不是有效,二是深入考察有沒有個別資料點與模型的預測相差甚遠。

邏輯回歸模型的假設

 

與挑剔的線性回歸模型相比,邏輯回歸模型前提條件少多了,只有下面兩條:

首先,邏輯回歸模型要求測量的資料之間是相互獨立的。這一點無法通過資料分析的方法驗證,只能在實驗設計和資料獲取階段控制好。

第二,邏輯回歸模型還要求 logit (P(y=1)) 與引數 x 的關係是線性的,這表現在邏輯回歸模型的形式中:

 

WeChat 圖片_20200601170257.png

 

 

如果引數與因變數的關係不滿足邏輯回歸模型的形式,我們一般可以通過對引數 x 進行變數轉換或者加入一些非線性的項來提高模型的擬合效果。這一點在線性回歸模型裡面也遇到過,後文會具體介紹在邏輯回歸模型裡面怎麼做。

與線性回歸模型不同的地方是,邏輯回歸模型並不要求引數或者誤差項滿足正態分佈,也不要求同方差性,也就是說不同預測值附近對應的誤差可以不同。

由於邏輯回歸模型的前提假設很少,我們在模型診斷時只要關注邏輯回歸模型的形式是不是合理就行了,而使用殘差圖對模型擬合誤差進行視覺化,可以有效解決這個問題。

用殘差圖進行模型診斷

 

殘差圖可是我們的老朋友了,咱們之前在《45.線性模型生病了,你懂得怎樣診斷嗎?》裡面就用它診斷過線性模型。 不幸的是,直接把線性模型的殘差圖生搬硬套到邏輯回歸模型上面,並不太合適。為了更好地理解殘差圖的用法,我們還得請出說人話系列專用群眾演員——藍精靈們。

從咱們開始討論邏輯回歸系列起,藍精靈們就在忙著選舉鎮長。聰聰和樂樂是兩個鎮長候選人,我們想要知道受教育程度(上學年限)和選聰聰作為鎮長的關係,通過使用邏輯回歸模型,得到了下面的關係:

 

WeChat 圖片_20200601170348.jpg

 

 

這時針對每個引數取值,預測值 p 表示的是 y=1 的概率, 殘差就是 p  y 實際值的差別。由於 y 的取值只能是 0 1,當預測的概率是 p 時,殘差就只能是 -p 或者是 1-p 。以預測值 p 作為 x 軸,殘差 y-p 作為 y 軸,我們會得到下面的結果:

 

WeChat 圖片_20200601170419.jpg

 

線性回歸模型未經處理的殘差圖

這個殘差圖並不是很有用,因為不管模型擬合得好不好,殘差都會落在 -p  1-p 這兩條線上。

為了解決這個問題,我們要換個思路。既然我們關心的是 y=1 的概率,那可不可以比較觀測到的 y=1 的概率和預測概率之差?這雖然是個好主意,但是在咱們的例子裡面,由於引數是連續變數,一個引數只對應一個 y 值,比如上學三年的只有笨笨一個人,而他對應的 y=0,這樣計算出的 y=1 的概率也是 0,與 y 的數值一樣,並沒有能解決上面的問題。

為了繞出這個圈子,我們不妨把 x 值相近或者是預測值相近的資料點分配到一組。我們需要事先定下每組的資料量,一般取在 5個以上,保證計算出來的y=1 的實際概率比較平滑,雜訊不會太大這樣一來,有了多個數據點,我們就可以算出觀測到的 y=1 的概率(實際上就是這些資料點裡 y1 占多大比例)了。在下文表 1 的例子裡面, 將資料按照預測值(第一欄)從小到大排列,順序將每五個資料分為一組,然後計算出每組預測值和 y 實際值的平均值(第三,四欄),進而計算出觀測到的實際概率與預測概率之差,就是能得到殘差了。

 

WeChat 圖片_20200601170452.jpg

 

分箱殘差圖計算步驟演示

 

 

每個組作為一個新的資料點,將觀測到的 y=1 的概率與預測的 y=1 的概率的平均值之差作為 y 軸,預測的 y=1 的概率的平均值作為 x 軸,就得到了分箱殘差圖(binned residual plot),如下圖所示:

 

WeChat 圖片_20200601170542.png

 

分箱殘差圖 把選擇預測值相鄰的資料分在一組,並且每組資料有相同數量的原始資料點,便可以算出這組資料的平均預測值(x 軸)和平均殘差(y 軸),也就是說圖中的一個點實際上來源於多個資料測量值平均值。

理解了分箱殘差圖是怎麼回事,那如何才能運用它進行模型診斷呢?我們需要著重關注以下三個方面。

首先,判斷模型整體擬合度好不好。同樣的資料,殘差的絕對值越小,說明模型預測的概率與實際概率越接近,也就是模型的擬合度更好。

第二,判斷單個引數與 logit (P(y=1)) 關係是否是線性的。如果存在非線性的關係,往往會存在兩頭預測值偏低(或偏高),中間預測值偏高(或偏低)的傾向,如圖三(左)所示。這種情況下,我們可以考慮加入預測值的平方項作為引數來改善,通過引入平方項,殘差基本上均勻地分佈在x軸兩側,沒有出現特定範圍內的殘差總是正的或負的情況,如圖 3(右)。

 

WeChat 圖片_20200601170615.jpg

 

 

教育程度與 logit(選聰聰的概率)之間的關係並不完全是線性的,所以左圖的模型擬合的結果有系統偏差,而右圖模型通過加入平方項有效地減低了擬合的誤差。

第三,看離群點。有時候模型雖然整體擬合得很好,在個別資料點附近會出現預測值與實際值相差很大的情況,這些資料點成為離群點,我們在《46.「脫離群眾」的資料點,是「春風化雨」還是「秋風掃落葉」》裡面也提到過。個別離群點的存在並不一定說明模型有問題,而有規律地出現離群點就值得進一步關注了。

由於邏輯回歸模型預測的是 y=1 的概率,即使預測是完全準確的,觀察到的 y=1 的概率也不一定和預測的完全相等。 這從拋硬幣的例子裡面可以看出:

硬幣正面朝上的概率是 0.5,拋硬幣 100 次,我們觀測到向上的次數也不一定恰好是 50 次,也有可能是 51 次,48 次,等等。事實上,硬幣會有 95% 的概率正面朝上的次數介於 40 60 之間,也就是說觀測到的正面朝上的概率有 95% 的機會在 0.4 0.6 之間,具體計算需要用到二項分佈的知識 。

如果我們對 y=1 的概率的預測是準確的,那麼觀測到的概率與預測到的概率會在 0 左右波動,給定預測概率以及其對應的區間裡面資料點的數量,我們可以計算出殘差會有 95% 的概率落在特定的範圍內。這個範圍便可以説明檢測邏輯回歸的離群點,也就是超出預期誤差的資料點,如果有高於 5% 的資料點都在 95% 區間外,則說明模型可能有系統偏差需要調整,如下圖四所示。

WeChat 圖片_20200601170644.jpg

 

圖中的灰色曲線顯示了能接受的誤差線,也就是在假設模型的預測值是準確的情況,95% 的資料點覆蓋的範圍。左圖的模型有大量的資料點在 95% 範圍之外,說明模型有擬合效果不好,反之右圖幾乎所有數據點都在誤差線內,說明模型擬合較好。

 

系列文章

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.你在 或者不在 需要邏輯回歸來算

48.邏輯回歸的嫋娜曲線,你是否會過目難忘?

49.邏輯回歸的統計檢驗,原來招數辣麼多?

50.線性回歸能玩多變數,邏輯回歸當然也能

51.喂,你的邏輯回歸模型該做個體檢啦

 

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

    HCHUNGW的部落格

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