ディリクレ分布とは?
ディリクレ分布は、確率ベクトル (x1,…,xK)(各成分が0以上で合計が1)の分布です。この空間は単体(simplex)と呼ばれます。
- α(alpha)は「擬似カウント」のように解釈でき、相対比が平均ベクトルを決めます。
- α0 = Σα_i を集中度として表示します。α0が大きいほど平均付近に集中し、α0が小さいほどばらつきが大きくなります。
- α_i < 1 を含むと、角/辺(境界)に寄りやすくなり、スパースな確率ベクトルが出やすいです。
- K=2 は特別ケースで、
x1 ~ Beta(α1,α2)になります(本ツールはBeta重ね描きと導線を用意しています)。
ユースケース例:カテゴリ確率の事前分布(ベイズ)、トピック割合、混合比(mixture weights)、確率っぽいテストデータの作成。個人情報の入力は不要です。
プリセット
用途が伝わるプリセットを選んでください(即時に再生成されます。適用後に微調整もできます)。
ヒント:Kが大きい場合は、共有URLではなく profile JSON で保存/復元すると安全・簡単です。
ジェネレーター
パラメータ化を選び、乱数を生成して、平均・周辺分布・診断を確認できます。
成分ごとの統計
| 成分 | 理論平均 | サンプル平均 | 理論分散 | サンプル分散 |
|---|
サンプルプレビュー(先頭20行)
profile JSON(設定の保存/復元)
共有URLは設定のみです。Kが大きい場合は、profile JSON で保存/復元するとURLが長くならず便利です。
注意:共有するprofileに機密ラベル(顧客名など)を入れないでください。
このツールの使い方
合計が 1 になる確率ベクトルや配分比率を作りたいときに使います。
使い方(3ステップ)
- まずは
K=3など小さい次元と分かりやすい preset から始めます。 - 生成後に理論平均、各成分の周辺分布、行プレビューをまとめて確認します。
- 1つの
αか集中度だけを動かし、平均の変化と集中の変化を分けて見ます。
結果の読み方
各行は確率ベクトルです。平均は各成分の期待シェア、集中度はその平均の周りにどれだけ集まるかを表します。合計が常に 1 なので、1成分が増えると他成分の余地は小さくなります。
境界条件で確認したい点
- どれかの
α_i<1なら、角や辺に近い疎なベクトルが増えやすくなります。 - 丸め付きエクスポートでは、表示上は合計 1 から少しずれることがあります。
K=2では Beta 分布が対応する特別な場合です。
よくある質問
なぜ成分どうしが負に相関するのですか?
全成分の合計が 1 に固定されているため、1つが増えると少なくともどれかが減りやすくなるからです。
なぜ角に張り付くようなサンプルが出るのですか?
どれかの α が 1 未満、または全体の集中度が小さいと、単体の境界付近に密度が寄るためです。
丸めると合計 1 でなくなるのはなぜですか?
内部のサンプルは合計 1 ですが、表示や出力で丸めると見かけ上ずれることがあります。
Beta 分布とはどう違いますか?
Dirichlet 分布は複数成分の確率ベクトル用で、Beta 分布はその 2 成分版を 1 成分で見たものです。
最初に何をすればよいですか?
まず低次元の基準ケースを作り、その後は 1 つの α か集中度だけを動かしてください。
関連ツール
- 分布(子ハブ)分布ツールと乱数診断をまとめて探せます。
- 分布サンプラー主要な分布をまとめてサンプリングできます。
- ベータ分布 乱数ジェネレーターK=2 のディリクレはベータ分布です。0〜1 の確率値の生成に向いています。
- ランダムJSONジェネレーターJSONテストデータ(配列/NDJSON)を生成できます。
- ランダムCSVジェネレーターCSV形式のテストデータを生成できます。
- 乱数テスト乱数の偏りを簡単に確認できます。
- 確率・シミュレーション関連トピックを学びながら探索できます。