逆関数法(ぎゃくかんすうほう、英: inversion method, inverse transform method)とは、累積分布関数の逆関数を用いて、標準一様分布に従う確率変数から、所望の分布に従う確率変数を生成させる方法[1][2][3]。逆関数サンプリング法(ぎゃくかんすうサンプリングほう、英: inverse transform sampling)とも呼ばれる。計算機シミュレーションにおいて、一様分布に従う乱数から、所望の乱数を生成させるのに用いられる。
方法累積分布関数の逆関数 F-1(y) の定義。一般に F(x) は逆関数を持つとは限らないが、右連続かつ単調非減少であり、F-1(y)=inf{x: F(x)≥y} で定義することができる。
X を生成させたい確率分布に従う確率変数とし、 F(x) =Pr{X ≤ x}をその累積分布関数とする。y=F(x) が連続な単調増加関数であれば、逆関数 F-1(y) が存在する。U を[0,1)上の一様分布に従う確率変数とすると、 X := F − 1 ( U ) {\displaystyle X:=F^{-1}(U)}
は累積分布関数 F(x) をもつ確率分布に従う確率変数となる。実際、これは P r { F − 1 ( U ) ≤ x } = P r { U ≤ F ( x ) } = F ( x ) {\displaystyle \mathrm {Pr} \{F^{-1}(U)\leq x\}=\mathrm {Pr} \{U\leq F(x)\}=F(x)}
であることから確認できる。
一般に F(x) は右連続な単調非減少関数であり、通常の意味での逆関数が存在するとは限らないが、その逆関数 F-1(y) を F − 1 ( y ) := inf { x 。 F ( x ) ≥ y } , 0 ≤ y ≤ 1 {\displaystyle F^{-1}(y):=\inf {\{x|F(x)\geq y\}},\quad 0\leq y\leq 1}
で定義すれば、同様な結果が得られる[1][2]。このように、一様分布に従う確率変数 U と累積分布関数の逆関数 F−1(y) から所望の分布に従う確率変数 X=F−1(U) を生成させる方法を逆関数法という。逆関数法は、原理的には連続分布、離散分布に適用可能であるが、必ずしも逆関数が容易にも求まるとは限らず、また高速な乱数生成が得られるとは限らない[2]。 期待値を μ > 0 とする指数分布の累積分布関数 F ( x ) = 1 − e − x / μ {\displaystyle F(x)=1-e^{-x/\mu }} に対し、逆関数は F − 1 ( y ) = − μ ln ( 1 − y ) {\displaystyle F^{-1}(y)=-\mu \ln {(1-y)}} であり、 X = − μ ln ( 1 − U ) {\displaystyle X=-\mu \ln {(1-U)}} となる。1 − U も標準一様分布に従うため、高速化のために1 − U を U で置き換えた X = − μ ln ( U ) {\displaystyle X=-\mu \ln {(U)}} を使うことができる。この場合、U=0での処理に注意する必要がある。 尺度母数
例
指数分布
コーシー分布
に対し、その逆関数は F − 1 ( y ) = σ tan π ( y − 1 2 ) {\displaystyle F^{-1}(y)=\sigma \tan {\pi \left(y-{\frac {1}{2}}\right)}}
であり、 X = σ tan π ( U − 1 2 ) {\displaystyle X=\sigma \tan {\pi \left(U-{\frac {1}{2}}\right)}}
となる。 離散分布に従う確率変数 X についても、累積分布関数の逆関数をF−1(y)=inf{x | F(x) ≥ y}と定義することで、逆関数法を適用できる[2]。値 x1, x2, … ,を取る確率が p1, p2, … , である離散分布において、 ∑ i = 1 k − 1 p i < y ≤ ∑ i = 1 k p i {\displaystyle \sum _{i=1}^{k-1}{p_{i}}<y\leq \sum _{i=1}^{k}{p_{i}}} が満たされるならば、 F − 1 ( y ) = x k {\displaystyle F^{-1}(y)=x_{k}} であるから、 X = x k , i f ∑ i = 1 k − 1 p i < U ≤ ∑ i = 1 k p i {\displaystyle X=x_{k},\quad \mathrm {if} \,\,\sum _{i=1}^{k-1}{p_{i}}<U\leq \sum _{i=1}^{k}{p_{i}}}
離散分布