選擇偏誤與多重測試:為什麼回測掃得越多、越可能是假訊號

掃過 1000 組參數與變體,就算底層完全沒有可交易的訊號,你也幾乎一定會撈到一支 t 值大約 3.2、看起來「統計顯著」的策略。這不是壞運氣,是純機率的必然。

掃過 1000 組參數與變體,就算底層完全沒有可交易的訊號,你也幾乎一定會撈到一支 t 值大約 3.2、看起來「統計顯著」的策略。這不是壞運氣,是純機率的必然。

多數人把回測失敗歸咎於「參數調太多」或「資料不夠」,這兩個說法都只碰到皮。真正讓大量策略在實盤原形畢露的,是一組更底層的統計現象:多重測試(multiple testing)製造出膨脹的機率,而選擇偏誤(selection bias)負責把那個被膨脹出來的雜訊,親手挑出來、命名成 alpha。這兩件事是同一枚硬幣的兩面,也是回測之所以會系統性說謊的數學根源。

這篇文章拆四件事:多重測試為什麼在數學上必然生出假訊號、選擇偏誤潛入量化回測的六個入口、對應的校正工具各自管什麼、以及為什麼加密市場是這個問題的重災區。看完你會有一套判斷「這個回測可不可信」的濾網,而它的核心不是看績效多漂亮,是看背後試了幾次、怎麼選的。

如果你還沒建立完整的驗證流程,建議先讀量化交易系統的建構框架那篇,本文聚焦在其中最容易自欺的一環。

先把兩個名詞分乾淨:機制與動作

多重測試和選擇偏誤常被混用,但它們指的是兩件不同的事,分清楚才能對症。

多重測試是統計事實:當你同時檢定很多個假設,「至少有一個純靠運氣達到顯著」的機率會隨假設數量快速上升。你只丟一枚硬幣連續五次正面,算稀奇;一萬個人各丟五次,出現幾百個「連五正」完全不稀奇。回測掃參數,就是後者。

選擇偏誤是你接下來做的動作:你從一大堆帶雜訊的結果裡,挑出表現最好的那個,寫進報告。從 N 個帶雜訊的估計值取最大值,這個最大值天生就高於任何一支策略的真實水準,即使 N 支全部是雜訊。你以為自己在「篩出最強的策略」,其實是在「篩出運氣最好的雜訊」。

一句話收攏:多重測試是那個把機率灌大的機制,選擇偏誤是那個把灌大的機率變現成一支具體策略的動作。前者是環境,後者是行為。兩者合在一起,回測就從「檢驗假設的工具」變成「製造假設的機器」。

為什麼「試很多次」在數學上必然生出假訊號

給這件事一個精確的量級感。假設市場上完全沒有訊號,每一支策略的真實超額報酬都是零,回測績效純粹是雜訊。你試的每一支策略,它的 t 值就是一個標準常態的隨機抽樣。問題是:你試 N 支,只留最好那支,這個「最好」會落在哪裡?

極值理論給了答案。N 個標準常態變數的期望最大值,大約隨 √(2·ln N) 成長,也就是試的次數越多,雜訊能撈到的「最好成績」越高,而且可以精確算出來:

嘗試次數 N 純雜訊的期望最大 t 值 對照
10 ≈ 1.54 還沒到 t>2
100 ≈ 2.51 越過傳統的 t>2 顯著門檻
1000 ≈ 3.24 越過 Harvey-Liu-Zhu 主張的 t>3
10000 ≈ 3.85 一個 optimizer 跑一晚就到

讀法很殘酷。試到 100 次,雜訊的期望最大 t 值就跨過學界用了幾十年的 t>2 門檻;試到 1000 次,連提高後的 t>3 都頂穿。而 1000 次是什麼概念?一個 50 個指標乘 20 個閾值的雙層掃描就到了,多數人隨手一個網格搜尋遠超過這個量。

換個角度看更直白。如果你用 α=0.05 的標準去檢定 1000 支純雜訊策略,期望會有大約 50 支「達到顯著」。你如果只把那 50 支裡最亮的一支拿出來寫報告,報告上的 p 值完全是騙人的,因為它沒有把「我是從 1000 支裡挑的」這件事算進去。

把 t 值翻回 Sharpe 也是同一件事。年化 Sharpe 的 t 值大約是 Sharpe 乘以 √(回測年數)。四年日線資料、試 1000 次,雜訊的期望最大 t 值 3.24 對應的年化 Sharpe 大約是 1.6。這就是為什麼一支「回測 Sharpe 1.5」的策略,在缺少「試了幾次」這個數字時,根本無法判斷它是訊號還是雜訊的殘渣。這條專門校正 Sharpe 的路徑,Deflated Sharpe Ratio 那篇有完整的公式與實算。

選擇偏誤潛入回測的六個入口

多數人以為選擇偏誤只有一種型態:「試了很多組參數,只報最好那組」。這是最明顯的一個入口,但遠遠不是唯一。偏誤可以從至少六個地方滲進來,其中幾個隱蔽到你根本不覺得自己在「選」。

入口一,參數與超參數搜尋。 最經典的一種。網格掃描的每一格都是一次 trial,包括你看一眼績效就丟掉的。真正該計數的是掃過的格數,不是掃描的次數。

入口二,標的宇宙選擇與存活者偏誤 這個在加密市場特別致命。你拿「現在的前一百大幣」回測一支輪動策略,回測期卻是三年前開始,這裡藏了一個隱形的選擇:三年前的前一百大裡,有一批已經歸零、下市、被交易所摘牌了,它們不在你今天的清單裡。你等於只在「事後已知會活下來的贏家」身上做回測,績效當然漂亮。LUNA、FTT 那一輪的教訓都被你的資料悄悄抹掉了。這是存活者偏誤,本質上是一種你沒察覺的選擇。要處理它,資料層必須保留當時真實存在、含已下市標的的 point-in-time 宇宙,這部分屬於資料層的紀律

入口三,特徵與因子挖掘。 你試了 40 個技術指標、20 個鏈上指標、10 個資金費率變體,最後留下最顯著的三個。這 70 次比較全都要算進多重檢定,但報告上往往只呈現勝出的三個,彷彿它們是唯一被考慮過的。

入口四,樣本期間挑選。 「這支策略在 2023 到 2024 表現亮眼」,如果這段期間是你事後挑的、剛好是策略最順的那段,這就是對時間軸的選擇偏誤。誠實的做法是先鎖定全樣本,不能看完各段績效再決定「主要展示哪一段」。

入口五,訊號家族比較。 你寫了五個策略變體,各自帶參數網格,最後挑整體最強的那支寫白皮書,報告上的檢定只針對這一支。但你的搜尋空間是五支乘各自的網格,選擇發生在整個空間,懲罰就必須施加在整個空間,不能只檢定贏家。

入口六,社群與發表層的選擇。 這個最少人談,卻可能最普遍。你在論壇上看到一支「回測翻十倍」的策略,把它抄來用。但你看到它,正是因為它是倖存者:一百個人各自 data mining、只有運氣最好的那個貼出來爆紅,另外九十九個賠錢的沒有發文。你以為你在複製一個經過驗證的 edge,其實你是在承接一次你看不見的大規模選擇偏誤的末端。學術界也一樣,Harvey、Liu 與 Zhu 在 …and the Cross-Section of Expected Returns 裡盤點了發表過的數百個報酬預測因子,主張在如此密集的資料探勘之後,新因子的顯著門檻應該從 t>2 提高到 t>3,因為期刊只會發表「顯著」的結果,抽屜裡那些不顯著的你永遠看不到。

六個入口有一個共通點:偏誤都是在你「碰資料、做選擇」的當下烤進去的,事後任何統計檢定都測不出來。這也是為什麼補救的紀律必須前置,而不是驗證階段才補。

二階效應:最漂亮的回測,系統性地最不可信

把上面的機制往前推一步,會得到一個違反直覺、卻極其重要的結論:在一組廣泛搜尋出來的策略裡,回測績效最好的那一支,往往就是過擬合最嚴重的那一支。

原因是這樣。一支策略的回測績效,可以拆成「真實 edge」加「雜訊運氣」兩塊。當你從幾千支裡挑最大值,你不只在挑真實 edge 高的,你同時在挑雜訊運氣好的,而且因為雜訊的變異通常遠大於真實 edge 的差異,「排名第一」這件事更多是被運氣決定的,不是被實力。所以你選出的冠軍,它的績效裡雜訊佔比特別高,樣本外自然掉得特別狠。你選擇的動作本身,就在系統性地放大你最不想要的那個成分。

Bailey、Borwein、López de Prado 與 Zhu 在 Pseudo-Mathematics and Financial Charlatanism 這篇標題毫不客氣的論文裡把話講死了:在夠大的參數空間裡搜尋,幾乎保證能生出一條漂亮的回測曲線,即使底層完全沒有可交易訊號;而由於絕大多數研究者從不揭露自己試了幾次,投資人根本無從評估一個回測被過擬合到什麼程度。他們的用詞是,不揭露試驗次數的回測,在數學上等同於一種詐術。

第二個二階效應是不可審計性。試驗次數是在搜尋當下累積的,搜尋一結束,你就再也無法誠實重建這個數字,因為人會系統性地少記自己丟掉的東西。這代表選擇偏誤是一種一旦發生就無法逆向修復的污染。你不能等策略跑完再回頭「校正一下」,唯一有效的做法是從第一次碰資料之前,就把計數器打開。

校正工具的家族:哪一種對付哪一種

好消息是,統計學為多重測試準備了一整套校正工具。壞消息是它們各管一塊,用錯了等於沒用。把它們分成四類,對應到不同的使用情境。

第一類,FWER 控制(族系錯誤率)。 代表是 Bonferroni 與 Holm 校正。它們控制的是「至少出現一個假陽性」的機率:要保證一千次檢定裡連一個誤判都不能有,Bonferroni 把單次門檻壓成 α 除以 N。1000 次檢定、族系 α=0.05,單次門檻就變成 0.00005,對應 t 值大約 4.0。這套很嚴,適合你只想挑出極少數、幾乎不容錯的訊號時使用。缺點是次數一多會嚴到幾乎什麼都選不出來。

第二類,FDR 控制(偽發現率)。 代表是 Benjamini-Hochberg 程序。它不要求「一個都不能錯」,而是控制「你挑出來的這批裡,假陽性佔的比例」,例如容許最多 10% 是誤判。當你在掃描大量因子、預期裡面真的有一批有效訊號時,FDR 比 Bonferroni 合理得多,因為它不會因為過度保守而把真訊號一起殺掉。因子研究、鏈上指標批量篩選,用 FDR 通常比 FWER 貼近實務。

第三類,資料窺探檢定(data-snooping)。 代表是 White’s Reality Check 與 Hansen 的 SPA 檢定。前兩類假設檢定彼此獨立,但策略之間高度相關(同一組資料、相近的邏輯),獨立假設會失真。這類檢定用 bootstrap 直接對「整個策略宇宙裡最好那支,是否真的贏過基準」做推論,並且把策略間的相關結構納進去。你比較的是「一群策略對一個基準」而不是「單一假設」時,這是正確的工具。

第四類,Sharpe 專用校正。 代表是 Deflated Sharpe Ratio 與它的姊妹指標 PBO(回測過擬合機率)。DSR 把試驗次數、樣本長度、報酬的偏度與峰度一起折算進顯著性,PBO 則直接估「樣本內選出的最佳策略,樣本外掉到後段班的機率」。當你的評估指標就是 Sharpe 時,這一類最直接。

一張對照表收尾:

你的情境 該用的工具
只想挑極少數、不容誤判的訊號 Bonferroni / Holm(FWER)
批量掃因子,容許少量誤判 Benjamini-Hochberg(FDR)
一群相關策略對一個基準 White’s Reality Check / SPA
用 Sharpe 評估、想折算試驗次數 Deflated Sharpe Ratio / PBO

用對工具是驗證,用錯工具是買心安。共通前提只有一個:你得誠實知道自己的 N 是多少。工具再精密,餵進去的試驗次數如果是假的,輸出一樣是假的。

加密市場為什麼是重災區

同樣的統計陷阱,在加密市場被放大了好幾檔,值得單獨拆。

歷史太短,regime 太少。 比特幣有意義的資料撐死十幾年,山寨幣多半只有兩三年。真正結構不同的市場環境(牛、熊、橫盤、流動性危機)掰著手指數得完。樣本一短,雜訊佔比就高,同一次搜尋撈到假訊號的機率跟著飆。你的「有效樣本」遠比日線根數看起來的少。

存活者偏誤特別重。 傳統股市也有下市,但加密市場的死亡率是另一個量級,每一輪週期都埋葬一大批歸零的幣。任何用「當前幣種清單」回測歷史的做法,都自帶一層被抹掉的倖存者濾鏡。

同一批資料被幾萬個人同時挖。 全世界的散戶量化都在對著同一組公開 OHLCV 跑 optimizer。這是社群層選擇偏誤的極致:市場層級的多重測試次數,是所有人試驗數的總和,大到沒有任何個人能誠實計數。你在論壇看到的每一支「聖杯」,背後是一個你看不見的天文數字級搜尋空間。

上架、解鎖、分叉是離散事件。 很多看起來有 edge 的策略,其實是靠少數幾次代幣解鎖或上架行情撐起來的。事件數少,就是有效樣本少的另一種說法,也讓 regime 依賴的問題更隱蔽。

這幾點疊起來,結論是:加密回測需要比傳統市場更保守的顯著門檻,不是更寬鬆。市場越年輕、資料越被反覆挖,選擇偏誤的折扣就該打得越重。

失效條件與最低限度的防治紀律

把校正工具講清楚之後,要提醒一件事:這些工具全都建立在「你誠實計數」這個前提上,而這正是整條防線最容易斷的地方。以下是最低限度、且必須前置的紀律。

先寫經濟假設,再碰資料。 在看任何回測之前,寫下這個 edge 為什麼應該存在:風險溢酬、行為偏誤、結構或制度因素、微結構,四選一。寫不出可信機制的,別挖。一個有事前理由的假設,本質上把你的搜尋空間縮小了,多重測試的懲罰也跟著變輕。

開試驗計數器,從第一天算。 每碰一組參數、一個特徵、一個變體,計數器加一,包括看一眼就丟的。研究結束後這個數字無法誠實重建,論文把事前登記這個做法叫 pre-registration。多數人低報自己的 N 一到兩個數量級,DSR 或 SPA 餵進假的 N,等於白算。

鎖一段保險庫資料。 切出最近 20% 到 30% 的資料(或完整一個時代),標記禁區,探索與調參一律不准碰,只在最後驗收用一次。碰過第二次,它就不再是樣本外。

用最強的笨方法當基準,不是零。 正確的虛無假設是含息指數、50/50、risk parity 這類不需要任何訊號的配置,而不是「贏過零」。這條與選擇偏誤直接相關:很多「贏過大盤」的宣稱,一旦換成誠實基準就消失了。

這套流程和更完整的九種過擬合死法,回測過擬合的九種死法那篇有逐關拆解,選擇偏誤在那裡是九種死法之首。我們在 Lab 社群裡會拿實際策略把 SPA、Deflated Sharpe 與 PBO 的程式實作逐關跑一遍,有興趣把自己的策略丟進絞肉機的,那裡是合適的地方。

結論:可信度不在績效多漂亮,在你怎麼選的

把這篇收攏成五句話:

  1. 多重測試是把假陽性機率灌大的機制,選擇偏誤是把它變現成一支具體策略的動作,兩者是同一件事的兩面。
  2. 試到 100 次,純雜訊的期望最大 t 值就越過 t>2;試到 1000 次,連 t>3 都頂穿。掃越多,冠軍越可能是運氣。
  3. 選擇偏誤至少有六個入口,存活者偏誤與社群層倖存者是加密市場最容易忽略的兩個。
  4. 校正工具分四類,FWER、FDR、資料窺探檢定、Sharpe 專用,各管一塊,前提都是你誠實知道 N。
  5. 所有補救都必須前置,偏誤在碰資料當下就烤進去了,事後測不出來。

找出「看起來會賺錢」的模式是世界上最容易的事,隨機雜訊裡俯拾即是。難的、也是唯一有價值的,是不被自己的搜尋過程騙過去。判斷一個回測可不可信,別問它績效多漂亮,問它試了幾次、怎麼選的。一支策略在被誠實地折算過搜尋成本之後還站得住,才值得投入真錢。

我每週會把這類驗證框架與實際市場數據的交叉檢驗寫進電子報,包括流動性、衍生品結構與鏈上籌碼的例行審視。想讓自己的決策流程多一層濾網的,可以訂閱追蹤。


Meta Elements

Meta Title: 選擇偏誤與多重測試:回測為什麼掃越多越可能造假
Meta Description: 掃 1000 組參數,純雜訊也能撈到 t 值 3.2 的「顯著」策略。本文拆解多重測試如何製造選擇偏誤、偏誤潛入量化回測的六個入口,以及 FWER、FDR、SPA、Deflated Sharpe 各自校正什麼。
Primary Keyword: 選擇偏誤
Secondary Keywords: 多重測試, 多重檢定, 量化回測, 存活者偏誤, 資料窺探, Deflated Sharpe, White's Reality Check
URL Slug: /blog/selection-bias-multiple-testing
Internal Links: /blog/quant-trading-system, /blog/deflated-sharpe-ratio, /blog/quant-trading-data-layer, /blog/backtest-overfitting, /#lab-benefits, adtrader.beehiiv.com
External Links: SSRN (Harvey, Liu & Zhu, …and the Cross-Section of Expected Returns), AMS Notices (Pseudo-Mathematics and Financial Charlatanism), Hansen SPA (doi.org)
Word Count: 約 3,600 字(中文字元)
個人頭像照片
AD.Trader Lab

AD.Trader Lab 創辦人 | 量化交易員 專注於在充滿雜訊的市場中,尋找數學上的必然性。AD.Trader Lab 實驗室主理人,帶你用數據看透漲跌背後的真相。