評價線性模型,R平方是個好裁判嗎? | 協和八

原創 田菊 

說人話的統計學

在線性模型裡面加上一個新的變數,由於新的變數與已有的變數可能存在相關性,往往會改變已有變數的回歸係數。同樣的道理,如果在線性回歸模型中去掉某個變數,剩下變數的回歸係數也會隨之改變。要想回顧來龍去脈,可以複習上一集《42.回歸係數不顯著?也許是打開方式不對!》的內容。

這就是說,如果我們構建模型的目的是來研究一些特定的變數與預測值 y 的關係,那麼選擇哪些其它變數包含在模型裡面,對我們最終的結論會有不可忽視的影響。

更進一步來講,在線性模型中選擇包括哪些變數,其實就是選擇模型本身——確定了變數,我們就可以用最小二乘法算出回歸係數, 同時模型的預測值也就確定了。換句話說,選擇變數的過程也就是在構建模型的過程。

那麼,面對一個具體問題的時候,我們到底應該怎樣決定在線性模型中要包含哪些變數?

構建模型,第一步不是打開統計軟體,在裡面搗鼓資料,而是要先熟悉模型要解決和預測的問題背景,根據前人積累起來的經驗,預判一下哪些因素很可能與這一變數有關,以及它們相互之間存在什麼關係,並儘量將這些因素都放到模型裡面。

萬一有些因素沒有資料怎麼辦?所以說,最理想的情況下,是在研究開始之前,就對變數之間的關係以及模型的形式有個比較清晰的判斷,並以此為指導設計實驗,決定哪些變數需要收集資料,要不然到了資料分析的時候才發現漏掉了關鍵的變數,那可就欲哭無淚啦!

構建模型的過程,有點像員警抓罪犯,分析資料的人扮演著員警的角色,罪犯便是我們要找的與因變數有關的因素。 我們要先憑藉已有的背景知識,找出一些可疑變數(犯罪嫌疑人),然後把這些變數加到模型裡面,進行進一步的審問

根據咱們看過各種偵探片的劇情,往往第一步找嫌疑人最為重要,如果把真正的罪犯在這一步漏掉了,無論後面如何對嫌疑人審問地多仔細, 也只是徒勞,弄不好還會將好人屈打成招(以前的《41.沒考慮到混雜因素,後果會這麼嚴重?》說的就是這事)。

員警審問犯罪嫌疑人,通過判斷嫌疑人的犯罪動機和過程是不是完全符合案情,找出真正的罪犯。我們在模型裡面「審問」可疑變數,先假設這些變數真的與因變數有關,再來看看由這些變數組成的模型能否很好地擬合 y 的數值,只有擬合得好,我們才有證據說明這些嫌疑人是真正的罪犯。擬合得不好呢?那也不要緊,構建模型並不是一錘子買賣,我們還可以根據回歸模型的結果,再進一步做調整。

今天我們要給大家講的,就是怎樣評價一個線性回歸模型整體的好壞。

怎樣知道模型擬合得好不好呢?

其實我們在《37.回歸線三千,我只取這一條》裡面已經講到了一些。現在我們來回顧一下,以最簡單的單變數線性模型為例:

WeChat 圖片_20200526160444.png

 

回歸線的運算式是:

01.png

 

 

給定 x 取值,其對應的回歸線上的 y 值便是模型預測的 y 值,記為WeChat 圖片_20200526160608.png,而模型中誤差項 εi 表達的是預測值與實際值之間的誤差——我們的模型越準確,誤差就會越小。

大家已經知道,線性模型認為這個誤差項滿足正態分佈,這樣便可以通過最大似然法,找出了最為合理的 β0  β1。給定了 β0  β以後,對於任意的 xi,因變數 y 的預測值WeChat 圖片_20200526160650.jpg也就確定下來了。

為了衡量模型整體的優劣,我們不妨把每個測量值 y和預測值WeChat 圖片_20200526160650.jpg之間的誤差用平方和的形式綜合起來,作為一個初步的評價標準:

 

WeChat 圖片_20200526160742.jpg

我們也提到過,最大似然法找出的解,也恰好具有另外一個意義,就是能最小化誤差平方和。也就是說,只要給定了模型的形式,即模型裡面包含哪些變數,模型的參數就定了,同時誤差平方和的形式也就確定下來了。

誤差平方和越小,說明模型擬合出來的 y 值與真實的 y 值越接近 。而我們用最小二乘法得到的模型,就是這種形式的模型裡最好(誤差平方和最小)的一個。 

但是,我們要解決的問題比這要更進一步——如果我們有多個形式不同的模型,都擬合在同一組資料上,那麼哪個模型最好?

假設我們有兩個模型,都是來預測子女的身高,每個模型都用最大似然法確定了最佳回歸線,如下圖——

 

WeChat 圖片_20200526160914.jpg

左邊的模型用的引數是父親的身高,誤差平方和 = 1529.6,而右邊的模型是引數是母親的身高,誤差平方和 = 748.1 

直觀上右邊的模型比左邊的好,似乎誤差平方和越小,模型就越好,咱們暫且將誤差平方和稱為「模型好壞標準 v0

僅用誤差平方和來衡量模型擬合得准不準確,有時並不合理 例如,同樣預測身高的模型如果只是把身高的單位從釐米變成米,那麼誤差平方和就會縮小10000倍,那麼是否意味著用米作為單位的模型更好?這顯然說不通,因為用米作為單位的模型和用釐米作為單位的模型是等價的。

有沒有什麼辦法來改良誤差平方和,使得模型好壞的標準不會因為變數同時增加或減少幾倍就改變?

一個自然的想法是,既然誤差平方和的絕對值不行,那就用誤差相對於真實值的比值唄。為了能讓分子和分母的單位能夠互相抵消,分母的真實值也取平方和的形式,得到 「模型好壞評分 v1公式:

 

WeChat 圖片_20200526160952.jpg

與誤差平方和一樣,這個評分越小,模型就擬合得越準確

雖然上面這個評分比 v0 更好,但細細想想也是有問題的。設想一下,如果模型要預測的不是人相對地面的身高,而是相對海平面的身高,資料集裡的所有人都在海拔五百米的山上。這時,模型的對身高的預測值和身高的真實值都同時增加 500 米,所以上面評分公式分子代表的誤差平方和不變,但是分母卻大了好幾個數量級,說明評分變低,得到模型更好。

另外一方面, 我們真正關心的是不同的人身高之間的差異與哪些因素有關,只是改變了測量身高的參考系,不應該改變模型對不同的人身高差異的預測能力,所以上面採用誤差平方和與真實值比值的評分方式也需要改進。

為了使得我們的「模型好壞評分」系統不會因為模型裡的預測值同時增加會減小一個固定值(比如像上面的例子那樣將參考系從地面變成海平面)而改變,可以先將 y 的預測值先減去其平均值(這一過程也叫做中心化),再取平方和,叫做總平方和:

 

WeChat 圖片_20200526161031.jpg

從上面的公式看出,總平方和描述的是預測值 y 在其平均值的波動程度,預測值同時加上或減去一個常數對總平方和並無影響。

用總平方和代替「模型好壞評分 v1」中的分母,我們便可以得到「模型好壞評分 v2」:

 

WeChat 圖片_20200526161113.jpg

 

作為模型好壞的評分,咱們習慣的是得分越高,模型越好,而「模型好壞評分 v2」是數值越低,模型越好,所以實際應用中,我們可以把它翻個個兒,以 1 - 模型好壞評分 v2作為衡量模型對現有資料的解釋能力,它還有一個專門的名字,叫做「模型好壞評分v3」,哦不對,是 R-square R 平方),記作 R2

WeChat 圖片_20200526161150.jpg

從上面的推導過程可以看出,給定一個模型,R不會隨著預測值 y 的單位變化而改變,也不會因為 y 的值一塊兒增加或者減小而變化。

除了這些優點,R的取值總是在 0  1 之間(具體為什麼,下面會為大家解釋),這使得即使不同的線性模型也能放在同一個尺子下面來衡量好壞。

R等於 1 的時候,該模型的誤差平方和等於 0,即模型的預測值與實際值完全相等;R等於 0 的時候,說明誤差平方和等於總平方和,這又意味著什麼呢?這還得從總平方和的另外一層意義說起。

在《9.算術平均數:簡單背後有乾坤》裡面我們提到,如果我們假設每次測量的誤差服從正態分佈,在沒有考慮其它因素的情況下,平均值其實是對變數的最大似然估計。在線性模型裡面,沒有任何引數,只有一個常數的模型, y ~ β用最大似然法解出的模型參數 β0 就是 y 的平均值,同時 y 的預測值也是 y 的平均值。

聰明的讀者這時可能已經發現了,如果將總平方和公式中的 y 平均值看作是常數模型對 y 值的預測,總平方和的另外一層意義就是常數模型的誤差平方和。

從這一角度,R2 也可以理解為,正在構建的模型與模型比較,將擬合 y 的誤差降低了多少個百分比。誤差降低越多,說明加入的引數對擬合 y 幫助越大。

R等於 0 的時候,等價於該模型的誤差平方和與常數模型的誤差平方和一樣大,也就是說加上了各種因變數並沒有使得模型預測出來的 y 值更準確,說明模型裡面的這些因變數對預測 y 的值一點幫助也沒有。

那有沒有可能存在誤差平方小於總平方和,也就是說 R是負數的可能呢?只要線性模型裡面包含常數項 b0 R就不可能是負數。

在包含了至少一個因變數的模型裡面,y ~ ββ1*x用最大似然法找到的回歸係數,使得其誤差平方和小於任何其它 0 1 取值時的誤差平方和,當然也包括 β1 = 0,β0  y 平均值時候的誤差平方和。

這就意味著,模型 y ~ ββ1*x的誤差平方和,一定小於或者等於常數模型 y ~ β0 的誤差平方和。

我們還可以換個角度更通俗地理解上面這個結論。如果一個引數對減小誤差平方和完全沒有説明,則線性模型會自動放棄使用這一引數,將它的回歸係數設為 0

這也就是說,往模型裡面加入新的引數,模型的誤差平方和只會減小不會增加,從而 R只會增加不會減小。

根據上面的討論,只要模型裡面包含了常數項 b0R就不可能是負數,如果你哪天發現你的模型 R是負數,那麼一定是你犯了一個技術性的錯誤——忘了在模型裡面加入截距項 b0(嗯,不要問我是怎麼知道的)。

由於往模型裡面加入新的引數只可能提高 R2,這就使得用 R來比較包含不同數量的引數的模型時候,總會對引數多的模型比較偏心,這有時候並不合理,在下一集裡,我們會和大家繼續討論更多升級版的「模型好壞標準」。

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平方是個好裁判嗎?

作者:田菊

編輯:黑草烏葉

質控:粉條兒菜

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

    HCHUNGW的部落格

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