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

一流の大人(ビジネスマン、政治家、リーダー…)として知っておきたい、教養・社会動向を意外なところから取り上げ学ぶことで“気付く力”を伸ばすブログです。

MENU

金融工学でのモンテカルロ法(03/N):一様分布と一様乱数

 今回から、金融工学におけるシミュレーションについて学んでいく。テキストとして以下を使う。今回はP.19まで。

 モンテカルロ法

  • 問題に沿った(同時)分布に従う(多変量)乱数列の生成
  • その乱数列を使った計算

の2つの部分に分けて考えられる。乱数列の生成は更に

  1. .一様分布に従う乱数列\{u_1,u_2,\cdots,u_n\}の生成
  2. .それを元にした必要な同時分布に従う乱数列\{\boldsymbol{x}_1,\boldsymbol{x}_2,\cdots,\boldsymbol{x}_n\}の生成

に分けられる。

3. 一様分布と一様乱数

3.1 標準一様分布

 標準一様分布U(0,1)は、その分布関数および確率密度関数


{\displaystyle 
F_U(x)=\begin{eqnarray}
  \left\{
    \begin{array}{l}
     0,& x\leq0\\
     x,& 0\leq x \lt1\\
     1,& 1\leq x
    \end{array}
  \right.
\end{eqnarray}
}

および


{\displaystyle 
\begin{eqnarray}
  f_U(x)=\left\{
    \begin{array}{l}
     0,& x\leq0, 1\leq x\\
     1,& 0\lt x \lt1
    \end{array}
  \right.
\end{eqnarray}
}

であるような確率分布である。
 その平均\mu_{U}と分散{\sigma_U}^2はそれぞれ


\begin{aligned}
\mu_{U} &= \int_{-\infty}^{\infty}xf_U(x)dx = \int_{0}^{1} x dx=\displaystyle{\frac{1}{2}},\\
{\sigma_U}^2&=\int_{-\infty}^{\infty}(x-\mu_U)^2f_U(x)dx =\int_{0}^{1}(x-\displaystyle{\frac{1}{2}})^2 x dx =\displaystyle{\frac{1}{12}}
\end{aligned}

である。

3.2 擬似乱数

 通常、モンテカルロ法では、乱数をメモリの有限性を制約として漸化式を用いて次のように生成する:

  1. コンピュータの中に初期状態s_1を用意する
  2. ある関数fを用いて以下の漸化式で状態を順次移る:


\begin{aligned}
s_{n+1}=f(s_n)
\end{aligned}

  1. 各々の状態s_nから数を1つずつ出力して、それらを並べて数列\{x_1,x_2,\cdots,x_n\}を得る。

3.3 メルセンヌ・ツイスター

 準乱数を生成するためのアルゴリズムとして、メルセンヌ・ツイスターが多用されている。
 1文字を32ビットとし、32個の横に並んだ箱で表す。これを縦に624個重ねる。ただし一番上の624番目については、左端の1ビットだけを用いる。したがって32*623+1=19.937ビットを用いる。こうした箱を用いることで、取り得る状態の集合\{s_n\}の要素の個数はすべてが0である場合を除いて2^{19937}-1である。
 この624段の箱から次の1段をつくる関数


\begin{aligned}
s_{n+1}=f(s_n)
\end{aligned}

を上手に選ぶことで最大周期2^{19937}-1の状態の列を得、更に書く状態から一番下の行を出力して、周期2^{19937}-1擬似乱数列を生成した。

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