Java 计算t-逆

Java 计算t-逆,java,excel,statistics,apache-commons-math,Java,Excel,Statistics,Apache Commons Math,我试图用commons数学计算一个双尾学生分布的倒数。我正在使用Excel来比较值并验证结果是否正确 因此,使用excel计算5个自由度的TINV,我使用95.45% =TINV(0.0455,5) 结果是:2.64865 像这样使用commons数学: TDistribution t = new TDistribution(5); double value = t.inverseCumulativeProbability(0.9545); 我得到的结果是:2.08913 很明显,我可能做错

我试图用commons数学计算一个双尾学生分布的倒数。我正在使用Excel来比较值并验证结果是否正确

因此,使用excel计算5个自由度的TINV,我使用95.45%

=TINV(0.0455,5)
结果是:2.64865

像这样使用commons数学:

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]

t分布t=新的分布(5);双值=t.逆可重复性概率((1-0.9545)/2)生成正确的结果,但结果为负。我想象,只要它产生负值,我就可以简单地将它翻转为正值。正确吗?我想您需要
t.inverseCumulativeProbability(1-0.9545/2)
t.inverseCumulativeProbability(1-0.9545/2)
返回0.059973,这与TINV@SysHex对不起,我的意思是
t.inverseCumulativeProbability(1-0.0455/2)