1 一様ランダム抽出の概要

1.1 定義と基本概念

1.1.1 等確率と等密度

一様ランダム抽出とは、候補集合(離散)または領域(連続)に対して、選ばれる可能性が対象の定義に沿って「同じ」になるようにサンプルを作る手法である。離散の場合は、各候補が同じ確率で選ばれることが条件となる。連続の場合は、区間や体積などの測度で見たときに密度が一定となり、位置に依存しない確からしさを実現する。

1.1.2 サンプル空間と事象

確率論の枠組みでは、試行の結果全体をサンプル空間として定め、その中の部分集合を事象とする。離散抽出では、要素そのものが結果に対応し、事象は「ある要素の集合」として表される。連続抽出では、結果は数値(あるいは点)で表され、事象は領域(例:区間の部分集合)として扱われる。等確率・等密度の条件は、これらの事象に対する確率の割り当てが一定の規則で決まることとして表現できる。

1.2 一様分布の種類

1.2.1 離散一様分布

離散一様分布では、有限個の候補を \(n\) 個とし、各要素の確率が \(1/n\) に等しい状況を指す。例えば、1からnまでの番号から1つを選ぶ場合、各番号は同じ確率を持つ。離散一様抽出はこの分布に一致する形で定義されるため、実装では「どの要素に対応するか」を乱数出力から確実に写像する必要がある。

1.2.2 連続一様分布

連続一様分布は、実数区間 \([a,b]\) などの領域で確率密度が一定になる分布である。密度一定とは、区間内のどの部分を切り出しても、その長さ(または体積)に比例して確率が増えることを意味する。たとえば長さが等しい部分区間は同じ確率を持つため、区間の中の位置によって選ばれやすさが変わらない。

2 離散における一様ランダム抽出

2.1 等確率での選択方法

2.1.1 番号付けと乱数インデック

離散抽出を確実に等確率にする基本は、候補集合に一意な番号を付け、乱数を整数インデックスへ変換する点にある。候補を \(n\) 個とし、乱数が生成できるなら、まず「0からn-1」の範囲に対応する整数を作り、それを番号として候補を引く。ここで重要なのは、インデックス化の変換が偏りを生まないことであり、剰余演算やスケーリングの細部が結果を左右する。

2.1.1.1 端点・範囲の取り扱い(0始まり・1始まり)

番号付けには0始まりと1始まりがあり、どちらを採用してもよいが、変換式の整合が必要である。たとえば 0始まりならインデックスは \(\{0,\dots,n-1\}\) を取り、1始まりなら \(\{1,\dots,n\}\) に対応させる。乱数が「下端を含み上端を含まない」形で得られる実装(多くの浮動小数点生成器で見られる)では、境界条件を誤ると最上位値が出現しない、あるいは余分な値が混入するなどの偏りが生じる。したがって、どの範囲を含む乱数が提供されているかを確認し、その性質に合わせて変換することが望ましい。

2.1.2 重複あり/重複なし

重複ありの一様抽出では、同じ要素を複数回選ぶことを許し、各選択は独立同分布として進める。各回の確率は同じであり、再抽出するたびに当選確率は \(1/n\) のままである。重複なしの場合は、サンプリングを「要素を一度だけ使用する」形に変えるため、2回目以降の確率は変化する。とはいえ、対象とする組み合わせの選び方が等確率になるよう設計すれば、一様性は保てる。実務では、どちらの条件が必要かを先に確定し、それに対応したアルゴリズムを選ぶことが重要になる。

2.2 一様性が崩れる典型

2.2.1 バイアス(剰余の偏り)

一様性が損なわれる典型は、剰余の取り方が乱数の有限状態に対して整合しない場合である。たとえば、ある乱数が等確率に生成する整数の範囲が \(0\) から \(M-1\) で、目標が \(n\) 個にするために \(X \bmod n\) を取るとする。すると剰余クラスの出現回数が完全に等しくならないことがあり、その結果、特定のインデックスがわずかに多く選ばれる。偏りの大きさは \(M\) と \(n\) の割り算の余りに依存し、特に不注意な変換では無視できないことがある。対策としては、受理拒否再試行)などで「剰余クラスを同数にする」考え方を用いる。

2.2.2 不適切な乱数変換

別の崩れ方は、スケーリングや切り捨て・四捨五入の扱いが不適切な場合である。連続乱数を整数化する際に \(\lfloor U \cdot n \rfloor\) のような変換を行うとき、\(U\) が厳密にどの範囲を取り得るか(上端を含むかどうか)が重要になる。上端を含む場合に単純な式を使うと、最大の整数が過剰に出たり、逆に到達不能になったりする。浮動小数点誤差で境界近くの値が丸められることもあり、設計時には生成器の仕様と変換式の境界条件を突き合わせる必要がある。

3 連続における一様ランダム抽出

3.1 区間からの一様サンプリング

3.1.1 線形変換による区間調整

連続での一様抽出は、標準区間 \([0,1)\) の一様乱数 \(U\) から、目的の区間 \([a,b)\) へ写像することで実現される。一般に \(X=a+(b-a)U\) のような線形変換を用いれば、密度が一定になる形で区間が調整される。ここで \((b-a)\) は長さの尺度であり、変換のヤコビアンが一定となるため、等密度の性質が保たれる。区間が閉区間 \([a,b]\) を含むかどうかは数値実装の境界処理に影響するため、理論上の設定と実装仕様を一致させることが必要である。

3.1.1.1 端点を含む/含まないの数学的整理

連続一様分布では端点は確率ゼロのため、理想化された確率論では \([a,b]\) と \([a,b)\) の違いが確率値に直接表れない。ただし実装は離散的な有限精度であり、上端を含むかどうかが出現しうる値の集合に反映される。たとえば浮動小数点生成で上端が厳密に排除されているなら、変換後も上端が出現しない設計になりやすい。反対に、端点を含む生成器を仮定しないまま変換式だけ閉区間を想定すると、境界近傍の挙動が理論とずれて統計的な偏りとして観測されることがある。このため、理論の端点条件を実装可能な形に落とし込み、包含・排除契約を明確にすることが望ましい。

3.2 乱数生成からの実装手順

3.2.1 一様乱数の正規化

多くの実装では、まず内部で得られる整数乱数を実数へ変換する。整数が0から \(M-1\) の範囲で等確率に出るなら、標準化として \(U=X/M\) のような割り算により \([0,1)\) へ写す。ここで \(M\) の選び方により上端の到達可否が変わり得るため、正規化の式は生成器の仕様と整合させる必要がある。さらに、目的に応じて後段の変換(区間スケーリング、逆関数適用など)の前提となるため、正規化の出力が理想の一様分布に近い形であることが土台になる。

3.2.2 浮動小数点誤差と境界処理

浮動小数点では丸めによって、理論上の連続値が有限集合に制限される。線形変換では、誤差がそのまま原点からの距離に比例して現れるため、境界近傍の扱いが結果に影響する。たとえば、計算誤差により想定外の値が作られると、条件分岐や後段の割り当てでまったく別の分岐に入る場合がある。対策として、範囲チェック、クリップ(上限・下限の補正)、あるいは仕様として「上端を返さない」ことを前提に変換式を固定するなどの手順が用いられる。

3.3 一様性の検証

3.3.1 ヒストグラムによる直観確認

一様性の初歩的な確認として、サンプル値を区間に分割し、度数を棒グラフにする方法がある。理想では各ビンの高さが概ね等しくなるため、明確な偏りや周期的なパターンが見えれば、変換式や乱数生成器に問題がある可能性が高い。もっとも、ヒストグラムは視覚的であり、サンプル数が少ないと偶然の揺らぎにより誤判断しやすい。直観確認は原因探索の入口として位置づけ、結論は統計的手法で裏付けることが望ましい。

3.3.2 統計検定と適合度の考え方

一様性を数値的に評価するには適合度検定が用いられる。代表的には、区間分割に基づく分布一致度の検定や、経験分布と理論分布の差を測る検定がある。重要なのは、検定が返す p 値が「サンプルが十分に多いか」「検定の前提(独立性など)が満たされるか」に依存する点である。疑似乱数では独立性が厳密には成り立たないため、検定結果を機械的に信じるのではなく、目的の精度要件と併せて判断する必要がある。

4 応用と関連概念

4.1 モンテカルロ法での役割

4.1.1 平均推定・積分近似

モンテカルロ法では、期待値や積分をサンプリングで近似する。一般に、対象量を確率変数の期待値として書き換え、そこで必要となる入力分布を満たす乱数を生成する。等差数列や格子の代わりに、一様ランダム抽出を用いて点を打ち、その平均から積分値を推定する形が典型である。区間や領域の形状が複雑な場合でも、適切な変換や領域切り出しを設計すれば利用できる。

4.1.2 分散低減との関係

同じ目標精度を得るために、推定量のばらつきを減らす工夫は重要である。等間隔サンプリングが必ずしも使えないときでも、一様性を保ったまま分散を抑える手法が考案されている。たとえば、反対称点の組み合わせや層化抽出などは、平均推定のばらつきを小さくする方向に働くことがある。これらは「一様ランダム抽出そのもの」ではない場合もあるが、基盤としての一様生成を前提に設計される点で関連が深い。

4.2 目的に応じたサンプリング戦略

4.2.1 抽出後の変換(再重み付け)

モンテカルロの枠では、最初に一様に近い入力を作り、それを目的の分布へ変換することがある。その際、変換によりサンプルの寄与が偏るため、重み付けを導入して推定量が正しくなるよう調整する。再重み付けは、変換が難しい分布を扱うときに特に有効になるが、重みの分散が大きいと推定が不安定になる。したがって、一様抽出の導入点から、どの程度重みのばらつきが生じるかを見積もる姿勢が求められる。

4.2.2 逆変換法との接点

目的分布の累積分布関数が扱いやすい場合、逆変換法が利用される。これは、0から1の一様乱数 \(U\) に対して、目的分布の分位関数(逆累積分布)を適用することで、目的分布に従う乱数を得る方法である。等密度の性質は、分位変換の理論的な整合として現れる。実装上は、逆関数が解析的に求まらない場合に数値手法を用いる必要があり、計算コストと精度のバランスが課題になる。

4.3 乱数・疑似乱数の前提

4.3.1 疑似乱数と一様性の限界

コンピュータで用いられる乱数は多くの場合疑似乱数であり、周期性や内部状態の構造により、理想の独立同分布から逸脱する。とはいえ、適切に設計された生成器は統計的テストに合格し、実務では十分な一様性を提供する。限界は「全ての尺度で完全に一様」とは言えない点にある。特定の次元で相関が強い、ある範囲での偏りが顕在化する、といった問題は理論的に排除できないため、用途に応じた評価が必要になる。

4.3.2 実験設計と再現性(シード)

実験で同じ結果を再現するには、乱数生成器に初期状態(シード)を与えるのが一般的である。シードが固定されれば、生成される疑似乱数列も同一系列として再現される。研究や検証では、モデル化の前提やパラメータ設定を追跡できることが重要であり、シード管理は実務上の基本要件となる。さらに、比較実験では同じシードを用いるか、独立なシードを割り当てるかを事前に取り決め、差が乱数由来かどうかを判断しやすくすることが望ましい。