「大人の教養・知識・気付き」を伸ばすブログ

一流の大人(ビジネスマン、政治家、リーダー…)として知っておきたい、教養・社会動向を意外なところから取り上げ学ぶことで“気付く力”を伸ばすブログです。データ分析・語学に力点を置いています。 →現在、コンサルタントの雛になるべく、少しずつ勉強中です(※2024年1月21日改訂)。

MENU

ファイナンス練習(2021年09月14日)

 業務でC#を用いることになったので、最近勉強していなくて朧気になってきた知識をReviseする意味でも、以下の書籍を読みながらC#で実装してみる。今回はP.202-205まで。

7. Monte Carloシミュレーション

7.5 Monte Carloシミュレーションの精度と乱数の数

 シミュレーションにおける乱数の数との関係性を触れる。
 一般に積分の総和への近似により、Monte Carlo法によるオプション価格の計算は生成する乱数の数をnとして一般に


\begin{aligned}
C_n =\displaystyle{\frac{1}{n}\sum_{i=1}^{n}h(X_i)}
\end{aligned}

と書ける。ここでh(x)ペイオフ関数、\{X_i\}は独立で同一の分布に従う確率変数列とする。
 ここで、m=E\left[h(X_i) \right], \sigma^2=V\left[h(X_i) \right]とおけば


\begin{aligned}
E\left[C_n \right]=m, V\left[C_n \right]=\displaystyle{\frac{\sigma^2}{n}}
\end{aligned}

である。したがって中心極限定理から、充分大きなnに対して


\begin{aligned}
S_n=\displaystyle{\frac{C_n-m}{\sigma/\sqrt{n}}}\sim N(0,1)
\end{aligned}

が成り立つ。
 このとき、100\alpha\% (0\lt\alpha\lt1)以上の精度で誤差を100\beta\%(0\lt\beta\lt1)以内に抑えるためにnをいくつにすればよいだろうか。
 その求めたいn\hat{n}とすれば、S_n\sim N(0,1)であるから、それは


\begin{aligned}
P\left(\left\{|C_n-m|\leq\beta \right\}\right)&=P\left(\left\{|S_n|\leq \displaystyle{\frac{\beta}{\sigma}\sqrt{n}} \right\}\right)\\
&=\Phi\left(\displaystyle{\frac{\beta}{\sigma}\sqrt{n}}\right)-\Phi\left(-\displaystyle{\frac{\beta}{\sigma}\sqrt{n}}\right)\\
&=2\Phi\left(\displaystyle{\frac{\beta}{\sigma}\sqrt{n}}\right)-1\geq \alpha
\end{aligned}

を満たす最小のnである。ここで\Phi(\cdot)は標準正規分布関数である。したがって、


\begin{aligned}
\hat{n} =\left\lfloor{\left\{\displaystyle{\frac{\sigma}{\beta}}\Phi^{-1}\left(\displaystyle{\frac{1+\alpha}{2}}\right)\right\}^2}\right\rfloor
\end{aligned}

である。ここで実数xに対して\lfloor{x}\rfloorxを超えるすべて整数の中で最小のものを表す。ここから明らかなように、Monte Carlo法では乱数の数=試行回数nに対して求めたい解の誤差は\displaystyle{\frac{1}{\sqrt{n}}}のオーダーで収束する。

プライバシーポリシー お問い合わせ