無限区間のモンテカルロ積分は被積分関数の選び方が重要である理由

2024年5月19日

モンテカルロ積分は被積分関数と確率密度関数を逆にしても同じ結果

モンテカルロ積分を式で書くとこうでした。

>> 積分区間が1でないモンテカルロ積分の計算方法をわかりやすく解説

 

f(x)が被積分関数、p(x)が確率密度関数ですが、これは逆にしても同じ結果が得られます!

どういうことでしょうか?

 

前回はf(x)を被積分関数、p(x)を確率分布関数としていましたが、図で表すとこういうことです。

 

つまり、積分したい関数(被積分関数)がf(x)で、xが取る確率p(x)は一様分布としました。

これを逆転させてみましょう。

xが取る確率はf(x)に従うものとし、被積分関数は一様分布とするのです。

 

xが取る確率がf(x)に従うということは、aとbの中間点付近のデータは沢山あって、そこから端に行くに従って少なくなるような数字の羅列になるということです。

上図ではデータxの数量の密度を縦線の間隔で示しています。

一方で被積分関数はaからbの間でだけ1になり、その他の区間では0になるような一様分布にします。

 

標準正規分布の積分で試してみる

どちらのやり方でも同じ結果になります。

試しに、両方のやり方で標準正規分布関数を0から2までの区間で積分してみましょう。

 

まずf(x)を被積分関数である標準正規分布N(0,1)p(x)を0から2までの一様分布とすると、次のように計算できます。

10,000回試行しています。

 

一方、f(x)を0から2の区間だけ1、他の区間は0を取る一様分布p(x)標準正規分布N(0,1)とすると、次のように計算できます。

 

このように計算結果はほぼ同じになります。

 

無限区間のモンテカルロ積分は被積分関数の選び方が重要

無限区間の一様分布関数は作れない

何てことのないことに見えますが、これにより無限区間の積分ができるようになります。

なぜなら、2つめのやり方でしか無限区間の積分はできないからです。

 

1つめのやり方だとどんな問題が出てくるか試してみましょう。

同じ標準正規分布で、2から無限大までの区間で積分することを考えます。

まずはxが2から無限大まで一様に分布する関数を作ってみましょう。

下図において、aが2bが∞の関数を作るということですが、もうここでアウトです。

 

長方形の面積を1にしながら、幅を無限大にすることはできないのです。

ですので、xの一様分布を作れません。

 

被積分関数と確率密度関数を入れ替えれば解決

2つめのやり方でやってみましょう。

標準正規分布N(0,1)は、2から無限大まで続く分布があります。(非常に小さい確率ですが)

 

ですので、これをp(x)として使えます。

そしてf(x)を2から無限大で1を取り、それ以外では0を取るような関数とすれば良いでしょう。

Excelで計算すると、次のようになります。

 

実はこの正解はExcel関数で求めることができて、約0.02275です。

=1-NORM.DIST(2,0,1,TRUE)

>> エクセルを使って正規分布の【疑似乱数】を生成する方法を具体例で実演!

 

0.0228ですから、近似値としては問題ありませんね。