Q-Q Plot 與 Jarque-Bera — 你的報酬是常態嗎?
本文採用本站四段式教學結構:概念 / 本站怎麼算 / 怎麼看數字 / 注意事項。
1. 概念
很多財務教科書、風險模型、投資組合理論都預設報酬是常態分布:
- Markowitz 效率前緣(常態 → 平均數 + 變異數足以描述)
- Black-Scholes 選擇權定價(常態)
- 參數法 VaR(mean − 1.645σ)
- 傳統 Sharpe Ratio(假設報酬對稱)
但實證顯示:股票報酬根本不是常態。它們有兩個明顯特徵:
- 厚尾(Fat Tails):極端事件(±3σ 以上)比常態預期多很多
- 偏態(Skewness):左偏居多(下跌比上漲更激烈)
要實證檢驗這件事,有兩種互補工具:
| 工具 | 本質 | 回答 |
|---|---|---|
| Q-Q Plot | 視覺化 | 「點偏離 45° 線多遠?」 |
| Jarque-Bera | 統計檢定 | 「拒絕常態假設的 p 值?」 |
2. 本站怎麼算
2.1 Q-Q Plot
1. 樣本標準化:(r − mean) / σ(ddof=1)
2. 排序
3. 對第 i 個樣本(i = 0 .. n−1),取繪圖位置 p = (i + 0.5) / n
4. 理論分位數 = Φ⁻¹(p)(標準庫 statistics.NormalDist)
5. 繪製 (theoretical, sample) 散點,疊上 y = x 45° 參考線
讀法:
- 點完全落在 45° 綠線上 → 完全常態
- 尾部點偏離線(特別是 ±2σ 以上)→ 厚尾
- 左上或右下偏離不對稱 → 偏態
- 本站標紅:|樣本分位數 − 理論分位數| > 0.8 的點
為讓圖形清爽,樣本 > 60 時線性等距下採樣到 60 點。
2.2 Jarque-Bera 檢定
JB = n/6 × (skewness² + (excess_kurtosis)² / 4)
H₀: 樣本符合常態分布
H₁: 樣本非常態
JB 在 H₀ 下漸近服從 χ²(df=2)
為什麼 df=2?因為檢定兩個獨立的偏離指標:skewness、excess kurtosis。
p-value 的計算:對 df=2 的卡方分布有封閉解:
p-value = exp(−JB / 2)
我們不依賴 scipy,用這個公式直接算。
判讀閾值:
- α = 0.05(JB 臨界值 = 5.991)
- p ≥ 0.10 →
fail_to_reject(可視為常態) - 0.05 ≤ p < 0.10 →
marginal - 0.001 ≤ p < 0.05 →
reject - p < 0.001 →
strong_reject
2.3 資料源與窗口
- 使用過去 252 個交易日的 simple daily returns
- 樣本 < 60 日 → 標示
available: false(不穩定)
2.4 使用 Fisher excess kurtosis(常態 = 0)
與 v2.42 全站修正一致:不用 raw kurtosis(常態=3)。這樣 excess_kurt > 0 就直觀代表「比常態更厚尾」。
3. 怎麼看數字
3.1 Q-Q Plot 讀法(實戰最重要)
樣本點分布 意涵
─────────────────────────────────────
全落在 45° 線上 完全常態(罕見)
中段貼合、兩端上翹 厚尾(股票最常見)
中段貼合、左端下甩 左偏(下跌尾部特別肥)
全面偏離 嚴重非常態(例:槓桿 ETF)
本站紅點:標出 |theoretical − sample| > 0.8 的點,通常是尾部。紅點越多 + 越遠,厚尾/偏態越嚴重。
3.2 skewness 與 excess kurtosis 實務水準
| 指標 | 範圍 | 意涵 |
|---|---|---|
| Skewness | −0.5 ~ +0.5 | 近乎對稱 |
| < −1 | 明顯左偏(下跌尾嚴重) | |
| > +1 | 明顯右偏(上漲尾大,少見) | |
| Excess Kurtosis | < 1 | 接近常態 |
| 1 ~ 5 | 一般股票典型 | |
| > 5 | 嚴重厚尾(小型股、週期股崩盤史) |
3.3 對決策的實務影響
若樣本拒絕常態(多數情況):
- 參數法 VaR 低估風險 → 要用歷史模擬(本站做法)
- Sharpe Ratio 無法完全描述風險 → 搭配 Sortino 與 CVaR
- 投組相關性在極端時會增加 → P0.2 的相關性矩陣在平時看不出來
若樣本接近常態(少見):
- 可以相信 Sharpe + 參數法 VaR
- 多為流動性好的大型股、配息穩定的金融類股
4. 注意事項
⚠️ 大樣本 JB 過度敏感
當 n > 1000 時,即使樣本非常接近常態,JB 也幾乎都會拒絕。這是統計檢定的通病(大樣本下任何微小偏離都會顯著)。
對策:
- 看 skewness 與 excess kurtosis 的絕對值,不要只看 p-value
- 若 skew 在 ±0.5 內、excess kurt < 1,雖然 p 可能 < 0.05,實務上仍可視為近似常態
本站已揭露 skew 與 excess kurt 於卡片上,協助你做這個判斷。
⚠️ JB 屬於漸近檢定
JB 的卡方近似在 n 很小時不準(例如 n < 50)。本站 MIN_SAMPLE_DAYS = 60,確保大樣本近似成立。
⚠️ Q-Q Plot 的主觀性
讀 Q-Q 有一定主觀成分:
- 「尾部偏離多少算嚴重?」沒有標準答案
- 本站用 |Δ| > 0.8 作為紅點閾值,只是視覺輔助,不是正式檢定標準
Q-Q 最強的是兩個樣本比較(例如「台積電 vs 鴻海」哪個偏離更多),而非絕對判斷。
⚠️ 不適用於極端樣本
- 單一方向波動(只漲不跌):Q-Q 尾部圖形會扭曲
- 重大結構斷點(併購、改業務):樣本混合前後兩個分布
這時 JB 的拒絕不代表「未來也非常態」,而是「這段歷史不是同質」。
⚠️ 常態假設不是「錯」,只是「限制」
常態模型是 Markowitz / Sharpe / Black-Scholes 的基石。偏離常態不代表這些理論無用,只是要知道其限制:
- 極端事件時失真
- 對「風險」的測量保守度不足
- 投組最佳化可能在尾部事件崩潰
理解這點比「拒絕一切常態模型」更重要。
延伸閱讀
- 〈VaR vs CVaR — 真的踩到最差 5% 會虧多少〉
- 〈Sortino 與下行標準差〉
- 〈Sharpe Ratio:衡量你的投資效率〉
動手試試看
- 打開 個股分析 → 風險,捲到「報酬常態性診斷」
- 觀察 Q-Q Plot 的尾部偏離與紅點數量
- 對照 skewness / excess kurtosis 的實際數值
- 比較不同類型股票:大型權值 vs 小型投機,兩者 JB 差距通常很大
- 點 📐 查看公式、閾值、資料來源