iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0
Build on Google AI

基本面與技術面組合投資模型建置系列 第 16 篇

消除存活者偏誤:將已下市、被收購或破產公司的資料納入回測樣本範圍。

  • 分享至 

  • xImage
  •  

第十七天 10/01/2026
消除存活者偏誤:將已下市、被收購或破產公司的資料納入回測樣本範圍。
消除存活者偏誤(Survivorship Bias)是量化回測與策略開發中最關鍵的步驟。若直接使用「目前存續(上市)的公司」回推過去一段時間來篩選標的,會徹底破壞回測的真實性,這是絕對應該避免的做法。
以下針對「為何不能用現存公司回推」以及「如何正確實作消除存活者偏誤」進行說明:
一、 為何絕對不能用「目前存續的公司」回推過去?
用「今天還活著的公司」去篩選歷史標的,等同於開啟了「後見之明(Look-ahead Bias)」:

  1. 過度高估策略報酬與勝率:今天存續的公司多半度過了歷史上的金融海嘯與產業危機。若只回測這些「贏家」,策略會自動避開歷史上所有破產(如雷曼兄弟、安隆)、下市或衰退公司(如柯達、諾基亞)的暴跌風險。
  2. 扭曲因子有效性:在篩選低本益比、高槓桿或轉機股因子時,許多極端特性的公司其實最終走向破產。如果樣本剔除了這些失敗者,回測會誤以為某些高風險因子具有極高的超額報酬。
    二、 正確的實作流程與避免機制
    要完全消除存活者偏誤,核心原則是:「在歷史上的任何時間點,回測系統只能看到當時『真實存在且可交易』的全體公司目錄。」
  3. 建立「Point-in-Time(無時空穿越)」動態股票池
    • 納入歷史全樣本:回測資料庫必須包含所有歷史上曾經上市,但後來已下市、被收購、破產或變更代碼的公司(如 Delisted Data)。
    • 動態篩選而非靜態清單:回測程式在每個調倉日(Rebalance Date),應根據「當日」的上市清單來定出選股範圍,而非使用單一固定清單。
  4. 正確處理下市與異常事件的清算價值
    當選中的持股在回測期間發生下市或收購時,須依照真實情境模擬結算:
    • 破產/下市(Delisting):若公司無預警下市或聲請破產,該筆部位不能直接從資料庫消失,必須記錄為價格歸零(-100% Loss)或依最後交易日價格強制平倉。
    • 併購/收購(M&A):若標的被併購,應依併購收購價或換股比例,將部位轉換為現金或新股票。
  5. 搭配消除「生存者以外」的常見配套偏誤
    在處理存活者偏誤時,需同時注意以下細節,避免引入新的數據污染:
    • 前瞻偏誤(Look-ahead Bias):財報資料發布有時間差。 Q3 財報通常在 11 月才公佈,10 月的回測絕不能用到 Q3 的數據。
    • 上市時間限制(IPO/New Listing):剛上市的公司缺乏歷史財務數據,設定選股條件時應考慮上市滿一定期限(如 6 個月)的過濾機制。
    結論
    實作量化回測時,絕不能用現存公司名單進行歷史回推。唯有使用包含已下市公司的完整 Point-in-Time 歷史數據,並在每個時間點動態生成選股池與真實模擬下市清算,才能還原策略真實的風險與績效。

上一篇
消除後見之明偏誤:財務資料嚴格依公開公告日期,而非季度結束日期。
系列文
基本面與技術面組合投資模型建置 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言