確率統計確率統計
ベータ分布サンプリング; Beta Distribution Sampling

概要
ベータ分布とは以下の式で表現される確率分布。閉区間[0, 1]の連続一様分布に従う\(\alpha+\beta-1\)の確率変数を大きい順に並べたとき、小さい方から\(\alpha\)番目の確率変数は形状パラメータ\(\alpha, \beta\)のベータ分布に従う。

$$f(x)=\frac{x^{\alpha-1} (1-x)^{\beta - 1}} {B (\alpha, \beta)} , \quad 0 \leq x \leq 1 $$ ここで\(B (\alpha, \beta)\)はベータ関数である。ベータ関数は簡単に言えば上式の分子の0から1の積分で、正規化定数として機能している。
ベータ分布

ベータ分布に従う確率変数の生成には形状パラメータ\(\kappa=\alpha, \beta\)、尺度パラメータ\(\theta=1\)の2つのガンマ分布に従う確率変数を\(R_1, R_2\)としたとき、\(\frac{R_1}{R_1+R_2}\)がベータ分布に従うことを利用する。

ソースコード

namespace ExRandom.Continuous {
    public class BetaRandom : Random{
        readonly GammaRandom g1, g2;

        public BetaRandom(MT19937 mt, double alpha = 1, double beta = 1) {
            if(mt == null) {
                throw new ArgumentNullException();
            }

            this.g1 = new GammaRandom(mt, kappa:alpha, theta:1);
            this.g2 = new GammaRandom(mt, kappa:beta, theta:1);
        }

        public override double Next() {
            double r1 = g1.Next(), r2 = g2.Next();

            return r1 / Math.Max(r1 + r2, double.Epsilon);
        }
    }
}

関連項目
メルセンヌ・ツイスタ
各種確率分布サンプリング基本クラス
ガンマ分布サンプリング

ライブラリライブラリ
確率統計確率統計
線形代数線形代数
幾何学幾何学
最適化最適化
微分方程式微分方程式
画像処理画像処理
補間補間
機械学習機械学習
クラスタリングクラスタリング
パズルゲーム・パズル
未分類未分類