CVaR 與損失準備金的選擇
在前面的練習裡,你看到 T 與 Gaussian KDE 兩種分配,在金融危機期間對投資組合損失的擬合都相當不錯。既然如此,哪一個更適合用於「風險管理」呢?一種做法是選擇能提供最大「損失準備金」(loss cover)的分配,用來涵蓋「最糟中的最糟」情境下的損失。
t 與 kde 分配已提供,並且已擬合至 2007-2008 的投資組合 losses(t 的擬合參數在 p)。你將為每個分配推導單日 99% 的 CVaR 估計值;CVaR 估計值較大的那一個,就是最「安全」的準備金金額,可涵蓋超過 99% VaR 的預期損失。
kde 物件已特別提供一個 .expect() 方法(僅供本練習使用),用來計算求得 CVaR 所需的期望值。
本練習屬於課程
Python 量化風險管理
練習說明
- 對
t與kde分配各自產生的隨機樣本使用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)