逆関数法

逆関数法の概念図。F(x) を確率変数 X の従う確率分布の累積分布関数とし、U を標準一様分布に従う確率変数とする。このとき、確率変数 F-1(U)X と同じ確率分布に従う。

逆関数法(ぎゃくかんすうほう、: 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{Xx}をその累積分布関数とする。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 − UU で置き換えた

X = μ ln ( U ) {\displaystyle X=-\mu \ln {(U)}}

を使うことができる。この場合、U=0での処理に注意する必要がある。

コーシー分布

尺度母数(英語版)σ > 0 とするコーシー分布の累積分布関数

F ( x ) = 1 2 + 1 π arctan x σ {\displaystyle F(x)={\frac {1}{2}}+{\frac {1}{\pi }}\arctan {\frac {x}{\sigma }}}

に対し、その逆関数は

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}}}

となる。但し、この方法は X の取りうる値が多いと大小関係の評価時間がかかり、高速化には不向きである。

一覧

逆関数が陽に求まり、逆関数法が直接適用できる連続分布として、以下の例がある[4]

分布 F ( x ) {\displaystyle F(x)} X = F 1 ( U ) {\displaystyle X=F^{-1}(U)}
指数分布
(平均値:μ>0
1 exp ( x μ ) , x 0 {\displaystyle 1-\exp {\left(-{\frac {x}{\mu }}\right)},\quad x\geq 0} μ ln ( 1 U ) {\displaystyle -\mu \ln {(1-U)}}
ワイブル分布
(尺度母数:η>0、形状母数:β>0
1 exp ( ( x η ) β ) , x 0 {\displaystyle 1-\exp {\left(-\left({\frac {x}{\eta }}\right)^{\beta }\right)},\quad x\geq 0} η ( ( ln ( 1 U ) ) 1 / β {\displaystyle \eta ((-\ln {(1-U)})^{1/\beta }}
ガンベル分布
(尺度母数:η>0、位置母数:−∞<μ<+∞
exp ( exp ( ( x μ η ) ) ) , < x < + {\displaystyle \exp {\left(-\exp {\left(-\left({\frac {x-\mu }{\eta }}\right)\right)}\right)},\quad -\infty <x<+\infty } μ η ln ( ln U ) {\displaystyle \mu -\eta \ln {(-\ln {U})}}
コーシー分布
(尺度母数:η>0
1 2 + 1 π arctan x η , < x < + {\displaystyle {\frac {1}{2}}+{\frac {1}{\pi }}\arctan {\frac {x}{\eta }},\quad -\infty <x<+\infty } η tan π ( U 1 2 ) {\displaystyle \eta \tan {\pi \left(U-{\frac {1}{2}}\right)}}
ロジスティック分布
(尺度母数:η>0、位置母数:−∞<μ<+∞
1 1 + exp ( x μ η ) , < x < + {\displaystyle {\frac {1}{1+\exp {\left(-{\frac {x-\mu }{\eta }}\right)}}},\quad -\infty <x<+\infty } μ + η ln ( U 1 U ) {\displaystyle \mu +\eta \ln {\left({\frac {U}{1-U}}\right)}}
パレート分布
(尺度母数:b >0、形状母数:a >0
1 ( b x ) a , x b {\displaystyle 1-\left({\frac {b}{x}}\right)^{a},\quad x\geq b} b ( 1 U ) 1 / a {\displaystyle {\frac {b}{(1-U)^{1/a}}}}

積分や逆関数を求めるのが困難な場合

逆関数サンプリング法では与えられた確率分布の累積分布関数とその逆関数を計算する必要がある。それらの関数の解析解が既知である場合は、単純なプログラムで与えられた分布に従う擬似乱数を生成することができる。しかしこれらを解析的に求めるのは困難な場合もある。

求根アルゴリズムを使用する方法

確率密度関数を数値積分して累積分布関数の F(x) を求め、F(x) = u は F(x) - u = 0 の事なので求根アルゴリズムニュートン法など)で x を求めてサンプリングする方法もある。F(x) - u の導関数は P(x) なので、それを求根アルゴリズムでは使用できる。

区分的線形累積分布関数を使用する方法

確率密度関数から区分的線形累積分布関数を作り、そこから求める方法もある[5]

同時確率分布の場合

条件付き確率の定義 P(A, B) = P(B | A) P(A) を使い、単変量サンプリング問題に分割し、A → B と順番にサンプリングする方法もある。ただし、問題によっては、マルコフ連鎖モンテカルロ法などの他のサンプリング法を使用した方が良い場合もある。

正規分布の場合

正規分布に従う擬似乱数の生成法としては、ボックス=ミュラー法などが知られる。正規分布の分位関数は解析的に求められないが、分位関数の多項式近似を用いた逆関数法でも十分に精度よく正規分布に従う擬似乱数を生成することができ、実際にR言語では正規分布に従う擬似乱数の生成に逆関数サンプリング法が使われている[6]。計算が高速な手法としてはジッグラト法(英語版)がある。

出典

[脚注の使い方]
  1. ^ a b Luc Devroye (1986), II.2
  2. ^ a b c d 伏見 (1989), 第2章
  3. ^ 四辻 (2010), 第2章
  4. ^ 四辻 (2010), 第3章
  5. ^ 累積分布関数とその逆関数のノンパラメトリック推定 - MATLAB & Simulink Example - MathWorks 日本
  6. ^ R: Random Number Generation

参考文献

  • Luc Devroye (1986). Non-Uniform Random Variate Generation. Springer-Verlag. ISBN 978-3540963059 
  • 伏見正則『乱数』東京大学出版会〈UP応用数学選書〉、1989年。ISBN 4-13-064072-0。 
  • 四辻哲章『計算機シミュレーションのための確率分布乱数生成法』プレアデス出版、2010年。ISBN 978-4903814353。 

関連項目

離散単変量で
有限台
離散単変量で
無限台
  • ベータ負二項(英語版)
  • ボレル(英語版)
  • コンウェイ–マクスウェル–ポワソン(英語版)
  • 離散位相型(英語版)
  • ドラポルト(英語版)
  • 拡張負二項(英語版)
  • ガウス–クズミン
  • 幾何
  • 対数(英語版)
  • 負の二項
  • 放物フラクタル(英語版)
  • ポワソン
  • スケラム(英語版)
  • ユール–サイモン(英語版)
  • ゼータ(英語版)
連続単変量で
有界区間に台を持つ
  • 逆正弦(英語版)
  • ARGUS(英語版)
  • バルディング–ニコルス(英語版)
  • ベイツ(英語版)
  • ベータ
  • beta rectangular(英語版)
  • アーウィン–ホール(英語版)
  • クマラスワミー(英語版)
  • ロジット-正規(英語版)
  • 非中心ベータ(英語版)
  • raised cosine(英語版)
  • reciprocal(英語版)
  • 三角
  • U-quadratic(英語版)
  • 一様
  • ウィグナー半円
連続単変量で
半無限区間に台を持つ
  • ベニーニ(英語版)
  • ベンクタンダー第一種(英語版)
  • ベンクタンダー第二種(英語版)
  • 第2種ベータ
  • Burr(英語版)
  • カイ二乗
  • カイ(英語版)
  • Dagum(英語版)
  • デービス(英語版)
  • 指数-対数(英語版)
  • アーラン
  • 指数
  • F
  • folded normal(英語版)
  • Flory–Schulz(英語版)
  • フレシェ
  • ガンマ
  • gamma/Gompertz(英語版)
  • 一般逆ガウス(英語版)
  • Gompertz(英語版)
  • half-logistic(英語版)
  • half-normal(英語版)
  • Hotelling's T-squared(英語版)
  • 超アーラン(英語版)
  • 超指数(英語版)
  • hypoexponential(英語版)
  • 逆カイ二乗(英語版)
    • scaled inverse chi-squared(英語版)
  • 逆ガウス
  • 逆ガンマ
  • コルモゴロフ
  • レヴィ
  • 対数コーシー
  • 対数ラプラス(英語版)
  • 対数ロジスティック(英語版)
  • 対数正規
  • ロマックス(英語版)
  • 行列指数(英語版)
  • マクスウェル–ボルツマン
  • マクスウェル–ユットナー(英語版)
  • ミッタク-レフラー(英語版)
  • 仲上(英語版)
  • 非心カイ二乗
  • パレート
  • 位相型(英語版)
  • poly-Weibull(英語版)
  • レイリー
  • relativistic Breit–Wigner(英語版)
  • ライス(英語版)
  • shifted Gompertz(英語版)
  • 切断正規
  • タイプ2ガンベル(英語版)
  • ワイブル
    • 離散ワイブル(英語版)
  • ウィルクスのラムダ(英語版)
連続単変量で
実数直線全体に台を持つ
連続単変量で
タイプの変わる台を持つ
  • 一般極値
  • 一般パレート(英語版)
  • マルチェンコ–パストゥール(英語版)
  • q-指数(英語版)
  • q-ガウス
  • q-ワイブル(英語版)
  • shifted log-logistic(英語版)
  • トゥーキーのラムダ(英語版)
混連続-離散単変量
  • rectified Gaussian(英語版)
多変量 (結合)
【離散】
エウェンズ(英語版)
多項
ディリクレ多項(英語版)
負多項(英語版)
【連続】
ディリクレ
一般ディリクレ(英語版)
多変量正規
多変量安定(英語版)
多変量 t(英語版)
正規逆ガンマ(英語版)
正規ガンマ(英語版)
行列値
逆行列ガンマ(英語版)
逆ウィッシャート(英語版)
行列正規(英語版)
行列 t(英語版)
行列ガンマ(英語版)
正規逆ウィッシャート(英語版)
正規ウィッシャート(英語版)
ウィッシャート
方向
【単変量 (円周) 方向
円周一様(英語版)
単変数フォン・ミーゼス
wrapped 正規(英語版)
wrapped コーシー(英語版)
wrapped 指数(英語版)
wrapped 非対称ラプラス(英語版)
wrapped レヴィ(英語版)
【二変量 (球面)】
ケント(英語版)
【二変量 (トロイダル)】
二変数フォン・ミーゼス(英語版)
【多変量】
フォン・ミーゼス–フィッシャー(英語版)
ビンガム(英語版)
退化特異
  • 円周(英語版)
  • 混合ポワソン(英語版)
  • 楕円(英語版)
  • 指数
  • 自然指数(英語版)
  • 位置尺度(英語版)
  • 最大エントロピー(英語版)
  • 混合(英語版)
  • ピアソン(英語版)
  • トウィーディ(英語版)
  • wrapped(英語版)
サンプリング法(英語版)
  • 一覧記事 一覧(英語版)
  • カテゴリ カテゴリ