我正在尝试使用commons-math计算2尾学生分布的逆。我正在使用Excel来比较值并验证我的结果是否正确。

因此,我使用Excel来计算自由度为5和95.45%的TINV

=TINV(0.0455,5)


并得到结果:2.66485

像这样使用Common Math:

TDistribution t = new TDistribution(5);
double value = t.inverseCumulativeProbability(0.9545);


我得到结果:2.08913

我可能明显做错了。我不是很精通数学,但是我需要将Excel工作表公式移植到Java的项目中,并陷入其中。

我应该使用什么来获得与TINV值完全相同的结果?我想念什么。

最佳答案

MS文档[1]表示TINV返回两个尾值。我很确定Commons Math返回的是单尾值。为了使Commons Math与Excel达成共识,请将尾部质量切成两半,即

t.inverseCumulativeProbability (1 - tail_mass/2);


[1] http://office.microsoft.com/en-us/excel-help/tinv-function-HP010335663.aspx

09-11 19:15