acpass

逆関数法

知識マップ

モデリング公式

ひとことで言うと

一様分布U(0,1)からの乱数Uに、目的の分布の累積分布関数(CDF)の逆関数を適用すると、目的の分布に従う乱数を生成できるという方法です。

こんなデータが従う

指数分布に従う乱数の生成保険のシミュレーションで損害額の乱数を発生させるモンテカルロ法(concept: モンテカルロ)でのシミュレーション乱数生成ロジスティック分布など解析的に逆関数が求まる分布の乱数生成離散分布(カテゴリカル分布)の乱数生成への応用

コンピュータが直接生成できるのは一様分布の乱数Uだけなので、それを目的の分布に変換するための基本的な手法です。

累積分布関数F(x)のグラフ。一様乱数Uをy軸に取り、横にたどってF(x)に当たった点のxがF⁻¹(U)U~一様乱数 → 横にたどりF(x)と交わる点のxを読むUX=F⁻¹(U)xF(x)

累積分布関数F(x)のグラフ上で、一様乱数U=0.7に対応するxの値を逆関数X=F⁻¹(U)で求める。

数式で表すと

X=F1(U), Exp:X=1λln(1U)X=F^{-1}(U),\ \text{Exp}:X=-\tfrac1\lambda\ln(1-U)

一様乱数 UU を分布関数の逆に通して任意分布の乱数を生成。X=F1(U)X=F^{-1}(U)

逆関数法は、目的の分布の累積分布関数(CDF)を F(x)F(x) とするとき、一様分布 UU(0,1)U\sim U(0,1) からの乱数Uに対して X=F1(U)X=F^{-1}(U) とすると、Xが目的の分布に従うことを利用した乱数生成法です。 この方法が成り立つ理由は、CDFの性質 F(X)U(0,1)F(X)\sim U(0,1)(確率積分変換)の逆を使っているためです。CDFが厳密に単調増加で逆関数 F1F^{-1} が解析的に求まる分布(指数分布、ロジスティック分布、一様分布など)では、この方法が直接的に使えます。 例えば指数分布(レートλ)の場合、F(x)=1eλxF(x)=1-e^{-\lambda x} なので F1(u)=ln(1u)λF^{-1}(u)=-\dfrac{\ln(1-u)}{\lambda} となります。逆関数が解析的に求まらない分布(正規分布など)には、ボックス=ミュラー法など別の手法が使われます。逆関数法はモンテカルロ法(concept: モンテカルロ)でのシミュレーションの基礎技術の一つです。

試験に出る性質

原理

X=F1(U), UU(0,1)X=F^{-1}(U),\ U\sim U(0,1) のとき、Xは累積分布関数Fに従う。

根拠

確率積分変換 F(X)U(0,1)F(X)\sim U(0,1) の逆を利用。

適用条件

CDFが単調増加で逆関数F⁻¹が解析的に求まること。

指数分布の例

F1(u)=ln(1u)/λF^{-1}(u)=-\ln(1-u)/\lambda

逆関数が求まらない場合

ボックス=ミュラー法など別の手法を使う(例: 正規分布)。

例で見る

レートλ=2の指数分布から乱数を生成する場合、U=0.7のとき X=ln(10.7)/2=ln(0.3)/20.602X=-\ln(1-0.7)/2=-\ln(0.3)/2\approx0.602

つまずきポイント

  • 逆関数法をどんな分布にも使える万能な方法だと誤解する(逆関数が解析的に求まらない場合は別の手法が必要)
  • F⁻¹(u)の式でu=0やu=1付近の境界の扱い(対数が発散する等)を見落とす
  • 生成されるXの分布をUの分布(一様分布)と取り違える(Xは目的の分布に従う、Uが一様分布)

定着クイズ

逆関数法の基本原理は?

レートλ=4の指数分布でU=0.5のとき生成されるXは?

逆関数法が直接使えるのはどのような分布か?

この用語を扱う問題(8