Fisher's Z分布サンプリング; Fisher's Z Distribution Sampling
概要
Fisher's Z分布とは以下の式で表現される確率分布。
$$f(x)=\frac{2 d_1^{d1/2} d_2^{d2/2} }{B(d_1/2, d_2/2)} \frac{exp(d_1 x)}{ (d_1 exp(2x)+d_2)^{(d_1+d_2)/2} } $$
ソースコード
namespace ExRandom.Continuous {
public class FishersZRandom : Random{
readonly SnedecorsFRandom sd;
public FishersZRandom(MT19937 mt, uint d1 = 2, uint d2 = 2) {
if(mt == null) {
throw new ArgumentNullException();
}
this.sd = new SnedecorsFRandom(mt, d1, d2);
}
public override double Next() {
double s;
do {
s = sd.Next();
} while(s <= 0);
return Math.Log(s) * 0.5;
}
}
}
関連項目
メルセンヌ・ツイスタ
各種確率分布サンプリング基本クラス
スネデガーF分布 サンプリング