1. 概要

このチュートリアルでは、一様分布を正規分布に変換する方法を学習します。

最初に、2つのディストリビューションの違いについて簡単に要約します。

次に、アルゴリズムであるBox-Muller変換を調べて、一様分布からのサンプルを通じて正規分布の疑似乱数を生成します。

このチュートリアルの最後に、正規分布の値を出力する疑似ランダムジェネレーターを作成する方法を説明します。

2. 均一性と正常性

この議論の最初のポイントは、均一分布と正規分布がどのように異なるかを理解することです。 これにより、一方を他方に、またはその逆に変換するために必要なものを同時に理解できます。

2.1. 一様分布

一様分布は、確率密度関数の形状が独特であるため、矩形分布の名前も付けられています。

極値を含む場合も含まない場合もある任意の連続区間内で、一様分布を定義できます。 これは、極値の有無にかかわらず、すべての可能な任意の小さな間隔が同じ発生確率を持つ分布です。 曲線の下の面積を計算することにより、これが適切な確率のdesity関数であることを確認できます。

2.2. 正規分布

代わりに、正規分布は、次の確率密度関数によって特徴付けられる分布です。

ここで、はそれぞれ、分布の標準偏差と平均を示します。 これは、およびに対応するチャートです。

一様分布の対応する値がそうであったように、正規分布に含まれる値は等しくありそうにないことがわかります。 これは2つの理由によるものです。

最初の理由は、確率がゼロでない均一に分布した値はすべて有限区間に含まれ、正規分布の値は含まれないことです。 正規分布で確率がゼロ以外の値がドメイン全体を占めることに注意してください。 これは一様分布には当てはまらないため、有限区間を別の区間に変換するには、ある種の変換が必要になります。

2番目の理由は、離散一様分布のすべての値が同じ確率で描画されることです。 代わりに、離散正規分布の場合、任意の2つの値は互いに異なる対応する確率を持ちます。 もちろん、の場合を除いて。

3. ボックスミュラー変換

3.1. アルゴリズムの定義

したがって、一様分布から引き出された値を正規分布の値にマッピングするアルゴリズムを特定できます。 ここで説明するアルゴリズムは、ボックスミュラー変換です。 このアルゴリズムは、実際に実装するのが最も簡単なアルゴリズムです。これは、正規分布の数値の疑似乱数生成に適しています。

アルゴリズムは非常に単純です。 まず、一様分布から抽出された、同じ長さの2つのランダムサンプルから始めます。 次に、それらから2つの正規分布確率変数とを生成します。 それらの値は次のとおりです。

3.2. 経験的テスト

プロシージャが正規分布確率変数を許可するかどうかを経験的にテストできます。 これは、具体的には、一様分布から抽出された2変量分布のヒストグラムをプロットすることによって行われます。 次に、対応する変換された分布のヒストグラムと比較できます。

サイズ10,000の2つのランダムサンプルを使用して上記のグラフを作成しました。 対応する分布は、ガウス分布の典型的なベル形状を持っていることがわかります。

3.3. 式の導出

デカルト平面に変数を配置することを想像すると、上記の2つの式を導出する方法を理解できます。 そこでは、それらのそれぞれが点の2つの座標の1つに対応します。

次に、原点からの角度と距離を特定して、極座標で点を表すことができます。 これは、2変量正規分布がに対応するノルムを持っているためです。 代わりに、極座標の角度はに対応します。

最後に、これにより、元のデカルトシステムの2つの変数を、次のように正規分布変数にマッピングできます。

最後に、これらの式が上記の式とどのように同等であるかを簡単に確認できます。

3.4. ボックスミュラー法の限界

このアルゴリズムを使用して、正規分布の値の比較的短いシーケンスを生成すると、このアルゴリズムはうまく機能します。 実際、十分に短いシーケンスの場合、その数のほとんどは、分布の平均の3つの標準偏差内に含まれると予想されます。 ただし、シーケンスが大きい場合は、値がその間隔の外側にあると予想されます

10進数の表現の精度が有限であるコンピューターでは、一様分布から数値を引き出すことができるゼロにどれだけ近いかには限界があります。 これは、倍精度または浮動小数点精度のどちらを使用するかによって異なりますが、それでも、連続一様分布から描画する能力に対してゼロ以外の解像度を意味します。

結果として、 Box-Mullerアルゴリズムを使用して正規分布から可能なすべての値を表すことはできませんが、平均に十分に近い値のみを表すことができます。 経験則として、32ビットの精度を使用する場合、分布のテールは標準偏差でを切り捨てます。 代わりに64ビット精度を使用すると、生成された値が標準偏差内に配置されることが期待できます。

3.5. ボックスミュラー法の代替法

あるいは、Box-Muller の制限を取り除く必要がある場合は、他のより複雑なアルゴリズムを使用できます。

1つ目はジッグラトアルゴリズムで、棄却サンプリング原理 eを使用し、ランダムシードとルックアップテーブルに基づいて正規分布値を生成します。

2つ目はRatio-of-Uniformsで、メモリ内のストレージにいくつかの倍精度値を要求しますが、それ以外の点では計算が高速で単純です。

3つ目は、正規分布の累積分布関数に対する逆関数を計算することです。 これは、正規分布の分位関数の計算に対応します。これは、標準正規分布の場合、プロビット関数と一致します。

4. 結論

このチュートリアルでは、通常どおりに分散される疑似乱数変数を生成する方法を学習しました。

これは、2変量の一様分布からサンプリングし、それらにBox-Muller変換を適用することによって行いました。