Mímisbrunnr知恵の泉

← 意思決定分析 一覧

🎓 レベル:発展 | 重要度:A(必須)

📎 前提:VaR(バリュー・アット・リスク) | 関連:整合的リスク測度の公理・数理最適化(CVaR最小化)

要点(BLUF)

1. CVaR の定義:裾の平均

VaR は「裾の入口」しか見ませんでした(VaR(バリュー・アット・リスク))。CVaR は裾の中身の平均を取ります。

CVaRα(L)=E[L    LVaRα(L)]  =  11αα1VaRu(L)du\mathrm{CVaR}_\alpha(L) = \mathbb{E}\big[\,L \;\big|\; L \ge \mathrm{VaR}_\alpha(L)\,\big] \;=\; \frac{1}{1-\alpha}\int_{\alpha}^{1} \mathrm{VaR}_u(L)\,du

最後の式は「α\alpha から1までのVaRを平均したもの」で、α\alpha より厳しい全信頼水準のVaRをならした値。だから CVaR は必ず VaR 以上で、裾が厚いほど両者の差が開きます。

import numpy as np

rng = np.random.default_rng(42)
profit = rng.normal(2.0, 10.0, size=200_000)
loss = -profit

for alpha in [0.95, 0.99]:
    var = np.quantile(loss, alpha)
    cvar = loss[loss >= var].mean()           # VaR以上の損失の平均
    print(f"信頼水準 {alpha:.0%}: VaR={var:.2f}  CVaR={cvar:.2f}  差={cvar-var:.2f} 万円")

出力:

信頼水準 95%: VaR=14.51  CVaR=18.65  差=4.13 万円
信頼水準 99%: VaR=21.28  CVaR=24.69  差=3.42 万円

出力の意味:95%水準で、VaR は14.5万ですが CVaR は18.6万。「5%の悪い事象が起きたら、平均18.6万損する」。VaR との差4.1万が、VaR が見落としていた『裾の中身』 です。99%でも CVaR が VaR を上回ります。正規分布だと差は小さめですが、裾の厚い現実の分布ではこの差が大きく開き、CVaR の優位(裾の深さを捉える)が際立ちます。

2. CVaR が VaR より優れる3点

CVaR は VaR の弱点(VaR(バリュー・アット・リスク)の節3)をすべて解消します。

3. VaR と CVaR の使い分け

両者は対立するというより、役割が違います。

バーゼル規制も、市場リスクの内部モデルで VaR から期待ショートフォール(CVaR)へ移行しました(FRTB)。これは「裾を見ない VaR では危機を捉えられない」という金融危機の教訓を反映したものです。報告は VaR、運用判断は CVaR という併用が実務的です。

数式の直観的意味:なぜ平均化で整合性が戻るか

VaR の非整合性は「分位点が順位しか見ない・非凸」ことに由来しました(VaR(バリュー・アット・リスク))。CVaR は分位点を裾全体で平均します。平均(期待値)は線形作用素なので、和に対して素直で、E[]\mathbb{E}[\cdot] の単調性・凸性を引き継ぎます。直観的には、VaR が「裾の1点」を見て隣の点に飛び移る(不連続・非凸)のに対し、CVaR は「裾全体の重心」を見るので滑らかに動く。Rockafellar–Uryasev の表現

CVaRα(L)=mint {t+11αE[(Lt)+]}\mathrm{CVaR}_\alpha(L) = \min_{t}\ \Big\{\, t + \tfrac{1}{1-\alpha}\,\mathbb{E}[(L-t)_+]\,\Big\}

は、CVaR が「tt に関する凸関数の最小値」として書けることを示します。(Lt)+(L-t)_+ が凸で、その期待値も凸、最小化しても凸性が保たれる——だから CVaR は凸測度になります。この変分表現が、CVaR 最小化を線形計画に落とす鍵で、数理最適化に繋がります。

⚠️ よくある誤解

対応シミュレーション

本文のコードで、分布を裾の厚いもの(t分布など)に変えると、VaR はあまり動かないのに CVaR が大きく増える——CVaR が裾の厚みを捉えることを確認できます。

関連ノート