風險曝險與損失

Python 量化風險管理

Jamsheed Shorish

Computational Economist

度假類比

  • 休假飯店預訂

  • 先付、入住前付款

    • 房價較低
    • 不可退費:取消費用=房價的 100%
  • 抵達後付款

    • 房價較高
    • 部分可退:取消費用為房價的 20%

加勒比海灘邊的船

Python 量化風險管理

在選項間抉擇

  • 你如何做決策?
    1. 負面衝擊機率:生病、旅途中斷、天氣
      • 損失機率
    2. 衝擊造成的損失:金額或條件金額
      • VaR、CVaR
    3. 迴避衝擊的意願:個人感受
      • 風險承受度

三個孩子發燒躺床的卡通圖

 

風險刻度與金錢的風險管理圖片

Python 量化風險管理

風險曝險與 VaR

  • 風險曝險:損失機率 × 損失衡量
    • 損失衡量:如 VaR
  • 10% 機率取消假期:P(Illness) = 0.10
  • 不可退費
    • 不可退費的飯店總費用:€ 500
    • 90% 信賴水準的 VaR:€ 500
  • 部分可退
    • 可退費的飯店費用:€ 550
    • 90% 信賴水準的 VaR:20% 取消費 × € 550 = € 110
Python 量化風險管理

計算風險曝險

  • 不可退費的曝險(「$\text{nr}$」):
    • P(illness) × $\text{VaR}_{0.90}^{\text{nr}}$ = 0.10 × € 500 = € 50。
  • 部分可退的曝險(「$\text{pr}$」):
    • P(illness) × $\text{VaR}_{0.90}^{\text{pr}}$ = 0.10 × € 110 = € 11。
  • 曝險差額:€ 50 - € 11 = € 39。
  • 兩個方案的總價差:€ 550 - € 500 = € 50。
  • 風險承受度:多付 € 50 是否值得用來避免額外 € 39 的曝險?
Python 量化風險管理

風險承受度與風險偏好

  • 風險中立:只在意期望值
    • € 39 < € 50 $\Rightarrow$ 偏好不可退費選項
  • 風險趨避:不確定性本身有成本
    • € 39 < € 50 $\Rightarrow$ 偏好部分可退選項
  • 企業/機構風險管理:偏好稱為 風險偏好
  • 個人投資人:偏好稱為 風險承受度
Python 量化風險管理

損失分配-離散型

  • 風險曝險取決於損失分配(損失機率)
  • 度假範例:隨機風險因子帶來 2 種結果

度假範例的二元損失長條圖

Python 量化風險管理

損失分配-連續型

  • 風險曝險取決於損失分配(損失機率)
  • 度假範例:隨機風險因子帶來 2 種結果
  • 更一般地:連續型損失分配
    • 常態分配:適用於樣本數大

連續常態分配圖

Python 量化風險管理

損失分配-連續型

  • 風險曝險取決於損失分配(損失機率)
  • 度假範例:隨機風險因子帶來 2 種結果
  • 更一般地:連續型損失分配
    • 常態分配:適用於樣本數大
    • Student's t 分配:適用於樣本數較小

連續型損失 T 分配圖

Python 量化風險管理

入門:Student's t 分配

  • 亦稱 T 分配
  • 在小樣本時尾部比常態分配更「肥」
    • 類似投資組合的報酬/損失
  • 隨樣本數增加,T 會趨近常態分配

連續型損失分配圖

Python 量化風險管理

在 Python 使用 T 分配

  • 範例:從 T 分配計算 95% VaR
    • scipy.stats 匯入 t 分配
    • t.fit() 擬合 portfolio_loss 資料

 

from scipy.stats import t

params = t.fit(portfolio_losses)

連續型損失分配圖

Python 量化風險管理

在 Python 使用 T 分配

  • 範例:從 T 分配計算 95% VaR
    • scipy.stats 匯入 t 分配
    • t.fit() 擬合 portfolio_loss 資料
    • .ppf() 計算百分點函式以求 VaR
from scipy.stats import t

params = t.fit(portfolio_losses)
VaR_95 = t.ppf(0.95, *params)

含 VaR 的連續型損失 T 分配圖

Python 量化風險管理

自由度

  • 自由度(df):獨立觀測值的數量
  • df 小:T 分配「肥尾」
  • df 大:近似常態分配
x = np.linspace(-3, 3, 100)

plt.plot(x, t.pdf(x, df = 2))
plt.plot(x, t.pdf(x, df = 5))
plt.plot(x, t.pdf(x, df = 30))

自由度為 30 的 T 分配圖

Python 量化風險管理

一起來練習吧!

Python 量化風險管理

Preparing Video For Download...