回答:
この方法は非常に単純なので、簡単な言葉で説明します。最初に、サンプリングしたい分布の累積分布関数 を取得します。この関数は、入力として、いくつかの値をとりとなる確率が何であるかがわかります。そう
このような関数の逆の場合、は入力としてpを取り、xを返します。ことを通知Pのが一様に分布しているFを- 1 X U (0 、1 )F X U 〜U (0 、1 )U F - 1 X X -これは任意のものからサンプリングするために使用することができるあなたが知っていれば。この方法は、逆変換サンプリングと呼ばれます。アイデアは非常に単純です:それは一様からのサンプル値に簡単である、あなたには、いくつかのサンプルにしたい場合はそう、値だけ取るとパス経由を取得するの
またはR(正規分布の場合)
U <- runif(1e6)
X <- qnorm(U)
以下のCDFを見て視覚化するには、一般に、軸からの値の確率について軸を見ることで分布を考えます。このサンプリング方法では、反対のことを行い、「確率」から始めて、それらに関連する値を選択するために使用します。離散分布を使用すると、治療からラインとしてへの1かの時点ない場所に基づいており、割り当て値uは、このライン上にある(例えば0があれば0 ≤ U < 0.5または1であれば0.5 ≤ U ≤ 1からサンプリングするためのx U 0)。
残念ながら、すべての関数がその逆を持っているわけではないため、これは常に可能とは限りません。たとえば、この方法を二変量分布で使用することはできません。また、最も効率的な方法である必要はありません、すべての状況でである。多くの場合、より良いアルゴリズムが存在します。
また、F - 1の分布を尋ねます。以来、F - 1 Xの逆数であるFXは、FX(F - 1 X(U))=UとF - 1 X(FX(X))=X、そうです、値は、このような方法HAVEを用いて得られましたXと同じ分布。これは簡単なシミュレーションで確認できます
U <- runif(1e6)
all.equal(pnorm(qnorm(U)), U)
はい、の分布があるXを。
逆変換法の背後にある直感に関する2つの追加ポイントが役立つ場合があります
(1)実際に何を意味するのかを理解するには、ティムの回答のグラフを参照して、分位(逆CDF)関数の理解を助けてください
(2)[わかりやすくするのではなく、混乱を招く場合は、以下を無視してください]
ましょ連続と厳密にCDFの増加と一緒に任意の確率変数(RV)Fを。次いで、F (X )〜UNIF (0 、1 ) 表記上の注意:XはしたがってRV、RVのの関数であるX、F (Xは) RV自体です。
たとえば、あなたがアクセスしていますので、こと、疑問を反転するかどう標準均一を発生したかった、そしてX 1 / θ〜UNIF (0 、1 )。このランダム変数Uを呼び出しましょう。だから、 U = X 1 / θ あなたの質問に背中を来て、あなたは反対のタスクがあります生成するためにXを外にUを。だから、実際に X = U θ
PS。この方法の別名は、確率積分変換、逆変換サンプリング、分位数変換、および一部の情報源では「シミュレーションの基本定理」です。