本節書摘來自異步社群《統計會犯錯——如何避免資料分析中的統計陷阱》一書中的第1章,第1.1節,作者【美】alex reinhart(亞曆克斯·萊因哈特),更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
統計會犯錯——如何避免資料分析中的統計陷阱

許多實驗科學都會涉及測量差異。一種藥物是不是比另一種藥物效果更好?具備某一基因的細胞是不是能比其他細胞合成更多的酶?一種信号處理算法是不是比另一種算法能更好地檢測脈沖星?一種催化劑是不是比另一種催化劑更能有效地加快化學反應?
我們可以用統計學來判别這些不同類型的差異。通常來說,我們觀測的是由于巧合或随機變化導緻的差異,是以當觀測差異大于随機産生的差異時,統計學家稱之為“統計意義上的顯著差別”。首先,我們來看如何判别。
p值的力量
假設你在測試一種新的感冒藥,其中新藥可以確定一天之内消除所有感冒症狀。為此,你找到20位感冒患者,給一半患者服用新藥,其他人服用安慰劑。然後記錄他們的感冒時長,找到服藥與未服藥患者的平均感冒時長。
這種測試有問題嗎?進一步分析,不是所有的感冒都是同一種類型。平均來說,感冒時間通常要持續一周。但有一些感冒會持續兩周甚至更久時間,也有一些持續幾天就好了。可能服用新藥的這一組患者都是較短時長的感冒,很快就好了。那麼,又如何證明是藥物起作用了,而不是這些患者運氣好呢?
統計假設檢驗給出了解決辦法。如果你知道典型的感冒時間 的分布,也就是說有多少患者得短期、長期和平均時長的感冒,據此可以給出一組随機樣本的患者的感冒時長比平均時長更長或更短的機率。那麼假設檢驗(或顯著性檢驗)就可以回答這個問題:即使藥物完全無效,那麼試驗産生以上觀測結果的可能性有多大?
如果隻對一個人進行藥物測試,那麼他的感冒時長比平均時長更長或者更短,都是不足為奇的。大部分感冒并不是非常理想的平均水準。但是如果對1000萬個患者進行測試,而所有患者都是短期感冒,這種情況就不太可能是巧合了,更有可能是藥物的效果。
科學家對這種直覺進行量化,給出了一個概念—— p值。
p值是在假設藥物效果沒有真實差異的情況下,差異等于甚至大于實際觀測差異的機率[1]。
例如,你給100個患者服藥,發現他們的平均感冒時長比對照組少一天,這時p值就是在藥物無效的假設下,“他們的感冒時間比對照組少一天”這種情況完全是出于巧合的機率。你可能會說,p值依賴于效果大小,試驗組感冒時間比對照組少一天的情況會比少四天的情況更為常見,也與試驗組的患者數目有關。
記住,p值不是用來測度你多麼正确,或者這個差異有多重要。反之,它是對“意外”的測度。如果假設藥物無效,那麼也隻能用運氣來解釋兩組的差別。然後p值越小,試驗結果是意外或因為運氣的可能性越大——或者說你的假設就是錯誤的,新藥的确有效。
如何運用p值來解釋“這些組之間是否有差異”?通常的經驗法則是:當p<0.05時,差別是“統計顯著”的。選擇0.05不是出于特别的邏輯或統計的原因,而是在多年的使用過程中形成的科學慣例。
注意到應用p值時,假設試驗各組沒有差別。這是顯著性檢驗的一個反直覺的特征:如果想要證明藥物有效,就去證明資料不支援藥物無效。是以,p值可以擴充到任何一種用數學表示某個要推翻的假設的情形。
但是p值也有它自身的局限。記住,p值是指對意外的測度,一個較小的p值意味着更加意外。它不是影響大小的測度。可以通過測量大的影響獲得一個小的p值(這種藥物可以使人的壽命延長4倍),或者用較大的确定性測量一個較小的影響。因為一種藥物或幹預通常是有一些效果的,是以可以收集足夠的資料,檢測極其微小但相對不太重要的差異,然後得出統計顯著性的結果。bruce thompson寫道:
統計顯著性檢驗可能包含一個套套邏輯(tautology)[2],研究人員已經收集了數百個産品“失效”的測試資料,然後通過一個統計檢驗來評價産品是否真的“失效”。而事實上,研究人員早已知道結果,因為他們收集資料時就知道資料都是已經“失效”的。考慮到知識的累積,這一套套邏輯已經造成了相當嚴重的後果1。
簡而言之,統計顯著性不意味着任何實際意義的顯著性。統計顯著性并不會給出太多資訊。一個統計顯著的差別可能隻是噪聲,或者展現了真實的影響,但是這一影響需要更多的資料才能确定。
沒有數學工具可以判斷出假設是真是假;也可以考慮假設與資料是否一緻。如果資料太少或者不清楚,那麼結論也就不确定了。
統計的心理暗示
p值局限性的背後還有一些關鍵核心的問題。假設運氣(而不是藥物或者幹預)是實驗中唯一因素,p值是獲得結果等于或大 于觀測值的機率。這就意味着p值迫使你去質疑從未發生過的結果——也就是比你的結果更極端的結果。獲得這樣的結果的機率有賴于實驗設計,這使p值具有“心理暗示特征”:兩種不同的實驗設計可以産生相同的觀測資料,但會得到不同的p值,因為未觀測的資料是不同的。
假如我連續問你12個關于統計推斷真假的問題,你正确回答了9個。我要檢驗假設:你是否是依靠随機猜想答對了這些問題?為此,我要計算你依靠随機猜想答對至少9個問題的機率。假設你等機率地選取“正确”和“錯誤”,計算得p=0.073[3]。因為p>0.05,很有可能你就是随機猜的答案。若确實如此,你将會在規定時間内以7.3%的機率答對9個甚至更多的問題2。
但也可能我并不是隻打算問你12個問題。如果我有一台電腦可以無限地産生問題,直到你答錯3個。現在我要計算在15、20、47個問題之後你答錯3個問題的機率,甚至是在175、231個問題之後你仍舊沒有答錯3個的機率。計算可得p=0.033。因為p<0.05,我的結論就是:你依靠随機猜想不太可能得到這樣的結果。
這是非常麻煩的:兩個試驗收集到相同的資料,但是卻有不一樣的結論。莫名其妙,p值竟然能懂你的意圖!
奈曼-皮爾遜檢驗
為了更好地了解p值,我們要了解一些統計學的曆史。統計顯著性檢驗有兩個主要分支。關于統計重要性檢驗的思想主要有兩個流派。第一個分支是費希爾(r.a.fisher)于1920年提出。費希爾将p值看作了解一個資料集是如何令人意想不到的一種簡便、非正式的方法,而不是假設檢驗的嚴格正式流程中的一個環節。隻有當p值與試驗者的先驗經驗以及專業知識結合時,它才能更好地解釋新觀測的資料。
在費希爾的著作問世以後,奈曼和皮爾遜(jerzy neyman 和egon pearson)嘗試解決了一些無法解決的問題。例如,在感冒藥物有效性檢驗中,隻要你能從比較中得到 p 值,你就可以嘗試通過均值、中位數或者其他任何統計量,來比較兩個對照組的水準。但是你如何知道哪種選擇是最好的?這個最好的選擇對假設檢驗又意味着什麼?
在科學研究中,控制假設檢驗的兩類錯誤是至關重要的:第一類錯誤(false positives),就是将無效說成有效(取僞);第二類錯誤(false negatives),則是将有效判斷成無效(棄真)。在一定程度上,第一類錯誤和第二類錯誤是一枚硬币的兩面。如果我們比較激進,則容易犯第一類錯誤;如果我們過于保守,第二類錯誤會主動找上門來。
奈曼和皮爾遜發現雖然不能同時完全消除兩類錯誤,但是可以給出一種規範的決策過程來確定犯第一類錯誤的可能性隻在預先确定的比率下發生。他們将這個比率稱為顯著性水準 α(false positives rate),試驗者可以依據他們的經驗和期望基礎上設定合适的α。舉例來說,如果我們先要設立10%的第一類錯誤率,就令α等于0.1。但是如果我們希望決策更加保守,那麼就可以将α設定為0.01或者更小。為了比較哪種檢驗過程是最好的,我們可以考察在給定α的條件下,哪一種檢驗過程犯第二類錯誤的比率是最低的。
實踐中應該怎麼做呢?在奈曼-皮爾遜體系下,我們定義一個原假設,即一個“無效”(效應為零)的假設,同時定義一個備擇假設,如“效應大于零”。然後建構一個檢驗去比較這兩個假設,并且決定在原假設正确時我們期望得到怎樣的結果。我們利用 p值來實施奈曼-皮爾遜檢驗程式,即如果p<α,則拒絕原假設。不像費希爾的檢驗過程,此方法沒有将注意力放在揭示任何一個特定的試驗證據的強度,而隻關心決定原假設是否被拒絕。p值的大小,除了“拒絕原假設”,無法用來比較試驗或得出其他任何結論。正如奈曼-皮爾遜所言。
我們傾向于認為隻要涉及一個特殊的假設,不存在建立在機率理論基礎上的檢驗能夠單獨提供關于這個假設正确或者錯誤的有價值的證據。
但是,我們可以從另一個角度審視檢驗的目的。我們不希望知道每個獨立假設的真假,但是可以探索引導我們關于他們行為的規則,接下來就要保證在長期的經曆中我們不會常常犯錯3。
雖然奈曼和皮爾遜的方法在概念上與費希爾的方法不同,但是實踐科學家常常将兩者合并4,5,6。奈曼和皮爾遜的方法就是用一個預先標明的p值門檻確定長期的第一類錯誤率獲得“統計顯著”。但是假定你進行一次試驗得到p值為0.032,若門檻為p<0.05,這個時候便是統計上顯著的。但是若門檻縮小成p<0.033,你的結果還是統計顯著的。是以說我的第一類錯誤率為3.2%是十分誘人的,實際上這是常見的一種誤解。
這種解釋存在問題。僅僅通過一次試驗不能得到第一類錯誤率。它是由檢驗過程決定的,而不是由一次試驗的結果得出的。是以當你用一個檢驗過程來獲得一個長期的第一類錯誤率α,不管結果是怎麼樣的,你都不能說每一次試驗都會有一個真實的 p 值和對應的第一類錯誤率。
建構置信區間
顯著性檢驗會得到廣泛關注,“統計顯著”這一詞語也成為流行詞典的一部分。尤其在生物與社會科學中,研究結果常常用 p值展現出來。但是 p 值不是評價證據權重的唯一方法。置信區間可以回答和 p 值相同的問題,并且它的優勢是提供了更多的資訊而且可以直接闡明。
一個置信區間包含一個點估計以及這個估計的不确定性。例如,一種新實驗藥物可以将感冒平均時間縮短為36h,并且對應的95%的置信區間為24~48h(置信區間是平均時間,每個患者感冒的時間有很大的差別)。如果我進行100次相同的藥品實驗,那麼将有95個置信區間包含我們感興趣的真實值。
置信區間可以将結論中的不确定性定量,而且比不能說明任何效應量的 p 值提供更多的資訊。如果想檢驗這個效應量是否顯著差別于零,可以建構一個 95%的置信區間來檢驗這個區間是否包含零。在這個過程中,我可以額外地知道我的估計有多麼精确。如果置信區間太寬,那麼我需要收集更多的資料。
例如,如果進行一項臨床試驗,我可以建構一個預示我的用藥量減少15%~25%的置信區間。這個效應是顯著的,因為這個區間不包含零,并且可以用我了解的疾病臨床知識來評價差别的重要性。當我們使用 p 值時,這一步是非常重要的——當還沒有在上下文進行評價時,就不要将統計結果吹噓為一項重大發現。若這一用量是無害的,則15%~25%的改進是不重要的。不過話說回來,對于像能夠引起人體自燃這樣的征兆,做出任何改進我可能都會激動。
如果你能以置信區間而不是p值表達你的研究結果,那麼你應該這樣做7。置信區間回避了大多數與p值有關的細微解釋,這使得結果更加清晰。那麼為什麼置信區間卻不是很流行呢?在試驗性的心理研究雜志中,97%的研究報告包含顯著性檢驗,但是隻有10%曾經報告置信區間,并且其中大多數沒有利用置信區間作為他們研究結果的支援證據,而是依賴顯著性檢驗8。甚至久負盛名的《自然》雜志不例外:89%的文章沒有任何置信區間和效應量來報告p值,這使得他們的研究結果不能在上下文中得到解釋9。一個雜志社的主編說道“p值就像蚊子”,它們無處不在,而且不管我們怎麼打,用什麼藥噴都無法驅逐它們10。
關于置信區間報告很少的原因可能是因為他們區間寬的令人尴尬11。另一個原因是論文同行評審的壓力太大,最好像其他學科那樣做統計,否則評審者會拒絕你的論文。或者可能是關于 p值的困惑掩蓋了置信區間的好處。或者是在統計課程中過度強調假設檢驗意味着大多數科學家不知道怎麼樣計算和使用置信區間。
有一段時間雜志主編試圖強制報告置信區間。kenneth rothman是20世紀80年代中期美國公共健康雜志的副主編,以強硬措辭的信件進行意見回複。
所有關于統計檢驗以及統計顯著性的推斷都應該從論文中删除。我要求在删除p值的同時也要删除關于統計顯著性的評論。如果你不贊成這一标準,你認為應該自由地進行辯論,或者你根本不理會這些而認為這是我的錯誤觀點,那麼請你在别處發表12。
在rothman作為副主編的3年任期内,那些僅僅報告p值的論文數量急劇下降。在他離職以後,顯著性檢驗複蘇,雖然下一任主編也鼓勵研究者要報告置信區間。但是盡管報告了置信區間,很少有研究者在論文中讨論它們或者運用它們得出結論,反而僅僅将它們作為顯著性檢驗12。
rothman還創辦了《流行病學》雜志,非常支援統計報告。早期,對顯著性檢驗熟悉的作者會在報告置信區間的同時報告p值,但是10年以後,這些作者的态度就發生了很大的變化,僅僅報告置信區間成為一種常見的實踐12。
也許那些有勇氣的雜志編輯可以以 rothman 為榜樣,并且在他們的領域中改變統計實踐。
[2] 輯(tautology):是指一些言論,在任何情況下都不可能是錯的。說得更嚴謹一點,套套邏輯不可能被想象為錯!舉一個例子,假若我說:“四足動物有四隻腳。”這怎可能會錯呢?句子内的後半部重述了前半部的意思,即使我們花很大工夫也不可能想象到它在怎樣的情況下會是錯的。在地球上、火星上它不會錯,在宇宙任何地方它也不會錯。這句話的一般性确實厲害,但内容究竟說了些什麼?其實什麼也沒有說!我們想破腦袋也知道是對的,但不知其内容(轉自百度百科,引自張五常《經濟解釋》神州版卷一第一章第三節《特殊理論與套套邏輯》)。
[3] 我使用二項分布計算出這個結果,在下節中,我還會使用不同的分布,如負二項分布。具體機率分布和計算細節不是本書關注的重點,我們更感興趣的是如何解釋_p_值,而不是如何計算_p_值。