波動與極端值

Python 量化風險管理

Jamsheed Shorish

Computational Economist

Chow 檢定的假設

  • Chow 檢定:判斷可能結構性轉折的統計顯著性
  • 前提:需先給定轉折點
  • 前提:需為_線性_關係(如因子模型) $$ \log(\text{Population}_t) = \alpha + \beta * \text{Year}_t + u_t $$

中國人口成長圖,標示結構轉折點

Python 量化風險管理

結構轉折的指標

  • 趨勢視覺化未必能指示轉折點
  • 替代作法:檢視波動度而非趨勢
    • 結構變動常伴隨更高不確定性 ⇒ 波動
    • 可納入更豐富的模型(如隨機波動模型)

月度波動度與可能的結構轉折點

Python 量化風險管理

移動視窗波動度

  • 移動視窗:隨時間計算波動並偵測變化
  • 回顧:30 天移動視窗

    • 以「.rolling()」建立移動視窗
    • 計算視窗內波動度(移除無資料日期)
    • 計算關注的摘要統計,如 .mean().min()

     

rolling = portfolio_returns.rolling(30)

volatility = rolling.std().dropna()
vol_mean = volatility.resample("M").mean()
Python 量化風險管理

移動視窗波動度

  • 視覺化結果波動度(變異數或標準差)
import matplotlib.pyplot as plt
vol_mean.plot(
  title="Monthly average volatility"
).set_ylabel("Standard deviation")
plt.show()

月度平均波動度圖

Python 量化風險管理

移動視窗波動度

  • 視覺化結果波動度(變異數或標準差)
  • 波動度出現大幅變化 ⇒ 可能有結構轉折點
  • 在波動度的線性模型中使用建議的轉折點
    • Chow 檢定的變形
  • 作為套用如 ARCH、隨機波動模型的參考
vol_mean.pct_change().plot(
  title="$\Delta$ average volatility"
).set_ylabel("% $\Delta$ stdev")
plt.show()

月度波動度百分比變化圖

Python 量化風險管理

極端值

  • VaRCVaR:在特定信心水準下的最大損失與預期損失缺口
  • 以繪製 VaR 觀察最大損失變化?
    • 對大型資料集實用
    • 小型資料集:資訊不足
  • 替代:找出_超過_某門檻的損失
  • :$\text{VaR}_{95}$ 表示 95% 時間內的最大損失
    • 因此有 5% 的時間損失會_超過_ $\text{VaR}_{95}$
  • 回溯測試:用過去資料 _事後_ 評估風險估計表現
    • 企業風險管理中廣泛使用
Python 量化風險管理

回溯測試

  • 假設 $\text{VaR}_{95} = 0.03$
  • 超過 3% 的損失即為極端值
  • 回溯測試:約 5%(100% - 95%)的歷史損失應_超過_ 3%
    • 多於 5%:分配尾部較寬(「肥尾」)
    • 少於 5%:分配尾部較窄
  • CVaR 用於回溯測試:比 VaR 更能反映尾部

損失與 95% VaR 門檻示意圖

Python 量化風險管理

一起來練習吧!

Python 量化風險管理

Preparing Video For Download...