郢書燕說:從死三文魚到因子動物園,噪聲是怎麼被讀成機制的
引言 · 郢人夜書,燕相讀之
郢人有遺燕相國書者,夜書,火不明,因謂持燭者曰"舉燭",雲而過書"舉燭"。舉燭,非書意也。燕相受書而說之,曰:"舉燭者,尚明也;尚明也者,舉賢而任之。"燕相白王,王大說,國以治。治則治矣,非書意也。
——《韓非子·外儲說左上》
這是中國最早的一則關於過擬合的寓言。
楚國郢都有人給燕國相國寫信。夜裏寫,燭火不夠亮,他就衝舉燭的僕人喊了一句"舉燭"——然後順手把這兩個字誤寫進了信裏。
燕相國收到信,讀到"舉燭",陷入沉思。他想通了:舉燭者,崇尚光明也;崇尚光明,就是要舉賢任能啊。他把這個解讀稟告燕王,燕王大悅,依此施政,燕國因此大治。
韓非在結尾下了六個字的判詞:治則治矣,非書意也。
治是真的治了。但那不是信的意思。
這則寓言之所以兩千三百年後仍然鋒利,是因爲它同時說清了三件事,而這三件事恰好是現代統計學最難處理的三個層次:
第一,信裏那兩個字確實是噪聲。它不是錯誤的信息,它根本不是信息——它是燭火不亮時的一次手滑。
第二,燕相國的解讀在邏輯上無懈可擊。"舉燭→尚明→舉賢"這條鏈條每一步都成立,你無法從解讀內部指出它錯在哪裏。
第三,也是最要命的,燕國確實大治了。如果它一開始就亂,沒有人會上當。
把這三件事翻譯成今天的語言:一個純噪聲的信號,被賦予了一套自洽的機制解釋,並且在樣本內取得了漂亮的表現。
這正是從功能磁共振成像到量化因子挖掘,整個現代實證科學最普遍的失效模式。本文要回答的問題是:
- 爲什麼當候選項足夠多時,出現一個"極其顯著"的結果不是奇蹟,而是可以精確計算的定理?一億隻猴子的冠軍, 統計量到底是多少?
- 爲什麼你明明只跑了一個分析,有效的檢驗次數卻遠大於一?你不知道自己的 ,這件事有多嚴重?
- 燕相國爲什麼問心無愧?爲什麼"我沒有作弊"這句辯護在數學上完全無效?
- 從 Bonferroni 到 Benjamini-Hochberg,統計學在 1995 年發生了一次什麼樣的哲學轉向?
- 學術界是怎麼用模算術、分佈形狀和字體,反向偵破一份被挑選過的數據的?
- 落到量化:三百多個因子的動物園裏, 這個門檻是怎麼來的?一個策略的夏普比率,究竟該打幾折?
一、數學的必然:冠軍猴子的 值是可以算出來的
1.1 入門版本:全族誤差率
先把最基礎的那層說清楚。
單次假設檢驗中,取顯著性水平 ,意味着即使被檢驗的指標完全是隨機噪聲,也有 的概率被誤判爲顯著。這是第一類錯誤,假陽性。
現在同時檢驗 個彼此獨立的隨機指標。至少出現一次假陽性的概率,稱爲全族誤差率(Family-Wise Error Rate, FWER):
其中 是假陽性的個數。當 很小時,這個式子有一個更直觀的近似:
代幾個數: 時是 ; 時是 ; 時是 ;到 ,也就是一億隻猴子,這個概率在任何有限精度下都等於 。
所以"一億隻猴子裏總有一隻能選出完美預測歷史的指標"——這句話在數學上不是修辭,是確定性事件。
但 FWER 只回答了"有沒有",它沒有回答更有用的那個問題:那隻冠軍猴子,到底能好到什麼程度?
1.2 鋒利版本:極值統計
這纔是真正該算的東西。
設 是 個獨立同分布的標準正態變量——把它們想成 個純噪聲策略各自的 統計量。記
我們要問的是 的分佈。
經典的 Fisher-Tippett-Gnedenko 極值定理給出:對正態分佈,經過適當的中心化與標度化之後, 收斂到 Gumbel 分佈。具體地,令
則
Gumbel 分佈的均值是 Euler-Mascheroni 常數 ,方差是 。於是
現在把一億代進去。,:
這兩個數值得盯着看一會兒。
第一個數:一億隻純噪聲猴子裏的冠軍,期望 統計量是 。作爲參照,粒子物理學宣佈"發現新粒子"的黃金標準是 。也就是說,一億次純隨機的嘗試,其冠軍在統計顯著性上超過了人類宣佈發現希格斯玻色子所要求的門檻。
第二個數更狠:標準差只有 。
這意味着 幾乎不隨機。一億隻噪聲猴子的冠軍 值,會以極高的概率落在 到 這個狹窄區間裏。它不是"運氣好碰上的",它是可以提前預報的。
爲什麼標準差這麼小
Gumbel 的尺度參數 隨 增大而縮小。搜索空間越大,冠軍的位置反而越確定。
物理直覺是:正態分佈的尾部衰減極快(),所以"最大值能站在哪裏"被尾部的陡峭度死死釘住。多一隻猴子幾乎不能把冠軍往右推,但一億隻猴子裏少了任何一隻,冠軍也幾乎不會往左退。
這是極值統計裏一個反直覺的事實:最極端的那個樣本,往往是整批樣本裏最可預測的。
1.3 增長得有多慢
把 對幾個量級的 列出來:
| 搜索次數 | (冠軍 值) |
|---|---|
從 到 ,搜索空間漲了一百萬倍,冠軍 值只從 漲到 ,連翻倍都不到。這是 這個形式的必然後果:它增長得極慢,但從不停下。
這個"慢"有兩面。
好的一面:搜索空間爆炸不會讓 值爆炸。你不會看到 的噪聲因子。
壞的一面要嚴重得多:既然 漲得這麼慢,那麼把顯著性門檻提高也就擋不住什麼。
把門檻從 提到 ,聽上去是把顯著性要求從 收緊到了 ,像是一次大手術。但從上表讀: 對應的 大約是 。也就是說, 這道門檻,只能擋住四百次量級的搜索。如果你的團隊一個季度跑了五千個回測,它形同虛設。
記住這個數字 。它會在第六節以一種令人不安的方式再次出現。
二、你不知道自己的
上一節所有的數學都建立在一個前提上:你知道 是多少。
現實中的困難幾乎全部來自於——你不知道。而且你通常嚴重低估它。
2.1 是乘出來的,不是加出來的
一個典型的量化研究流程:
回看窗口取 四選一;信號平滑用 三選一;股票池是 三選一;持倉加權是 三選一;再平衡頻率是 三選一。
研究員的主觀感受是"我做了一個策略,調了幾個參數"。數學上的 是 。查上表,即使這個策略毫無信號,它的冠軍配置期望 值也有 左右。
而這只是一個策略族。一年下來,一箇中型量化團隊的累計 輕易進入五位數。
2.2 分叉小徑的花園
比參數網格更隱蔽的,是 Andrew Gelman 與 Eric Loken 提出的分叉小徑的花園(The Garden of Forking Paths)。
他們的核心洞見極其重要,也極其容易被誤解:
即使你只跑了一個分析,只要你選擇這條分析路徑的依據來自於你看到的數據,你的有效 就已經大於一。
這句話值得慢讀一遍。
傳統的 p-hacking 圖景是:研究者跑了 50 個模型,挑了最好看的那個報告。這是主動的、可被指責的。
分叉小徑描述的是完全不同的場景:研究者誠實地只跑了一個模型。但他是在看了數據的散點圖之後,才決定"這裏明顯是非線性的,應該取對數";是在看到殘差之後,才決定"這三個點顯然是記錄錯誤,應該剔除";是在初步結果出來之後,才決定"這個效應在男性樣本裏更清晰,應該分性別討論"。
他從未同時跑過 50 個模型。但如果數據長成另一個樣子,他會走上另一條小徑。他的分析流程是數據的函數。
這在數學上意味着什麼?意味着 值的零分佈不再是 。 這個概率陳述描述的對象,從來不是手上這組數據,而是產生這個結論的整套流程。流程一旦依賴數據,概率陳述就失效了,哪怕流程只被執行了一次。
這是全文最容易被誤讀的一點
"我只跑了一次回測,所以不存在多重檢驗問題"——這是量化研究裏最常見的自我安慰,也是錯的。
判據不是"你執行了幾次",而是"如果數據不同,你會不會做不同的事"。
如果答案是"會"(而它幾乎永遠是"會"),那麼你的有效 就等於所有那些你本來可能走上的路徑的總數,無論你實際走了幾條。
2.3 薛定諤的樣本量:選擇性停止
還有一條路徑,它連"分叉"都算不上,因爲它在時間軸上展開。
按嚴格的統計規範,樣本量 必須在實驗開始前通過功效分析確定。現實中的操作往往是這樣的:
先測 20 隻小鼠,算一下 。研究者嘆氣:"差一點就顯著了,顯然是樣本量不夠導致統計功效不足,再加 5 隻。"加到第 24 隻,,立刻宣佈:"停!顯著了,再做就是浪費經費。"
這叫選擇性停止(Optional Stopping)。它不修改任何一個數據點,不剔除任何一個樣本,在道德上看起來完全清白。
它的數學後果是災難性的。Armitage、McPherson 與 Rowe 在 1969 年算過這筆賬:名義水平 下,
| 中途檢驗次數 | 實際假陽性率 |
|---|---|
最後一行不是筆誤。如果允許無限次地"再加幾個樣本看看",假陽性率收斂到 。
原因是隨機遊走的常返性:累積的檢驗統計量在零假設下是一個(近似)布朗運動,而一維布朗運動以概率 會觸及任何給定的水平。你只要肯一直加樣本,邊加邊看,遲早會撞線。
在量化裏,這條路徑的名字叫延長回測區間。"這個策略 2015 年以來表現一般,但如果從 2012 年開始看就很漂亮"——這是同一個數學錯誤換了一身衣服。
2.4 先開槍,後畫靶
最後一層是 HARKing(Hypothesizing After the Results are Known,結果已知後提出假設)。
論文最終呈現的行文邏輯通常是:先有一個精妙的理論預設,據此設計嚴密的實驗,最後數據完美驗證了假設。
現實往往完全相反。研究人員一口氣測了幾十種表型和上百個基因,絕大多數指標毫無變化,唯獨某個冷門指標在某種特定濃度下顯著上升。於是他回頭翻文獻,爲這個意外顯著的指標量身定製了一套"合情合理"的機理假說,把探索性的偶然發現包裝成胸有成竹的驗證性實驗。
Simmons、Nelson 與 Simonsohn 在 2011 年那篇著名的《False-Positive Psychology》裏做過一次量化:只需要把四種尋常的研究者自由度(額外收集樣本、剔除異常值、加入協變量、選擇性報告因變量)組合起來,就足以把一個完全不存在的效應的假陽性率推到 。
不需要任何一次造假。
這正是燕相國做的事。"舉燭"這兩個字先出現,解釋在後。而解釋一旦成立,就再也看不出它是後來補上的了。
三、燕相國爲什麼問心無愧
到這裏,一個自然的反應是:這些不都是學術不端嗎?
恰恰相反。真正的造假是可以被抓的,我們在第五節會看到抓造假有多容易。而本文討論的這套機制之所以難以根除,正是因爲參與其中的人絕大多數問心無愧,甚至覺得自己是科學嚴謹性的守護者。
3.1 只在不顯著時啓動的質控
在實驗室裏,沒有人會說"讓我們挑一個顯著的結果吧"。臺詞永遠是極度正義的專業術語:
"這批細胞培養箱昨晚溫度波動了 ,這幾隻對照組顯然受到了非特異性干擾,理應剔除。"
"生理代謝過程顯然不是線性的,取對數變換更符合真實的生物物理機制。"
"這三隻小鼠的數據離羣太嚴重,肯定是給藥時漏液了,保留它們纔是對科學的不嚴謹。"
每一句都可能是對的。真正的問題不在任何一句話本身,而在一個不對稱性:
這套質控流程,只在結果不顯著的時候啓動。
如果第一次計算就得到 ,沒有人會去查培養箱的溫度,沒有人會覺得離羣點需要處理,沒有人會懷疑對數變換是否更合適。所有這些"嚴謹性"的念頭,只在 的時候才被喚醒。
把它形式化。設可選的分析路徑爲 ,每條路徑給出一個 值 。研究者的實際行爲是一個停止規則:
也就是說,他持續搜索,直到第一次跨過顯著性門檻爲止。報告的 值是 。
這個 的分佈與 毫無關係。它是 個(可能相關的)隨機變量的首次穿越值,在零假設下它的期望遠小於 ,且以極高概率落在 的左側——這正是我們在第五節要用來抓人的那個特徵。
3.2 意圖不在公式裏
這裏有一個統計學上極其重要、但在日常討論中幾乎總被忽略的事實:
第一類錯誤率 的定義式裏,沒有"意圖"這一項。
。這個概率是對流程在重複抽樣下的頻率陳述。它不關心執行流程的人想什麼,是否真誠,是否有既得利益,是否在深夜爲自己的嚴謹而感動。
一個真誠的研究者,如果他的分析路徑依賴於數據,他的假陽性率和一個蓄意 p-hacking 的研究者完全一樣。
這就是爲什麼"我沒有作弊"作爲辯護在數學上完全無效。它辯護的是動機,而被質疑的是流程。兩者在概率論裏根本不發生關係。
疑鄰盜斧
《呂氏春秋·去宥》裏有一則更早的寓言:
人有亡鈇者,意其鄰之子。視其行步,竊鈇也;顏色,竊鈇也;言語,竊鈇也;動作態度無爲而不竊鈇也。俄而抇其谷而得其鈇,他日復見其鄰人之子,動作態度無似竊鈇者。
丟斧頭的人看鄰家孩子,走路像賊、臉色像賊、說話像賊。找到斧頭之後再看,哪兒都不像了。
孩子沒變。變的是觀察者手裏那個先驗。
這正是動機性推理(Motivated Reasoning)的古典表述——而它與惡意造假的區別在於,丟斧頭的人是真的看見了。他沒有撒謊。
3.3 量化研究裏的同款臺詞
把上面那三句實驗室臺詞翻譯成量化研究員的語言,毫無違和感:
"2020 年 3 月那兩週是流動性危機,屬於制度性異常,不應納入常規回測。"
"2008 年之後市場微觀結構發生了結構性斷裂,樣本從 2010 年開始纔有可比性。"
"這隻票當天有併購公告,屬於事件驅動,不該由我們的價量因子負責。"
同樣地,每一句都可能是對的。同樣地,問題在於——這些反思只在夏普比率不好看的時候發生。
我在〈樹欲靜而風不止〉裏討論過一個相鄰的現象:單位根檢驗對"價格是不是隨機遊走"這個問題的檢驗功效低得驚人,以至於在有限樣本裏,真實的均值迴歸和純粹的隨機遊走幾乎無法區分。那篇文章講的是數據本身不夠有力;這篇講的是即使數據有力,流程也會把它污染掉。兩種失效疊在一起,就是實證金融的日常。
四、兩種解藥:從"一次都不能錯"到"允許多少髒東西"
面對多重檢驗,統計學給出了兩代解藥。它們的分歧不在技術,而在哲學。
4.1 第一代:FWER 與 Bonferroni 的詛咒
由 Fisher、Neyman 與 Pearson 建立的經典體系,控制的目標是全族誤差率:
一次假陽性都不允許出現。 這是法庭式的無罪推定:寧可放過一千,不可錯殺一個。
最直接的實現是 Bonferroni 校正:把單次檢驗的門檻壓到 。
它的正確性來自 Boole 不等式(也叫 Bonferroni 不等式):
注意這個推導不需要任何獨立性假設。這是 Bonferroni 校正最大的優點,也是它極度保守的根源——它按最壞情況(所有檢驗完全不重疊)來定價。
如果確實獨立,Šidák 校正更銳利:門檻取 ,這是 的精確反解。但改進極其有限, 大時兩者幾乎重合。
在農田試驗時代,同時測三到五種化肥, 很小,Bonferroni 完美工作。但二十世紀末發生了一件事: 爆炸了。
- 基因芯片與 RNA-seq:
- 全基因組關聯分析(GWAS):
- 功能磁共振成像(fMRI): 個體素
當 、 時,Bonferroni 門檻是 。(這正是今天 GWAS 領域的行業標準閾值,它就是這麼算出來的。)
代價是第二類錯誤的全面崩潰:一個確實致病的基因,只要效應量不夠極端,就會被無情地扔掉。爲了保證"絕不犯一次錯",科學界把幾乎所有真實的發現一起抹殺了。
這就是所謂的龐弗羅尼詛咒:在高維時代,最嚴謹的方法變成了最沒用的方法。
4.2 第二代:FDR 的範式轉移
1995 年,兩位以色列統計學家 Yoav Benjamini 與 Yosef Hochberg 在《皇家統計學會學報 B 輯》上發表了一篇論文,提出了一個哲學上的轉向:
在海量探索性研究中,"一次錯誤都不犯"既不現實,也有害。我們應該允許犯錯,但嚴格控制在所有宣稱的發現中,假發現所佔的比例。
先把記號擺清楚。對 個假設做檢驗,真實情況與檢驗結論的交叉分類:
| 未拒絕 | 拒絕 (宣稱發現) | 合計 | |
|---|---|---|---|
| 爲真(實際無效應) | (假陽性) | ||
| 爲假(實際有效應) | (真發現) | ||
| 合計 |
定義錯誤發現比例(False Discovery Proportion):
錯誤發現率(False Discovery Rate)就是它的期望:
把 FDR 控制在 ,物理含義極其直白:如果我向世界宣佈發現了 100 個靶點基因,其中大約 95 個是真的,約 5 個是混進來的噪聲。
這在科研探索和工程落地中是完全可以接受的權衡。它把標準從法庭的無罪推定,換成了工廠的良品率。
4.3 BH 階梯與它的幾何
Benjamini 與 Hochberg 給出的算法(BH 階梯上升過程)優雅到幾乎不像是解決這麼大一個問題的:
第一步,排序。 把 個 值升序排列:
第二步,找分界點。 找到滿足下式的最大序號 :
第三步,判決。 拒絕序號 到 的全部原假設。若不存在這樣的 ,一個也不拒絕。
在獨立性(或更弱的正迴歸依賴 PRDS)條件下,可以證明:
這個算法最精巧的地方要用幾何來看。把 畫成散點,三種方法對應三條不同的判決線:
- 未校正的檢驗:一條高度恆爲 的水平線。
- Bonferroni:一條被壓到 的、幾乎貼着橫軸的水平線。
- BH:一條從原點出發、斜率爲 的射線。
從水平線到斜射線,這一步變化帶來了數據自適應性:
如果數據中存在大量強信號, 值會在左端急劇扎堆,散點低於射線的區域向右延伸很遠, 變得很大——算法自動對後排較弱的信號放寬容忍。
如果數據純粹是噪聲, 值在 上均勻分佈,散點大致沿着斜率爲 的對角線排列。由於 ,BH 的射線始終在這條對角線下方,散點幾乎無法穿過——算法自動收緊,一個都不放行。
判決門檻由數據自己決定。 這是 BH 算法數學上最漂亮的一筆,也是它與 Bonferroni 那條僵死的水平線之間最本質的差別。
4.4 BY 過程:任意依賴結構的代價只是一個對數
原始 BH 算法依賴 PRDS 條件。2001 年,Benjamini 與 Daniel Yekutieli 證明:在任意依賴結構下(包括極端負相關),只需把門檻除以一個調和數,
FDR 依然被嚴格控制。
這個修正因子值得算一下。調和數有經典漸近:
時,。
也就是說,爲"我對檢驗之間的依賴結構一無所知"這件事付出的代價,只是把門檻收緊 倍——而 Bonferroni 爲同一件事收緊了 倍。
一個對數因子,換掉一個線性因子。這是 FDR 框架相對於 FWER 框架在高維情形下的全部優勢,濃縮成一行。
五、如何反推一次"燕說":數據法證
前面四節都在講如何預防。這一節講一件更有趣的事:如果一篇論文已經發表了,我們能不能從它公開的數字裏,反推出它是不是被挑選過的?
答案是能,而且往往只需要小學算術。
這門手藝叫統計法證(Statistical Forensics),它的全部威力建立在一個人性事實上:
人類大腦極度不擅長模擬真正的隨機性,也算不清底層的數學約束。
操縱者能在宏觀上湊出漂亮的顯著性,卻必然在微觀的算術粒度、分佈形態與方差結構上留下無法自洽的指紋。
5.1 p-curve:分佈形狀不會撒謊
這是針對"挑選"而非"造假"最直接的武器,由 Simonsohn、Nelson 與 Simmons(學術打假團隊 Data Colada)提出。
數學基礎很簡單,但推論很強。
在零假設下, 值服從 。這是 值的定義決定的:,而任何連續隨機變量經自身分佈函數變換後都是均勻分佈。
在備擇假設下,情況完全不同。對於單調似然比族(正態、 分佈等都屬於), 值的密度函數是嚴格遞減的,而且效應越強、樣本量越大,密度越向 集中。
於是有了判據:
- 真效應存在 → 值分佈右偏(right-skewed),即 的研究數量應當壓倒性地多於 的數量。
- 效應不存在但被 p-hack 出來 → 研究者的停止規則 決定了報告值緊貼門檻左側,分佈在 處異常堆積,整條曲線呈左偏或平坦。
把一個研究領域全部已發表論文的 值彙總畫出來,曲線的形狀就把這個領域的底褲掀了。
實戰:權勢姿勢
2010 年,哈佛商學院的 Amy Cuddy 等人在《心理科學》發表論文,稱保持幾分鐘昂首挺胸的"高權力姿勢"(叉腰挺胸)就能降低皮質醇、提升睾酮,讓人更敢冒險。這個結論登上 TED 演講,播放量數千萬。
Data Colada 調取了整個"權勢姿勢"領域的 值並繪製 p-curve。結果:整條曲線在接近 處突兀翹起,是典型的假陽性分佈形態,沒有任何證據價值(No Evidential Value)。
在這個純粹由分佈形狀構成的證據面前,該論文的第一作者 Dana Carney 發表公開信反水,承認當年爲了發表做了大量 p-hacking 操作,並聲明"我不再相信權勢姿勢效應是真的"。
值得注意的是:這裏沒有任何人僞造數據。每一個實驗都真做了,每一個數字都是真測的。被抓住的是流程——正如第三節所說的那樣。
5.2 GRIM:除法能不能除盡
GRIM(Granularity-Related Inconsistency of Means,均值粒度不一致測試)由 Nicholas Brown 與 James Heathers 於 2016 年提出。它的原理是模算術,小學水平。
如果一組數據是 個受試者給出的離散整數評分(比如李克特 5 點或 7 點量表),那麼總和
必然是整數。因此報告的樣本均值 必須滿足
也就是說, 只能取 的整數倍。
舉例:,可能的均值只有 的倍數——、、……如果論文報告均值爲 ,那麼 ,在整數評分的前提下,這個數在數學上根本不可能存在。
這個檢驗的威力來自一個簡單的計數。當均值按慣例保留兩位小數時,區間內共有 種小數可能,而合法的只有 種(當 )。所以隨手編一個均值,不可能的概率是 。 時, 的編造值會當場露餡。
實戰:康奈爾的"飲食行爲學教父"
Brian Wansink 曾是康奈爾大學食品與品牌實驗室主任,以"無底湯碗實驗"(證明碗大導致喫得多)和喫披薩心理學名噪一時,甚至參與起草美國飲食指南。
2016 年底,他在自己的博客上炫耀團隊如何從一組"毫無顯著結果"的披薩自助餐數據裏,通過反覆切分變量硬榨出 5 篇論文。這篇博客等於自己交代了流程。
數據法證研究者隨即對他已發表的論文做普查——只用 GRIM 這一個工具,就發現其中充斥着大面積的"不可能均值"和自由度矛盾。2018 年,康奈爾大學認定其存在學術不端,Wansink 辭職,累計撤稿超過 18 篇。
5.3 Carlisle 方法:編造的隨機性太整齊
英國麻醉學家 John Carlisle 想到了一個更狠的角度:審查隨機對照試驗的基線數據。
在真正的雙盲隨機分組中,實驗組與對照組在受試前的人口統計學特徵(年齡、身高、體重、基礎血壓)應當服從真實的隨機擾動——兩組會有差異,只是差異不顯著。
但造假者爲了"證明"兩組匹配良好,會本能地把各組均值和標準差編得過於平衡。Carlisle 把一項研究的所有基線變量的檢驗統計量合併,計算這組數據在真實隨機抽樣下同時出現的聯合概率。
實戰:183 篇撤稿
日本麻醉學家藤井孝隆在 1991 至 2011 年間發表了數百篇關於術後止吐藥療效的論文。Carlisle 調取其中 168 篇涉及隨機試驗的論文,對全部基線指標做蒙特卡洛模擬檢驗。
結果:這些論文中多組患者的體重、年齡分佈相似度高得離譜,其在自然隨機抽樣下出現的聯合概率小於 。
調查委員會隨後確認其長達二十年的臨牀數據幾乎全部是在辦公室裏編的。最終 183 篇論文被撤稿,至今是單人撤稿量的世界紀錄。
5.4 死三文魚:把 Bonferroni 的必要性演示給全世界看
2009 年,神經科學家 Craig Bennett 團隊做了一件事:把一條已經死亡的大西洋三文魚放進功能磁共振成像儀,向它展示人類在社交場景中的照片,並要求它"判斷照片中人物的情緒"。
fMRI 把大腦切分爲約 個體素,每個體素獨立做一次檢驗。在 的單次門檻下:
期望有 個體素純粹因爲機器熱噪聲而"顯著激活"。
實測結果:死魚的腦部亮起了數個"極其顯著"的神經激活區。
這條魚以最諷刺的方式向全科學界證明:只要測試的變量足夠多,純粹的隨機噪聲也能僞造出"死魚具有共情能力"的假象。該研究直接迫使頂級神經科學期刊強制要求對成像數據做多重校正。它拿了 2012 年的搞笑諾貝爾獎(Ig Nobel Prize)。
5.5 RANDBETWEEN 與兩種字體
最後一個案例,是本文的所有線索最鋒利的一次交匯。
2012 年,《美國科學院院刊》(PNAS)發表了一篇里程碑式論文,作者之一是行爲經濟學暢銷書《怪誕行爲學》的作者 Dan Ariely。結論是:如果讓車主在填寫車險里程申報表時在表格最上方先簽字承諾誠實,他們申報的里程數會比在最下方簽字時多出數千英里——意即,先簽字減少了作弊。
2021 年,Data Colada 複覈了該論文公開的原始數據:
第一,分佈形態不對。 真實的汽車年行駛里程必然是長尾的——大部分集中在一兩萬英里,少數極高。而該數據集從 到 英里的頻數呈現出一條近乎完美的水平矩形。只有一種東西長這樣:在 Excel 裏運行 =RANDBETWEEN(0, 50000)。
第二,字體不對。 數據表格中有一半行使用 Calibri 字體,另一半使用 Cambria 字體,且存在大量成對出現的整數差值匹配——這是複製粘貼後批量改數留下的痕跡。
論文被撤稿。
這個案例的黑色幽默在於它的自指
一篇論證"如何通過簽字讓人變得誠實"的頂刊論文,其數據完全是編的。
更值得玩味的是造假手段的粗糙:外行總以爲學術造假是隱蔽精密的智商博弈,現實中絕大多數翻車現場,純粹是因爲人類大腦對"真正的隨機性"一無所知。
騙子爲了讓數據"看起來真實",本能地會去撫平波動、消除離羣點、把均值編得四平八穩。而真隨機恰恰充滿結塊、尖峯和不合理的巧合。
於是精心構築的宏大理論,最後不是被什麼高深的對照實驗推翻,而是被"除法能不能除盡"和"字體不一樣"這種小學生級別的破綻直接掀了底褲。
這一節的五個案例裏,只有後三個是造假。前兩個(權勢姿勢、Wansink 的大部分論文)是挑選——每一個數據點都是真的。
而挑選比造假難對付得多。造假有物證:不可能的均值、錯誤的字體、均勻的分佈。挑選沒有物證,它唯一的痕跡是分佈的形狀,而且必須彙總整個領域才看得出來。
單篇論文是看不出燕說的。因爲在單篇論文裏,燕說和真理長得一模一樣。
六、量化金融的版本:因子動物園與夏普比率的折價
現在把前五節的所有東西落到一個具體的標的上。
金融市場爲多重檢驗提供了人類歷史上最理想的溫牀:數據是公開的、免費的、高頻的,收益的信噪比極低,而獎勵極高。全世界成千上萬個量化團隊在同一組歷史價格上各自測試不同的指標——這本質上就是一個分佈式的"一億隻猴子"網絡,只不過每隻猴子都以爲自己是唯一在敲鍵盤的那隻。
6.1 是怎麼來的
2016 年,Campbell Harvey、Yan Liu 與 Heqing Zhu 發表了《…and the Cross-Section of Expected Returns》,系統清點了金融學術界公開發表過的超額收益因子。
他們數出了三百多個。這就是所謂的因子動物園(Factor Zoo)。
他們的論證不是靠直覺,而是把本文第四節的工具直接搬了過來:對這三百多個因子的 統計量做多重檢驗校正,分別用 Bonferroni、BH 和 BY 三種方法。三條路徑給出了大致一致的結論:
傳統金融學要求的 在海量挖掘面前完全失效。真正的門檻應當提高到 。
從 到 ,是把顯著性要求從 收緊到 。
現在請回到第一節末尾那張極值統計表:
而 Harvey、Liu 與 Zhu 清點出的因子數量,是三百多個。
兩條完全獨立的推理路徑——一條走多重檢驗校正,一條走 Gumbel 極值分佈——收斂到了同一個數。 這不是巧合,它們本來就在描述同一件事:把門檻設在"純噪聲情形下冠軍的期望位置"上,恰好就是讓期望假發現數降到 附近。
但這個漂亮的吻合,同時也暴露了 的根本侷限。
它校正的 是"已發表的因子數"。那些被測試過、不顯著、因此從未被寫成論文的因子有多少?沒有人知道。發表偏倚保證了我們永遠只能看到分子,看不到分母。
真實的 是三百多,還是三十萬?如果是後者,查表可知門檻應該是 。
6.2 Deflated Sharpe Ratio:給夏普比率打折
Bailey 與 López de Prado 在 2014 年提出了一個更直接的工具:既然多重檢驗會系統性地抬高觀測到的最優表現,那就把這個抬高量算出來,從夏普比率裏減掉。
第一步:算出零信號基準線。
假設你做了 次獨立的回測試驗,這些試驗的夏普比率在零信號假設下服從 ,其中 是試驗之間夏普比率的方差。那麼 次試驗中最大夏普的期望,由第一節的 Gumbel 逼近給出:
其中 是 Euler-Mascheroni 常數, 是標準正態分位函數。
這個 的含義非常具體:它是你在完全沒有任何信號的情況下,本來就應該看到的那個夏普比率。 它是基準線,不是成績。
代幾個數。取 ——這是一個相當常見的水平:一批回測的年化夏普散落在 附近,標準差半個單位。
| 回測次數 | 零信號下的期望最大夏普 |
|---|---|
跑了一千次回測,挑出一個年化夏普 的策略。
大多數研究員看到 會相當興奮——這是可以拿去路演的數字。而上表說的是:在完全沒有信號的情況下,它本來就該長這樣。 你的成績恰好等於噪聲的基準線,超額貢獻爲零。
第二步:與觀測值做檢驗。
光有基準線不夠,還要知道觀測到的 本身有多大的不確定性。夏普比率的估計量標準誤不是簡單的 ——收益分佈的偏度和峯度會顯著改變它。Lo(2002)與 Mertens(2002)給出的修正式是:
其中 是收益序列的偏度, 是峯度, 是觀測期數。
兩步合起來,折價夏普比率(Deflated Sharpe Ratio)就是:
讀法:DSR 是"這個策略的真實夏普比率大於零"的概率。 纔算通過。
負偏度策略的夏普最不可信
盯住分母裏的兩項:
這一項說明,負偏度會放大標準誤。賣期權、carry trade、做空波動率——這類"平時穩定賺小錢、偶爾虧一大筆"的策略,偏度顯著爲負。
這一項說明,尖峯厚尾同樣放大標準誤,而且是對 的平方起作用——夏普越高,這一項的懲罰越重。
合起來是一句對量化從業者相當不友好的話:回測裏夏普最漂亮的那類策略,恰恰是它們的夏普最不可信的那類。
因爲負偏加尖峯這個組合,正是"把尾部風險藏在樣本外"的收益特徵。關於這類收益結構的不對稱性,我在〈只取一瓢〉與〈空穴來風〉裏分別從對沖和偏斜的角度討論過。
6.3 DSR 的阿喀琉斯之踵
DSR 有一個被低估的優點:公式裏的 是可測的。你不需要知道全世界跑了多少回測,只需要拿自己那批回測的夏普比率算個樣本標準差。
但它有一個致命的依賴: 必須由你自己誠實申報。
而這恰恰是第二節和第三節的全部內容。你不知道自己的 ,因爲參數網格是乘出來的;你還會系統性地低估它,因爲分叉小徑上那些"本來可能走"的路徑不在你的記憶裏。而 一旦報小, 就壓低了,DSR 就虛高了。
於是這個工具形成了一個閉環:它能把多重檢驗的代價算得很精確,前提是你先誠實地面對多重檢驗。
這不是技術問題。這是第七節的問題。
6.4 樣本外不是免費的
最後說一個幾乎所有人都在用、但幾乎所有人都用錯了的解藥。
標準做法是把數據切成兩半:樣本內開發,樣本外驗證。邏輯無懈可擊——樣本外的數據從未參與挖掘,所以它上面的表現是乾淨的。
第一次確實如此。
問題出在第二次。策略在樣本外失效了,研究員回去改參數,再測一次。又失效了,再改,再測。
測到第三次的時候,樣本外已經變成樣本內了。 因爲這時候的策略選擇,已經是樣本外表現的函數了。第二節那條判據在這裏同樣成立:判據不是"這批數據參與了幾次擬合",而是"如果這批數據長得不同,你會不會做不同的事"。
金融時間序列還有一層額外的麻煩。如果標籤是重疊的(比如用未來三日收益做標籤),訓練集末尾與測試集開頭在信息上是連通的,簡單的 K 折交叉驗證會直接泄漏。López de Prado 提出的 Purged K-Fold 與組合淨化交叉驗證(CPCV),通過剔除重疊區(purging)與設置禁運期(embargo)來堵這個洞。
但必須說清楚:這些方法解決的是信息泄漏,不是多重檢驗。
在一個淨化得完美無缺的 CPCV 框架裏試一千個策略,你的 依然是一千,冠軍的期望夏普依然是 。泄漏和過擬合是兩種病,CPCV 治的是前一種。
七、制度性解藥:把解釋權交出去
如果問題的根源是"分析流程依賴於看到的數據",那麼所有真正有效的解藥都只有一種共同形式:在看到數據之前,把決定權交出去。
這不是數學問題,是制度設計問題。現代科學在過去二十年裏立起了三道閘門。
7.1 預註冊:把 鎖死爲 1
臨牀試驗的法定紅線。 在 FDA 監管的藥物試驗中,所有數據收集前必須在 ClinicalTrials.gov 備案,並在數據揭盲前鎖定一份不可篡改的統計分析計劃(Statistical Analysis Plan, SAP)。SAP 細緻到必須寫明:用什麼模型、缺失值如何插補、離羣點的判定標準、主要終點與次要終點分別是什麼。
任何事後更改模型的行爲,在藥審中會被一票否決,或者結果只能被降級標註爲"探索性發現"。
它在數學上做的事非常乾淨:把有效 強制鎖定爲 。 分析路徑一旦在看到數據之前就被凍結,分叉小徑的花園就不存在了, 值重新變回那個我們熟悉的、零假設下服從 的東西。
學術界的註冊報告(Registered Reports)。 越來越多期刊推行這種出版模式:研究者在做實驗前提交"假設 + 設計 + 預定的分析代碼",評審只審方案。方案嚴謹就發放原則性錄用(In-Principle Acceptance)。此後無論最終 值是 還是 ,期刊都必須發表。
這一刀砍掉的是整條因果鏈的源頭:既然陰性結果也保證發表,研究者就再沒有動機去微調模型。
量化版本:研究日誌。 把每一次回測——包括失敗的、中途放棄的、"只是試試看"的——寫進一份帶時間戳、不可回溯修改的日誌。
這件事的全部價值,就是讓你知道自己的 。而知道了 ,6.2 節那個公式纔有意義。
7.2 盲態分析:從物理上切斷反饋
這個手段源於高能物理,近年正在滲透進演化生物學與精準醫學。
做法是:拿到原始數據後,由第三方獨立程序對數據注入掩碼——在真實數值上加一個未知的平移常數,或者把組別標籤打亂。分析人員面對的是帶僞裝的數據,在這種狀態下開發、比較並敲定最終的分析流程與質控標準。
當且僅當整套代碼被完全寫死、封存之後,第三方纔揭盲,運行代碼輸出最終結果。
它比預註冊更徹底:預註冊靠承諾約束,盲態分析靠物理隔離。它從機制上杜絕了"目測中間結果再微調手法"的可能,因爲中間結果是假的。
量化版本同樣可行:在合成數據、或加了未知偏移的收益序列上開發策略框架,框架定稿後才接真實數據。
7.3 規範曲線:不選了,全都跑一遍
前兩道閘門都要求你事先做對。如果數據已經收集完畢、無法重做實驗呢?
Simonsohn 等人提出的多宇宙分析(Multiverse Analysis)與規範曲線分析(Specification Curve Analysis)給出了第三條路:與其爭論哪種清洗、變換和模型是"唯一正確"的,不如把所有理論上講得通的路徑全部執行一遍,然後看結論在所有平行宇宙中的整體分佈形態。
流程分三步:
一、定義決策網格。 明確列出所有有理論依據的選項。比如離羣點處理 種、變量變換 種、協變量組合 種、擬合算法 種,共 個平行宇宙。
二、批量並行擬合。 遍歷所有組合,記錄每個宇宙的效應量 、標準誤與 值。
三、聯合推斷。 關鍵在這一步——不對單個宇宙做檢驗,而是把因變量標籤隨機打亂,生成"無效應"的原假設多宇宙,用置換檢驗判斷實際觀測到的這條規範曲線(在"顯著宇宙佔比"或"中位數效應量"這類統計量上)是否顯著偏離純噪聲分佈。
讀圖邏輯:雙面板。
標準的規範曲線圖由嚴格上下垂直對齊的兩個面板組成:
上半區(曲線面板):橫軸是模型序號,按估計出的效應量升序排列;縱軸是效應量本身。每個點帶 置信區間的誤差棒,虛線標出零效應參考線,顯著與不顯著用顏色區分。
下半區(決策矩陣):縱軸列出所有可選的具體決策項,橫軸與上半區逐列一一對應。在啓用的選項上打點。每一豎列的打點組合,就是上方那個估計值的完整來歷。
判別方法:
| 視覺特徵 | 穩健的真實效應 | 被挑選出的脆弱效應 |
|---|---|---|
| 曲線形態 | 絕大部分平穩運行在零線同一側,中位數明顯偏離零 | 在零線兩側大幅擺動,多數區間橫跨零 |
| 顯著點分佈 | 絕大多數散點顯著 | 僅在最左端或最右端翹起極少數 |
| 下半區矩陣 | 顯著點在各決策項上均勻散佈 | 顯著點高度聚集在某一兩個特定選項下 |
最後那一行是全圖的精華。如果所有顯著的宇宙都必須同時滿足"用 CLR 變換"且"控制某個特定協變量",一換成別的方法效應立刻歸零——那麼被發現的不是生理機制,而是某個特定數學變換的數值僞影。
一個微生物組的例子。 某研究想知道雙歧桿菌屬的相對丰度是否顯著降低小鼠血清 IL-6 水平。多宇宙是:序列處理 種(OTU 聚類 vs. DADA2 的 ASV)、歸一化 種(抽平 / TSS / CLR)、協變量 種方案、統計模型 種(DESeq2 / ANCOM-BC / OLS),共 個宇宙。
傳統論文會這樣寫:採用"DADA2 + CLR + 全協變量 + ANCOM-BC",得到 ,,結論是該菌屬對炎症因子有顯著抑制作用。
規範曲線揭示的卻是: 個宇宙裏只有 個 (佔比 ,接近純隨機水平 );其餘 個的置信區間全部跨零,中位數效應量只有 ;而那 個顯著的宇宙全部依賴同一種組合——必須做 CLR 變換,且必須控制特定協變量。
量化版本是現成的。 把因子構造的所有合理選擇全部展開:等權還是市值加權、月頻還是周頻再平衡、剔不剔微盤股、做不做行業中性、用不用滯後一期避免前視。跑完所有組合,畫一條規範曲線。
如果你的因子只在其中一兩個宇宙裏顯著——那不是因子,那是燕說。
7.4 爲什麼這些解藥大多沒被喫下去
必須誠實地說完最後這一段。
上面三道閘門在理論上是完美的,在現實中卻主要只存在於監管極嚴的晚期臨牀試驗,或少數有心自律的課題組裏。在基礎生物學、神經科學、心理學乃至經濟學的廣大實證研究中,"挑選"依然是維持學術生產力運轉的隱性常態。
原因不複雜,是激勵結構。
發表偏倚。 頂級期刊幾乎只接受"反直覺的、突破性的、顯著爲正"的故事。沒有哪家期刊會發表一篇題爲《經過三年實驗,我們發現該分子對細胞凋亡沒有任何影響》的論文。
沉沒成本的威逼。 一個博士生花了三年和數十萬美元經費,如果最終算出 ,意味着論文發不出去、學位拿不到、基金無法結題。在這種壓力下,"正當調整"幾乎是必然發生的。
同行評審的系統性無能。 審稿人只看排版好的 PDF。他們看不到實驗記錄本,看不到被扔掉的對照組數據,更看不到研究者私下跑過的另外 個分析腳本。而復現別人的實驗既無經費支持也不算工作量,沒有人有精力去重做幾個月的溼實驗。
後果是可以被量化的。製藥公司安進(Amgen)的科學家曾嘗試復現 篇被奉爲里程碑的腫瘤基礎研究論文,成功的只有 篇,。拜耳(Bayer)做過類似的內部驗證,在評估的 個潛在靶點項目中,能穩定復現的學術成果不到 。
工業界研發人員因此有一條公認的潛規則:絕不能完全相信學術界的公開論文,推進管線前必須在自己實驗室重新盲測。
這條潛規則在量化行業有一個一模一樣的翻版:不要相信任何一篇聲稱發現了新 Alpha 因子的論文,也不要相信任何一份夏普比率漂亮的回測報告——包括你自己昨天跑出來的那一份。
結語 · 治則治矣,非書意也
回到郢人那封信。
韓非這則寓言最精妙的地方,不在於譏諷燕相國愚蠢——恰恰相反,燕相國是個聰明人,他的解讀鏈條完整、優美,完全可以寫成一篇論文。寓言真正的殺傷力在最後六個字:治則治矣,非書意也。
燕國是真的大治了。
這纔是全文所有內容裏最難處理的那一層。如果一個過擬合選出來的因子上線就虧錢,沒有人會上當,這個問題早就自行消失了。真正的困難在於,它常常先賺一段——足夠長到讓你爲它寫好機制解釋,足夠長到讓你敢加槓桿,然後纔在某一天毫無徵兆地歸零。
而"舉燭"這兩個字之所以能被讀出"舉賢而任之",不是因爲燕相國蠢。是因爲這兩個字本身承載不了任何信息,所以它能承載任何解釋。
這是噪聲的根本性質:它的問題不是它說了錯的話,而是它什麼都沒說。於是留下的那片空白,被我們自己想說的話填滿了。搜索空間越大,可供填充的空白越多;解釋能力越強,填得越快、也越像真的。
一億隻猴子在鍵盤上亂敲,其中一隻碰巧打出了"To be or not to be"。整個學術界迅速給這隻猴子套上燕尾服,請它登上領獎臺,而猴子極其莊重地在論文裏闡述自己當初創作這句詩時的文學構思與哲學思考。
沒有人想當騙子。大家只是都在維護一場誰都不願戳破的體面儀式。
所以本文的全部內容,其實可以壓縮成一個問題——在你動筆爲一個漂亮的結果寫下機制解釋之前,必須先回答它:
你試了多少次?
如果答不上來,那麼無論那個 值多小、夏普比率多漂亮、機制講得多順——
治則治矣,非書意也。