acpass

モンテカルロ

知識マップ

モデリング用語

ひとことで言うと

乱数を使ったシミュレーションを多数回繰り返し、その結果の平均から確率や期待値などの値を近似的に推定する手法です。標本数を増やすほど精度が上がります。

こんなデータが従う

保険商品の将来キャッシュフローのシミュレーション複雑な確率分布の期待値・分位点の推定オプション価格の数値計算リスク尺度(VaR, TVaRなど)のシミュレーションによる推定解析的に解けない積分の数値近似

解析的に解くのが難しい問題でも、乱数生成とシミュレーションによって近似解を得られる柔軟な手法です。

標本数nを増やすほど推定値が真の値に収束し、誤差の目安となる帯は1/√nで狭くなる推定値θ̂はnを増やすほど真の値に収束(誤差∝1/√n)真の値θn(標本数)

シミュレーション回数nを増やすほど、推定値(累積平均)は真の値に収束し、ばらつきの範囲(誤差)も縮小する。

数式で表すと

θ^=1ng(Xi), 誤差1/n\hat\theta=\tfrac1n\sum g(X_i),\ \text{誤差}\propto 1/\sqrt{n}

乱数で期待値や面積を推定する手法。誤差は 1/n\propto 1/\sqrt{n} で減る。

モンテカルロ法は、求めたい量(期待値、確率、積分値など)を、乱数を使ったシミュレーションを多数回(n回)繰り返した結果の平均で近似する手法です。大数の法則により、シミュレーション回数nを増やすほど標本平均は真の値に収束します。 推定値の標準誤差は σn\dfrac{\sigma}{\sqrt n} のオーダーで小さくなります(σはシミュレーション1回あたりの結果の標準偏差)。これは、精度を10倍上げるには標本数を100倍にする必要があることを意味し、収束は速くないものの次元の高い問題でも適用できるという利点があります。 シミュレーションで使う乱数は、逆関数法(concept: 逆関数法)などの手法で目的の分布に従うように生成します。保険分野では、複雑な保険商品のキャッシュフローや、解析的に解けないリスク尺度の評価にモンテカルロ法が広く使われています。

試験に出る性質

基本原理

乱数によるシミュレーションをn回繰り返し、結果の平均で求めたい量を近似する。

収束

大数の法則によりnを増やすほど真の値に収束する。

標準誤差

σ/n\sigma/\sqrt n のオーダーで縮小する(σは1回のシミュレーション結果の標準偏差)。

必要な乱数生成

逆関数法などで目的の分布に従う乱数を生成する。

利点

解析的に解けない複雑な問題や高次元の問題にも適用できる。

例で見る

1回あたりの標準偏差σ=10のシミュレーションをn=100回行うと、標準誤差は 10/100=110/\sqrt{100}=1。n=10000回に増やすと標準誤差は 10/10000=0.110/\sqrt{10000}=0.1 に縮小する。

つまずきポイント

  • シミュレーション回数を増やせば誤差が線形に減ると誤解する(実際は√nに比例して減る、精度を10倍にするには標本数を100倍必要)
  • 乱数生成の質(疑似乱数の偏りなど)がシミュレーション結果の精度に影響することを見落とす
  • モンテカルロ法の結果を解析解と同じ「正確な値」だと誤解する(あくまで近似値であり標準誤差が伴う)

定着クイズ

モンテカルロ法の標準誤差はシミュレーション回数nに対してどう変化するか?

標準誤差を1/10にするには、シミュレーション回数を何倍にする必要があるか?

モンテカルロ法で乱数を目的の分布に変換する代表的な手法は?

この用語を扱う問題(6