「脫離群眾」的資料點,是「春風化雨」還是「秋風掃落葉」丨協和八

原創 張之昊 

說人話統計學讀過上一集《45. 線性模型生病了,你懂得怎樣診斷嗎?》後,大家已經見識了線性回歸模型的幾種常見,包括:

  1. 因變數與引數間關係不線性;
  2. 殘差分佈不正態;
  3. 殘差呈異方差性;
  4. 引數之間存在多重共線性。

對於這幾種,我們在上一集中已經討論了它們的成因,以及如何對症下藥,打造更健康、更可靠的線性模型。這些問題有個共同點,就是它們都是模型整體的某種毛病——之所以產生了這些問題,是因為線性回歸模型有某些方面存在不合理的、與現實情況明顯不符的地方。儘管多數時候我們只能在有了具體的資料以後才能意識到這些毛病的存在, 但由於根源是在模型上,因而解決方法都是從改變模型本身入手,比如對變數進行變換、增加或減少某些變數,甚至換一種方法來擬合模型(如上集提到的加權最小二乘法)等等。

但還有一些情況,線性模型本身並沒有毛病,然而資料有一些問題,從而擬合數據後得到的模型也被傳染了。這時,我們就得使用另外的一些診斷方法,而解決方案也會變得更為微妙。今天,我們就一起來討論一下這裡頭的常見問題。

 

離群值

我們先從一個例子講起。假設我們想研究藍精靈兒童時期身高隨年齡的變化,最簡單的辦法,就是找到若干不同年齡的藍精靈,記下它們的身高,然後就可以進行統計分析了。當然,我們知道與身高有關係的因素很多,但我們現在先把其它的影響因素放在一邊,並且假設身高與年齡的關係是線性的。這時,我們就可以做個最簡單的單變數線性回歸分析。不出所料,從線性回歸模型中,我們發現身高與年齡之間存在顯著的正相關關係。為了展示這個結果,我們把所有數據點以及擬合得到的線性回歸模型畫在下面的圖1中。

 

WeChat 圖片_20200527175159.png

1  身高與年齡散點圖。圖中直線代表由此樣本得到的單變數線性回歸模型。

這樣就萬事大吉了嗎?如果你仔細端詳上面的散點圖,你會發現一個問題:在右上角有一個年齡大約為9.5、身高大約為89的資料點,似乎和其它資料點有些格格不入。如果只看其餘的資料點,它們指向的趨勢與這個點似乎相差甚遠。與此同時,由此樣本得到的線性回歸模型在年齡為9.5處的身高預測值(約為75左右)也比該資料點的實際值小很多——線性回歸模型大大低估了這個數據點所代表的藍精靈的身高,也就是說,模型在該點的殘差很大。

對於這樣殘差很大的資料點,我們通常稱之為「離群值」(outlier,也許大家還會見過其它書籍把這個詞翻譯成「異常值」,我們認為稍微籠統了一些,有失精確。既然殘差很大,也就是說模型在此處的解釋和預測能力很差。雖然也許只是這一個點有這樣的情況,但我們對擬合出來的模型的信心難免就要打點折扣了。

這時我們應該怎麼辦?我們不妨先想想,這種情況是否屬於上一集我們講過的線性模型的幾種常見病:

  • 是因變數與引數關係不線性嗎?這種可能性很難完全排除,比如說也許身高和年齡之間有抛物線式的上升關係,但從其它點的分佈來看,似乎不太像。
  • 殘差的分佈有問題嗎?有了這個離群值,樣本殘差的正態性和同方差性固然會不太好,不過只有這個點有些奇葩,現在也很難下結論。
  • 是引數之間存在多重共線性嗎?在當前的模型裡,只有一個引數,自然沒有共線性的問題。而且如果我們檢查回歸係數的置信區間,也能確認回歸係數並沒有很大的不確定性。當然,我們不能排除,有其它我們尚未包括到模型中的引數在起作用,但這種情況往往會影響至少一部分資料點,而導致樣本整體與模型間的偏離,而不是單獨一個。

因此,遇到這種情況,我們需要一點新思路。看到離群值,我們首先要做的是檢查是否有資料錄入錯誤、單位不一致之類的低級失誤——別笑,老司機也不免會偶爾在這個坑裡翻車。如果能排除這種可能,我們就得認真思考一下,對那個格格不入的資料點,到底是該涼拌,還是法辦?


 

強影響點

我們試著這麼想:既然已經排除了人為錯誤的可能性,這個數據點當然就不能隨意丟棄或刪除,因為它可能的確包含了真實有用的資訊。與此同時,從現有的結果來看,這個離群值和樣本中的其它資料點不太一樣。如果的確如此,把它們放在一起分析是否合適?如果離群值是由隨機因素產生的小概率事件,把它也包含在樣本裡,是否反而會阻礙我們發現真實的規律?

這時我們就可以嘗試一下,樣本中包含或者排除這個離群值,對擬合出來的模型有多大影響?因此,我們用離群值以外的資料點,重新擬合線性回歸模型,並將得到的結果(藍色直線)和此前的結果(黑色直線)同時畫在下面的圖2中。

 

WeChat 圖片_20200527175309.jpg

2 身高與年齡散點圖。圖中黑色直線代表由整個樣本得到的單變數線性回歸模型,藍色直線代表去掉右上角的離群值(9.589)後重新擬合得到的線性回歸模型。

容易看到,是否包含這個離群值,的確對線性模型產生了很大的影響。去掉離群值後,線性模型的斜率(即身高隨年齡的變化率)小了不少。在這個假想的資料集中,包含離群值時斜率為2.46,而不包含離群值時的斜率僅為1.46。換言之,對於我們想要研究的問題——藍精靈身高隨年齡增長的變化大小——來說,兩個模型雖然來自幾乎一樣的、僅僅差了一個數據點的樣本,給出的答案卻有這麼大的區別!

我們分別在保留和去除離群值時擬合兩個模型,當然不是要看哪個結果更合心意,就把哪個寫在論文裡(這可是絕對不行的!)。重點在於,我們可以通過這種方法來衡量一個數據點對線性模型的影響力(influence)如果我們把剛才的方法推廣到樣本中所有的資料點,也就是說,對每個數據點,都分別在保留和去除該資料點時擬合一個線性模型,然後比較兩者的差別,我們就可以衡量各資料點的影響力大小了。

在理想情況下,樣本裡不同資料點的影響力應該是相差無幾的。這就意味著,資料點都反映了大體相近的某種規律(用正式的語言來說,就是該樣本是「均質化」[homogenous]),從而就對線性模型的貢獻而言,彼此之間沒有太大差別——也就是所謂的「沒了誰地球都照樣轉」。但是,如果像前面的例子那樣,一個數據點的加入,就能「敢教日月換新天」,讓模型得出的結論大變樣,那我們就得再仔細斟酌了。此時,這個數據點由於對結果有不成比例的影響,因此被稱為「沒了誰地球都照樣轉」influential point)。在沒有進一步證據的情況下,我們當然很難直截了當地說哪個模型更「正確」,但至少存在明顯的疑點。尤其是當兩種情況會得出性質不同的結論(比如包含某資料點時,變數yx之間有顯著關係;而當去掉該資料點時,變數yx之間不再有顯著關係)時,我們就更需要小心了。

這個思路是對了,但還有一些技術問題要解決。

第一,像上面這樣簡單的只有1個引數的例子,畫圖可以很有效地幫助我們找出潛在的離群值和強影響點,但因素一旦不止1個,這樣的二維散點圖就無法完整反映情況了。而且,靠肉眼看圖難免有些主觀。因此,我們需要一種更客觀、更通用的判斷方法

第二,在某個資料點包含與否的兩種情況下,線性模型怎樣的變化算是足夠大?對於一個特定的問題,我們固然可以直接比較回歸係數的變化,但總歸沒有一個具體的界限——2.461.46差別看起來是挺大的,那如果是2.462呢?又或者2.462.3,這樣的差別又算大嗎?而且,我們知道回歸係數的數值大小其實取決於因變數、引數使用的單位。因此,光說回歸係數變化多少,並不具有普遍性

因此,統計學家們發明了一系列衡量單個資料點對線性回歸模型結果影響大小的標準,包括Cook距離(Cook’s distance,由美國統計學家R. Dennis Cook發明)DfBetaDfFits等統計量,其中Cook距離最為常用。它的定義實際上遵循了我們剛才講過的思路,即比較在保留和舍去某一個數據點的情況下得到的兩個線性模型中回歸係數的差別,然後再進行標準化,使得Cook距離稱為一把統一的尺子,其尺度不會因為變數本身的尺度變化而變化。因此,不同的研究、不同的資料集、不同的模型得到的Cook距離都是可以等量齊觀的。

現在,絕大多數統計軟體都可以在擬合線性模型時很方便地輸出每個數據點對當前模型的Cook距離。我們把前面例子(包含離群值(9.5,89))Cook距離繪成下麵的圖3.要注意,圖3中的橫軸是資料檔案中各資料點的編號,並沒有實際意義。

 

WeChat 圖片_20200527175504.jpg

3  樣本各資料點根據前述模型計算的Cook距離。

對於一個樣本的Cook距離,我們首先要關注的是其整體的分佈。在理想的、均質化的樣本裡,Cook距離應該彼此相差不大,而且數值都很小。從圖3中我們可以看到,絕大多數資料點的Cook距離都比較小,唯獨第20號資料點(就是離群值(9.5,89))的Cook距離遠遠高於其它,超過了2。通過這一觀察,我們就可以初步判斷,這個離群值很可能是個強影響點,會給模型的結果帶來潛在的偏差。另外,一些統計學家也提出了具體的界限(常用的有1或,其中n為樣本量,k為線性模型中回歸係數的數量,包括截距),當某資料點的Cook距離超過該界限時,就判定該點為強影響點


 

離群值不一定是強影響點

  回顧一下上面的例子,我們先通過簡單的二維散點圖發現了一個離群值(如果模型中包含多個因素,殘差圖是更好的尋找離群值的方法),從而引出了關於資料點對線性模型影響力的討論,並且用Cook距離確認了該點的確是強影響點。這是否意味著離群值一定是強影響點呢?

答案是否定的。從定義上說,在線性回歸中,離群值指的是殘差較大的點,而強影響點則是以包含該點與否時線性模型變化大小所決定的。一般來說,強影響點往往是離群值,但離群值不一定是強影響點。我們不妨來看下面圖4中的例子。

在這個例子裡,我們的樣本和之前的例子幾乎完全一樣(可與圖1或圖2比較),唯一的區別是,我們把離群值挪了個位置,從(9.5,89)移到了(5.5,89)。我們還是依葫蘆畫瓢,按照剛才的思路來考察這個離群值對線性模型的影響。比較圖4左邊部分中,包含和不包含離群值得到的兩個模型,可以看到兩者的斜率變化其實不大。也就是說,該離群值並沒有對關於身高隨年齡變化大小的關鍵推斷產生很大的影響。考察Cook距離也可以得到相似的結論——離群值仍然記為20號,從右圖可見,雖然該店的Cook距離仍然比其他各點要大,但比起前面例子的離群值要小得多。因此,這進一步佐證了,在這個例子裡,離群值(5.5,89)對線性模型的影響不太強。

 

WeChat 圖片_20200527175617.jpg

離群值不一定是強影響點。左,身高與年齡散點圖,離群值為(5.589),黑色直線代表由整個樣本得到的回歸模型,藍色直線代表去除離群值後得到的回歸模型。右,使用整個樣本時的回歸模型(左圖黑線)中,各資料點的Cook距離。 

你一定會問,為什麼會有這樣的差別呢?比較兩個例子我們會得到一點提示——這似乎與離群值的引數(年齡x)值有關。事實的確如此,離群值是否會成為強影響點取決於它們在引數空間中的位置。如果離群值在引數範圍的邊緣(如前一個例子),它就很可能會是強影響點;如果離群值在引數範圍的內部(如後一個例子),它對模型的影響就會弱得多了。


 

樣本裡有強影響點,該怎麼辦

讀到這裡,我們已經明確了強影響點的性質,並且掌握了Cook距離這門鑒別利器。如果我們的樣本裡沒有強影響點,自然皆大歡喜;如果發現了強影響點,這時該怎麼辦?

這時我們要記住的最重要的原則是:不能輕易去掉任何一個數據點!我們掌握的工具,只能就當前的模型和樣本而言,判斷是否有某個(或某些)資料點對模型結果有異乎尋常的大影響。至於背後的原因,以至於該資料點是否反映真實客觀的規律,我們都一無所知。因此,貿然去除某個資料點(即便論文裡報告這一情況),是非常不恰當的。

解決這個問題最好的方法,自然是收集更多的資料。如果是「真理掌握在少數人手中」,這個當前看似奇葩的強影響點其實更能反映現實,當我們有更多資料時,自然也會朝真相越走越近;如果這個強影響點僅僅是湊巧產生的,隨著新的資料點的加入,它的影響也會漸漸被淡化。

當然,現實情況中,我們時常沒有進一步收集資料的條件。這時,最好的做法就是在論文中清晰準確地報告對強影響點的判斷方法,並且同時彙報包含/不包含強影響點的分析結果,從而使後來的讀者能夠更好地判斷研究成果的意義和價值。

本系列任意文章

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. 「脫離群眾」的資料點,是「春風化雨」還是「秋風掃落葉」

作者:張之昊

質控:粉條兒菜

編輯:鵝不食草

 

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

    HCHUNGW的部落格

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