计算t-inverse
我试图用commons-math来计算2尾学生分布的倒数。 我正在使用Excel来比较值,并validation我的结果是否正确。
所以用excel来计算5个自由度和95.45%的TINV
=TINV(0.0455,5)
并得到结果:2.64865
使用普通的math就像这样:
TDistribution t = new TDistribution(5); double value = t.inverseCumulativeProbability(0.9545);
我得到结果:2.08913
我可能显然做错了什么。 我并不是那个精通math的人,但是我需要将一个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