我正在尝试使用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