歷史極端事件與聚集性 — 黑天鵝常伴隨餘震
本文採用本站四段式教學結構:概念 / 本站怎麼算 / 怎麼看數字 / 注意事項。
1. 概念
VaR / CVaR 告訴你統計意義上的尾部,但使用者最常問:「到底哪幾天最慘?那幾天是為什麼?」
這就是「歷史極端事件標註」的目的 —— 把過去 252 日最差的 10 筆單日具體列出來,搭配:
- 當日大盤報酬 — 是系統性崩盤還是個股特有事件?
- 超額報酬 = 個股報酬 − 大盤報酬 — 量化「多跌多少」
- 聚集性分析 — 這些事件是均勻分布還是集中爆發?
為什麼要看聚集性?
金融理論常假設「報酬獨立同分布(i.i.d.)」—— 今天跌和明天跌無關。
現實不是。股票市場有一個根深柢固的現象:
波動度叢聚(Volatility Clustering):大波動後通常還有大波動。
- 2020/3 COVID 崩盤:月內連續 5 次 −5% 以上
- 2022/10 升息恐慌:兩週內 3 次暴跌
- 2008/9 雷曼事件:整個 9–10 月震盪不停
這不是巧合,而是統計事實。本指標就是量化這種聚集性。
2. 本站怎麼算
2.1 事件選取策略
1. 取過去 252 日 simple daily returns
2. 計算 1% 分位值作為「極端」門檻
3. 若該門檻內事件數 < 10,改取最差 10 筆(保證樣本數)
4. 依日期升冪排列
預設展示 10 筆事件。
2.2 當日大盤報酬
從 _calc_risk_series 的 df 中直接取對應日的大盤報酬(market_ret):
- 台股個股 → ^TWII 加權指數
- 美股個股 → ^GSPC S&P 500
2.3 超額報酬
excess_return = stock_return − benchmark_return
解讀:
- 超額 < −2% → 大盤沒這麼糟但個股跌更兇 → 個股特有風險(財報雷、客戶流失、爆炸等)
- 超額 ≈ 0% → 系統性事件(大盤一起跌)
- 超額 > 0% → 相對強勢(例:大盤 −3% 但個股 −1%)
2.4 聚集性分析
mean_gap_days = 平均相鄰事件的間隔天數
min_gap_days = 最短間隔
max_gap_days = 最長間隔
hottest_cluster = 任何 30 日滾動窗口內事件數最多的區間
獨立同分布下的理論預期:10 筆事件均勻分布在 252 個交易日 ≈ 平均 25 日一次。 若實際平均間隔 < 15 日 → 明顯聚集。
3. 怎麼看數字
3.1 事件列表解讀
日期 個股 % 大盤 % 超額 %
2024-03-11 -6.20% -1.10% -5.10% ← 個股特有事件(超額大幅負)
2024-03-13 -4.80% -0.40% -4.40% ← 同上
2024-03-18 -3.90% -0.20% -3.70% ← 同一叢聚內
2024-10-09 -5.50% -4.80% -0.70% ← 系統性事件(大盤同跌)
實戰推導:
- 3/11、3/13、3/18 超額都 < −3% → 個股連續自爆,很可能是產業壞消息(例:大客戶砍單、晶片庫存修正)
- 10/9 超額 −0.7% → 大盤同慘,不是個股問題
這種判讀比單看「跌 −5%」有用多了。
3.2 聚集性讀法
| 平均間隔 | 判讀 |
|---|---|
| > 50 日 | 🟢 事件稀疏,與獨立分布相近 |
| 20–50 日 | 🟡 一般股票典型 |
| < 20 日 | 🔴 顯著聚集,波動度叢聚嚴重 |
最熱叢聚 — 頂部醒目地標示 30 日內事件數最多的區間。若該區間有 4 筆以上事件:這是「結構性崩盤期」,不只是個別黑天鵝。
3.3 搭配其他指標使用
- 與 VaR / CVaR 互補:VaR 給你「統計意義上最差 5%」,極端事件給你「具體那些日子」
- 與 Jarque-Bera 互補:JB 告訴你「分布厚尾有多嚴重」,極端事件給你「尾部實際發生時的樣貌」
- 與 Max DD 互補:MDD 看最深一次;極端事件看「所有大跌」的分布
4. 注意事項
⚠️ 事件選取的動態門檻
本站採「1% 分位 vs 最差 10 筆」取較嚴的那個。這有兩個影響:
- 靜默期的樣本(如 2021 慢牛年):1% 分位可能還是 −1.5%,這時會看到「最差 10 筆」其實沒那麼極端
- 崩盤期的樣本(如 2020/3 月起的 252 日):1% 分位會很負,事件更「真實」
UI 揭露:頂部顯示 臨界 X%,讓使用者知道當前樣本的「極端」門檻到哪。
⚠️ 日頻資料掩蓋盤中極端
本站用日收盤報酬。若某日盤中 −8% 後拉回收 −1%,只會被記為 −1%,不會進入極端事件。
補救:搭配 P1C.1 CVaR(已包含這類「邊緣」日子)+ 看新聞。
⚠️ 超額報酬的 Beta 修正
本站超額 = 個股 − 大盤直接相減,沒做 Beta 修正。
- Beta=1.5 的股票,大盤跌 3% 應「正常」跌 4.5%
- 純看超額會誤判為「個股特有」
學術做法:用 CAPM 殘差(個股 − Beta × 大盤)。但本站為簡明直覺選擇直接相減。
進階使用者:Beta 資訊在同一頁面上方的風險卡片,可自行心算修正。
⚠️ 聚集性不是完整的時序診斷
「30 日內 4 筆事件」有聚集,但:
- 沒告訴你為什麼聚集(需看新聞、業務變化)
- 沒預測下一次聚集何時(GARCH 模型才能做這件事,Phase 4 規劃)
- 最熱叢聚找到的只是歷史已發生的,非未來
⚠️ 新聞連結尚未整合
原本 plan_v2.md 設計「每筆附當日新聞」;本版先完成核心數據,新聞關聯留到 Phase 2(需整合 news_d_tw_h 表 + 盤中重大訊息抓取邏輯)。
⚠️ 窗口固定 252 日
過去 5 年的極端事件在本窗口外會被遺忘。若想看 2020/3 COVID 對某檔股票的衝擊:
- 2022/3 以後的 252 日窗口就已排除 COVID 那段
- 需另做長期壓力測試(P2.3 規劃)
延伸閱讀
- 〈VaR vs CVaR — 真的踩到最差 5% 會虧多少〉
- 〈Q-Q Plot 與 Jarque-Bera — 你的報酬是常態嗎?〉
- 〈最大回撤、Ulcer、Calmar〉
- 〈GARCH 波動度模型〉(Phase 4 規劃)
動手試試看
- 打開 個股分析 → 風險,捲到「歷史極端事件」
- 看事件列表、觀察超額報酬欄位(有紅色就是個股特有跌勢)
- 比對頂部「最熱叢聚」— 該時段是否對應你記憶中的市場大事件
- 切換不同股票:穩健股 vs 投機股的聚集性差距通常巨大
- 點 📐 查看事件選取策略、聚集性公式