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

2023年10月17日

【ゆっくり解説】Youtubeはじめました!

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

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

>> 積分区間が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ですから、近似値としては問題ありませんね。

 

Udemyの関連講座

データ分析シリーズ① AI数学-文系でも理解できる!高校から始めるデータ分析、AIのための数学-

データ分析、機械学習に関わる数学に絞り、効率的に学習できるようカリキュラムを構成しました。文系でも理解できるよう丁寧な説明をしています。Pythonエンジニア育成推進協会認定スクールによる高品質な数学コースです。

 

本当にわかる、AI時代の数学【超初心者からの数学入門】

数学アレルギーでも大丈夫/やさしく丁寧な解説/コード無し キーワード:基礎/数学/行列/線形代数/ベクトル/微分/データサイエンス/AI/機械学習/ディープラーニング/データドリブン/人工知能

 

【キカガク流】人工知能・機械学習 脱ブラックボックス講座 – 初級編 –

1000人以上が受講している(株)キカガクの『脱ブラックボックスセミナー』が遂に登場!機械学習の参考書を「閉じてしまった人」への再入門に最適な講座です。微分・線形代数といった数学の基礎からPythonでの実装まで短時間で習得しましょう。