🎓 レベル:標準 | 重要度:A(必須)
📎 前提:推定量の信頼区間 | 金融:VaR(バリュー・アット・リスク)・CVaR(期待ショートフォール)
要点(BLUF)
- VaR(Value at Risk):「ある信頼水準で、最大どれくらい損するか」。ポートフォリオ損益を多数生成し、その分位点で推定します。
- 解析解がない複雑なポートフォリオ(非線形・多資産・非正規)でも、モンテカルロなら損益を生成して数えるだけで VaR・CVaR が出ます。
- 正規仮定の解析解と MC 推定が一致(99% VaR:MC 0.04207 vs 解析 0.04196)。VaR の評価論・応用は金融へ繋ぎ、ここは生成と分位点推定に集中します。
1. VaR と CVaR
- VaR:損失分布の上側 分位点。「信頼水準 で、損失がこれを超えない」境界値。 なら「99%の日は損失が VaR 以下」。
- CVaR(期待ショートフォール):VaR を超えた場合の平均損失。「最悪 のケースの平均的な深さ」。裾リスクをより捉えます。
モンテカルロ法の手順は単純:(1) 資産リターンを同時分布から多数生成、(2) ポートフォリオ損益を計算、(3) その分布の分位点・条件付き平均で VaR・CVaR を推定。線形・正規なら解析解がありますが、オプションや非正規リターンが入ると解析解が崩れ、ここでモンテカルロが効きます。
2. 実装:2資産ポートフォリオ
相関のある2資産(多変量正規)のリターンを生成し、VaR・CVaR を推定して解析解と照合します。
import numpy as np
from scipy import stats
# 乱数シードを固定
rng = np.random.default_rng(60)
mu = np.array([0.0008, 0.0005]) # 日次期待リターン
cov = np.array([[0.0004, 0.0001],
[0.0001, 0.0009]]) # 共分散
w = np.array([0.6, 0.4]) # ポートフォリオ比率
n = 1_000_000
chol = np.linalg.cholesky(cov) # 相関を入れる
z = rng.standard_normal((n, 2))
returns = mu + z @ chol.T # 多変量正規リターン
port = returns @ w # ポートフォリオ損益
alpha = 0.01
VaR_mc = -np.percentile(port, alpha*100) # 99% VaR(損失として正)
CVaR_mc = -port[port <= -VaR_mc].mean() # 99% CVaR
port_mu = w @ mu; port_sd = np.sqrt(w @ cov @ w)
VaR_analytic = -(port_mu + stats.norm.ppf(alpha)*port_sd) # 正規解析解
print(f"ポートフォリオ 平均={port_mu:.5f} 標準偏差={port_sd:.5f}")
print(f"99% VaR MC={VaR_mc:.5f} 解析={VaR_analytic:.5f}")
print(f"99% CVaR MC={CVaR_mc:.5f}")
出力:
ポートフォリオ 平均=0.00068 標準偏差=0.01833
99% VaR MC=0.04207 解析=0.04196
99% CVaR MC=0.04833
出力の意味:モンテカルロの 99% VaR 0.04207 が、正規解析解 0.04196 とよく一致——手法が正しく動いている検証です(検証と妥当性確認(V&V))。つまり「明日、99%の確からしさで損失は資産の約4.2%以内」。CVaR は 0.0483 で VaR より大きく、「最悪1%の日に陥ったら平均4.8%失う」を表します。ここで解析解と照合できたのは正規・線形だから。現実の非線形・非正規ポートフォリオでは解析解がなく、モンテカルロが事実上唯一の手段になります。
3. 精度と効率
VaR は分位点なので、推定誤差は[[03-02_収束率と誤差|]]で縮みますが、裾( が小さい)ほど該当サンプルが少なく不安定。99.9% VaR を精密に出すには、素朴な生成では膨大なサンプルが要ります。そこで裾を厚く引く重点サンプリングや、極端な損失を稀少事象として扱う手法(信頼性・稀少事象シミュレーション)が活きます。VaR 推定に信頼区間を添えるのも実務の作法です。
境界:VaR・CVaR の定義・性質・規制上の使われ方(バックテスト等)は金融(VaR(バリュー・アット・リスク)・CVaR(期待ショートフォール))の本拠。ここは「損益を生成し分位点を取る」というシミュレーション手法に徹します。
数式の直観的意味
モンテカルロ VaR は「ありうる明日を100万通りシミュレートして、損の悪い方から1%目を見る」操作です。解析的 VaR が「リターンは正規」という仮定で分位点を と計算するのに対し、モンテカルロは分布を仮定せず実際に損益を並べて分位点を数える。だからオプションのような非線形ペイオフ(損益がリターンの曲がった関数)でも、各シナリオで価値を評価して並べるだけで正しい分位点が出る。CVaR が VaR より頑健なのは「閾値そのもの」でなく「閾値を超えた領域の平均」を見るから——裾の一点でなく裾全体の重さを捉えます。 則ゆえ、深い裾(99.9%)の推定には分散減少が不可欠、という構図は収束率の議論そのものです。
⚠️ よくある誤解・落とし穴
- 「VaR は最大損失」ではない:VaR は「 で超えない境界」。それを超える損失(裾の中身)は VaR では分かりません。だから CVaR を併用。
- 「正規仮定で十分」ではない:実際のリターンは裾が重い(ファットテール)。正規 VaR は裾リスクを過小評価しがち。モンテカルロで実分布を反映。
- 「サンプルが多ければ裾も正確」ではない:深い分位点は該当サンプルが少なく不安定。重点サンプリングが要ります。
- 「VaR は劣加法的」ではない:VaR は分散投資でリスクが下がらない(劣加法性を満たさない)ことがある。CVaR は満たす——これも CVaR を使う理由。
- 「評価論をここで展開」ではない:VaR の整合的リスク尺度論・バックテストは金融の本拠(VaR(バリュー・アット・リスク))。ここは生成と分位点推定(境界)。
対応シミュレーション参照
本文の2資産 VaR・CVaR モンテカルロ(default_rng(60)、解析解と一致)。応用はVaR(バリュー・アット・リスク)へ。
関連ノート
- 推定量の信頼区間(前提・分位点推定の誤差)
- 信頼性・稀少事象シミュレーション(次のトピック・深い裾の推定)
- 重点サンプリング(裾を効率的に推定)
- VaR(バリュー・アット・リスク)・CVaR(期待ショートフォール)(金融・リスク尺度の本拠)
- 第9章 応用 目次
- シミュレーション・モンテカルロ法 全体目次