1

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

所以使用 excel 计算 5 个自由度和 95.45% 的 TINV 我使用

=TINV(0.0455,5)

并得到结果:2.64865

像这样使用公共数学:

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

我得到结果:2.08913

我可能显然做错了什么。我并不是那么精通数学,但我需要将一个 Excel 工作表公式移植到 Java 以用于一个项目并且被困在这个问题上。

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

4

1 回答 1

2

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

于 2014-02-12T17:43:36.323 回答