メモ

Jakarta commons math v1.1にF分布の第2自由度が2以下だとクォンタイル(パーセント点)が求められないバグがあった.nightly buildsの最新版にしてもダメ.


protected double getInitialDomain(double p) {

//return getDenominatorDegreesOfFreedom() /
// (getDenominatorDegreesOfFreedom() - 2.0);

if (getDenominatorDegreesOfFreedom() > 2.0)
return getDenominatorDegreesOfFreedom() /
(getDenominatorDegreesOfFreedom() - 2.0);
else
return getDenominatorDegreesOfFreedom() * Math.sqrt(2.0);
}

public void setDenominatorDegreesOfFreedom(double degreesOfFreedom) {
if (degreesOfFreedom <= 0.0) {
throw new IllegalArgumentException(
"degrees of freedom must be positive.");
}
//this.denominatorDegreesOfFreedom = degreesOfFreedom;
this.denominatorDegreesOfFreedom = new BigDecimal(
String.valueOf(degreesOfFreedom)).setScale(
10, BigDecimal.ROUND_HALF_UP).doubleValue();
}

と修正.これで何故かはわからないけど実用的な範囲では動くようになった.
なんか怪しいから他のライブラリ探そうかな……Javaの良い統計ライブラリってないかなぁ?