開始使用免費開始

CVaR 與損失準備金的選擇

在前面的練習裡,你看到 TGaussian KDE 兩種分配,在金融危機期間對投資組合損失的擬合都相當不錯。既然如此,哪一個更適合用於「風險管理」呢?一種做法是選擇能提供最大「損失準備金」(loss cover)的分配,用來涵蓋「最糟中的最糟」情境下的損失。

tkde 分配已提供,並且已擬合至 2007-2008 的投資組合 lossest 的擬合參數在 p)。你將為每個分配推導單日 99% 的 CVaR 估計值;CVaR 估計值較大的那一個,就是最「安全」的準備金金額,可涵蓋超過 99% VaR 的預期損失。

kde 物件已特別提供一個 .expect() 方法(僅供本練習使用),用來計算求得 CVaR 所需的期望值。

本練習屬於課程

Python 量化風險管理

檢視課程

練習說明

  • tkde 分配各自產生的隨機樣本使用 np.quantile(),找出 99% VaR。
  • 對每個分配使用 .expect() 方法,計算 CVaR 估計所需的積分。
  • 求出並顯示兩種分配的 99% CVaR 估計值。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Find the VaR as a quantile of random samples from the distributions
VaR_99_T   = np.quantile(t.rvs(size=1000, *p), ____)
VaR_99_KDE = np.quantile(kde.resample(size=1000), ____)

# Find the expected tail losses, with lower bounds given by the VaR measures
integral_T   = t.____(lambda x: x, args = (p[0],), loc = p[1], scale = p[2], lb = ____)
integral_KDE = kde.____(lambda x: x, lb = ____)

# Create the 99% CVaR estimates
CVaR_99_T   = (1 / (1 - ____)) * integral_T
CVaR_99_KDE = (1 / (1 - ____)) * integral_KDE

# Display the results
print("99% CVaR for T: ", CVaR_99_T, "; 99% CVaR for KDE: ", CVaR_99_KDE)
編輯並執行程式碼