確率統計確率統計
Johnson's SB分布サンプリング; Johnson's SB Distribution Sampling

概要
Johnson's SB分布とは以下の式で表現される確率分布。

$$f(x)=\frac{\delta}{\lambda \sqrt{2 \pi} z (1-z)} exp \left( -\frac{1}{2} \left(\gamma + \delta \log \frac{z}{1-z} \right)^2 \right), \quad z \equiv \frac{x-\eta}{\lambda} ,\quad \eta \leq x \leq \eta+\lambda $$

Johnson's SB分布

ソースコード

namespace ExRandom.Continuous {
    public class JohnsonsSBRandom : Random{
        readonly MT19937 mt;
        readonly double delta, lambda, gamma, eta;

        public JohnsonsSBRandom(MT19937 mt, double delta = 1, double lambda = 1, double gamma = 0, double eta = 0) {
            if(mt == null) {
                throw new ArgumentNullException();
            }

            if(!(delta > 0) || !(lambda > 0) || Double.IsNaN(gamma) || Double.IsNaN(eta)) {
                throw new ArgumentException();
            }

            this.mt = mt;
            this.delta = delta;
            this.lambda = lambda;
            this.gamma = gamma;
            this.eta = eta;
        }

        public override double Next() {
            double u = mt.NextDouble_OpenInterval01(), inv_erf_u = ErrorFuntion.Probit(u);
            double x = Math.Exp((inv_erf_u - gamma) / delta);

            return lambda * x / (1 + x) + eta;
        }
    }
}

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

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