資料到手了,第一件事先幹啥?| 說人話的統計學

farmer_chou發表於2017-11-04

2015-11-19 張之昊    協和八

讓我們的腦海裡浮現這麼一幅畫面:

經過一番(bu)(kan)(hui)(shou)的努力——

也許是焚膏繼晷與小白鼠的鬥智鬥勇,

也許是分子實驗室裡寂寞的離心和電泳,

也許是對病人的軟磨硬泡,

也許是病例故紙堆裡的上下求索——

反正莫問出處吧,現在你的資料已經收集完畢,乖乖地呆在電腦硬碟的一個Excel檔案裡了,那麼,

請問你接下來要做什麼呢?

也許你正覺得自己像個躊躇滿志的統帥,手下那可是一眾精兵強將,比如說什麼t檢驗將軍啦、線性迴歸元帥啦,營帳裡還坐著互相有點不太待見、但都身懷絕技的費希爾和貝葉斯兩位軍師(戳這裡回顧上一集《貝葉斯vs頻率派:武功到底哪家強?》),個個磨刀霍霍,就只等著你大手一揮,一擁而上把你的Science文章手到擒來?

這時請容我在你耳邊幽幽地說一句:

且慢且慢。

孫子有云:“知己知彼,百戰不殆。”在大戰三百回合之前,千萬別忘了先打量打量你的資料到底長什麼樣子。可不要小看這似乎沒啥技術含量的一步,要是缺了它,十次裡有九次我們們可是要陰溝翻船的。今天我們就來聊一聊為什麼需要它,以及具體有哪些需要關注的地方。

在正式地對資料進行嚴格的統計學檢驗之前,獲取和檢查資料基本資訊的步驟,統稱為“探索性資料分析”(exploratory data analysis),也有人把它叫做“預處理”(pre-processing)。

這裡的“探索性”,意思是說,此時的分析並不是為了驗證某個特定的假說或者擬合具體的模型,而是要對資料的總體情況有一個基本的瞭解。

為什麼說探索性資料分析是必不可少的呢?

它主要可以實現下面幾個目標:

一、發現資料中可能存在的錯誤和遺漏。大家都知道,資料的收集和整理是一件繁雜的工作,有時這個過程可能耗時很長,又或者是團隊合作的結果。在這樣的情況下,出現各種各樣的錯誤、紕漏在所難免。我們除了在資料收集過程中要採取預防措施、儘量減少錯誤以外,還需要通過探索性資料分析進行最後的把關

二、掌握資料的基本情況,獲得進一步分析的靈感。通過探索性資料分析,我們可以初步瞭解資料的面貌,比如取值範圍、中值、分散程度等。這些資訊還可以提示我們資料中也許存在的關聯,讓我們發現也許之前未曾考慮過的有趣的現象,指引我們形成具體的科學假設

三、檢查我們想要執行的統計檢驗的假設是否成立。許多統計檢驗對資料本身有一定的要求(尤其是它們的分佈形態),只有當我們的資料滿足這些假設時,統計檢驗的結果才有意義。探索性資料分析可以幫助我們做出初步的判斷,排除不適用的統計檢驗

上面說了探索性資料分析的重要性,我知道你也許還有些雲裡霧裡。彆著急,我們馬上就會講到探索性資料分析的具體方法,到那時我們就能更清楚地瞭解其作用了。

不過,我們需要先講一講資料可以分為哪些型別,因為不同型別的資料需要用到不同的探索性分析方法

最簡單、但又最重要的資料型別有兩種,離散型資料(discrete data)和連續型資料(continuous data)。

離散型資料本質上是一種分類。最典型的例子,就是性別、種族、職業、教育程度等。在多數情況下,離散型資料並沒有具體的數值(比如性別中的男和女),或者雖然形式上由數值表示,但數值本身並沒有明確的意義(比如用郵政編碼來記錄受試者居住的地域)。

你也許會意識到,對於有些離散變數來說,不同的分類是有某種順序關係的,比如說教育程度可以從低到高排列,而有些離散變數並沒有這種順序,比如說某個基因的基因型。這兩種情況分別稱為有序變數(ordinal variable)和名義變數(nominal variable)。

那麼連續型資料呢?顧名思義,連續型資料的數值有具體的科學意義,並且可以在數軸上的某個範圍連續取值。如果不受測量精度的限制,它在理論上可能的取值是無限多的。比如身高、體重、血糖濃度、腎小球濾過率等。有些資料理論上並沒有無限多的取值(比如人口只能取整數,商品的價格最高的精度只能是最小幣值),嚴格來說應該是有序離散變數,但由於它們可能的取值足夠繁多,因此在實際處理時當成連續型資料更加方便。

要對離散型資料進行探索性分析,最簡單、最有效的方法是算出一個包含所有情況的頻數(或頻率)表

用性別來做一個最簡單的例子,我們可以用軟體很容易地算出資料中“性別”這個變數的所有不同情況的數量以及百分比。這能夠給我們提供哪些資訊?

首先,我們可以很快了解資料中男女性的比例,還可以看到是否有異常的資料點出現。假設我們都用中文“男”“女”來標註受試者的性別,那麼性別變數應該只有這兩種情況。如果我們不清楚部分受試者的性別,則還會有第三種情況。但是,如果你在頻數表中發現了還有一個類別“M”,那麼很可能是在錄入個別受試者的資料時不小心打了英文。

其次,如果我們的研究中需要對男女性受試者進行比較,根據頻數的資訊,我們還可以考慮當前資料是否能夠滿足我們的需要(男、女性的數量是否都足夠多,兩者數量比例如何等)。

如果你自認為是一個視覺動物,也可以選擇繪製餅狀圖(pie chart,如下圖),它展示的資訊與頻數(頻率)表是完全相同的。


相比起離散型資料,連續型資料往往能提供更多的資訊,因此探索性資料分析的內容和方法也更復雜一些。對於一個連續性變數,每一個資料點可能都有不同的取值。在這些紛繁複雜之中,我們首先想知道的自然是大勢所趨——我們感興趣的整個群體平均而言是多大一個數?用高大上的統計學術語來說,這叫做集中趨勢(central tendency)。

不必被術語嚇到,回想一下初中甚至小學時學過的最初級的統計學知識,其實不就是平均數(mean)嘛! 不錯,算術平均數(arithmatic mean)是對集中趨勢的最常用的描述。但是,別忘了平均數還有一個兄弟,叫做中位數(median)。中位數的計算,是把該變數所有取值從小到大(或從大到小)排序,取最中間的一個(例如總共有21個數,則取排行第11的)。如果樣本量是偶數,則取中間兩個數的平均。換句話說,在資料集裡,恰好有一半的資料點比中位數大,而另一半的資料點比它小。

許多人都會對中位數有些嫌棄,因為它不像算術平均數那樣有一個固定又簡單的式子。為什麼我們還需要它?相比起算術平均數,中位數有一個突出的優點:根據它的定義,它就是所有資料點裡最中不溜秋的一個,所以它有一種穩如泰山的性格(統計學中稱為穩健性,robustness)。

比如說,如果有人算了算現任上海籍全國政協委員的身高平均值,很可能會得到一個比一般人的身高要大的一個數。難道長得高更容易當選全國政協委員?不是。這個平均值只是個假象,因為全國政協委員裡面的上海人裡有個姚明。在存在極端值的情況下,中位數比算術平均值更能反映樣本的普遍水平,因為算術平均值很容易受到極端值的影響,而中位數則不然。

與此類似的是,如果我們感興趣的變數分佈不對稱時,中位數和算術平均數也會有比較大的差別。最經典的例子是個人收入,這個數字是有下限的(零),然而卻是上不封頂(幾天前的那個晚上廣大剁手黨又給馬雲同志做了多少貢獻?),所以算術平均往往會被最大的那一小撮資料點拉高。因此,我們如果想從人均收入裡推斷一個國家或地區普通居民的經濟情況,可能就不太準確了。這個時候該找誰?不錯,就是中位數!

集中趨勢只是資料中所蘊含資訊的一個部分,要得到進一步的知識我們還需要知道資料的波動或發散程度,也稱為展布(spread)。

我們為什麼要關心資料的波動程度呢?集中趨勢能讓我們靠近表面以下的本質規律,但是展布卻告訴我們這一本質表現得有多穩定。設想一下,兩個程度相當的學生,一個四平八穩,另一個則是一把神經刀,一會兒超常發揮一會兒大跌眼鏡,他們倆進高考考場時的心態必然不一樣吧?

展布有幾種常見的表示方式。其一是樣本方差(variance),它的公式是


也就是說,取每個資料點與平均值之差的平方(可以將其視為各資料點到平均值的“距離”),並把它們都加起來然後除以n-1。

這個定義並不難理解,無非只是把各個資料點與中心的偏離程度彙總起來而已。至於為什麼除的是n-1而不是n,涉及到稍微複雜一些的理論,我們暫時先不深究。由於平方的存在,方差的量綱也帶上了平方(例如血壓的方差的單位就成了毫米平方汞柱)。為了讓量綱和原來的資料一致,我們可以給樣本方差開個根號,這也就是大家常見的標準差(standard deviation)了。

聰明的你一定會想到,方差和標準差都有和算術平均數一樣的毛病,就是容易被極端值帶跑。那麼有沒有像中位數那樣的穩健的表示展布的量呢?沿用尋找中位數的思路,我們把所有資料點從小到大排列,並且分成樣本量相等的四塊。那麼,這四塊之間就會產生三個分界點(稱為四分位點,quartile),從小到大分別用Q1, Q2, Q3表示(見下表)。


如果我們取Q3和Q1之差,那麼這就是四分位差(interquartile range),也稱為內距。由於四分位差不考慮首尾兩端的資料點,因此,它是一個不容易受極端值干擾的表示展布的統計量。

上面討論的這些統計量,可以很方便地用圖形來表示。其中一種選擇是箱線圖(boxplot),它彙集了中位數、四分位差以及一些其他資訊,能夠使我們對樣本的分佈有一個直觀的瞭解,也可以讓我們快速發現資料中可能存在的錯誤(例如因為資料錄入或單位錯誤導致的異常值)。

它之所以被稱為箱線圖,是因為它用一個“箱子”來表示我們的資料中最靠中間的一半(即Q1和Q3之間的所有資料點),而用箱子上下的兩根“鬍鬚”來表示資料的上下限範圍。箱線圖的畫法以及含義見下圖。


不難看到,箱線圖提供了相當豐富的資訊,但仍然不是全部。比如說,箱子裡那50%的資料是怎樣分佈的?我們無法在箱線圖上得知。這時,我們需要請出探索性資料分析的最大殺器——頻率直方圖(histogram)。

頻率直方圖是對樣本資料分佈狀況的一種視覺化的展現方式。它最初來源於大家在中學都聽說過的高爾頓釘板(下圖)。

我們可以把我們的每一個資料點想象成一個從上方以某種規律落下的小球(當然不一定像高爾頓釘板那樣),那麼頻率直方圖描繪的就是落到下方不同區域的球的數量。

要畫出一張頻率直方圖,首先要將變數的整個取值範圍劃出若干區間(通常等距)。比如說,我們有一個樣本,其中受試者體重的最小值和最大值分別是48公斤到73公斤,如果以5公斤作為組距(bin),那麼我們可以把整個體重的範圍分成[48,53], [53, 58], [58,63], [63, 68], [68,73]這些區間。然後以體重為橫座標,受試者的數量除以組距為縱座標(這樣每個矩形的面積就是該區間內受試者的數量),畫出受試者在這些區間中的分佈。

頻率直方圖可以讓我們對樣本的整體分佈一目瞭然,得到分佈形態、對稱程度等關鍵資訊(見下圖)。頻率直方圖一個關鍵的地方,在於區間數量的確定:區間數量太少的話,頻率直方圖過於粗略,會掩蓋真實的分佈;區間數量太多,則變得過於瑣碎,不容易看出分佈的大趨勢。區間數量多少合適,取決於樣本量的大小和資料的具體分佈情況,在實際應用時一般都要通過反覆嘗試才能獲得比較好的選擇。


要注意,千萬不要把頻率直方圖和另一種常見的統計圖——條形圖(bar plot,或稱柱狀圖)混為一談。頻率直方圖呈現的是某個連續變數的整體分佈情況(在不同取值範圍裡出現的次數多少),而柱狀圖描繪的是不同組別或個體的某一種用連續變數來表示的性質。因此,頻率直方圖(下圖右)的橫軸必然是該變數本身,而且必須覆蓋這個變數取值的整個範圍,矩形的高度表示的是落在對應區間的資料點的個數(或個數除以區間寬度);而條形圖(下圖左)的橫軸則是某個分類(如組別、個體、年份等),矩形的高度則是這些分類各自的某個連續變數的值。

探索性資料分析的方法很多,這裡介紹的只是其中最常用、最重要的一小部分。但是,萬變不離其宗,不論用哪種方法,我們的目的都是要管中窺豹,儘可能全面地瞭解手上資料的情況。千里之行,始於足下,不管你要做怎樣的資料分析,都別忘了這關鍵的第一步哦!

參考文獻:Seltman, H. J. (2012). Experimental design and analysis. Online at: http://www. stat. cmu. edu/, hseltman/309/Book/Book. pdf

2015-11-19張之昊協和八

相關文章