テールリスクの推定

Pythonで学ぶポートフォリオ・リスク管理入門

Dakota Wixom

Quantitative Analyst | QuantCourse.com

テールリスクの推定

テールリスクとは、極端な投資結果が生じるリスクであり、特に分布の負の側面に注目します。

  • ヒストリカル・ドローダウン
  • バリュー・アット・リスク
  • 条件付きバリュー・アット・リスク
  • モンテカルロ・シミュレーション
Pythonで学ぶポートフォリオ・リスク管理入門

ヒストリカル・ドローダウン

ドローダウンとは、過去の累積最高値からの損失率です。

$$ \text{Drawdown} = \frac{r_t}{RM} - 1$$

  • $r_t$:時点tにおける累積リターン
  • $RM$:ランニング最大値
USO 石油ETFのヒストリカル・ドローダウン

Pythonで学ぶポートフォリオ・リスク管理入門

Pythonによるヒストリカル・ドローダウン

cum_rets が累積リターンのnp.arrayであると仮定します。

running_max = np.maximum.accumulate(cum_rets)
running_max[running_max < 1] = 1
drawdown = (cum_rets) / running_max - 1
drawdown
Date        Return
2007-01-03    -0.042636
2007-01-04    -0.081589
2007-01-05    -0.073062
Pythonで学ぶポートフォリオ・リスク管理入門

ヒストリカル・バリュー・アット・リスク

バリュー・アット・リスク(VaR)は、一定の信頼水準において損失がある水準を超えないとされる閾値です。

VaRは95、99、99.9などの分位数で表されます。

例:VaR(95) = -2.3%

過去の実績に基づき、特定の日の損失が -2.3%を超えない確率は95%です。

Pythonで学ぶポートフォリオ・リスク管理入門

PythonによるヒストリカルVaR

var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
var_95
-0.023
Pythonで学ぶポートフォリオ・リスク管理入門

ヒストリカル期待ショートフォール

条件付きバリュー・アット・リスク(CVaR)は、最悪の上位1 - x%のシナリオにおける予想損失の推定値です。

CVaRは95、99、99.9などの分位数で表されます。

 

例:CVaR(95) = -2.5%

 

最悪の5%のケースでは、損失は平均的に -2.5%を上回っていました(過去実績)。

Pythonで学ぶポートフォリオ・リスク管理入門

Pythonによるヒストリカル期待ショートフォール

StockReturns が株式リターンの時系列データであると仮定します。

ヒストリカルCVaR(95)の計算:

var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
cvar_95 = StockReturns[StockReturns <= var_95].mean()
cvar_95
-0.025
Pythonで学ぶポートフォリオ・リスク管理入門

さあ、練習しましょう!

Pythonで学ぶポートフォリオ・リスク管理入門

Preparing Video For Download...