2

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

所以使用excel计算TDIST(x, df, t) x = 5.968191467, df = 8, tail t = 2

=TDIST(ABS(5.968191467),8,2)

并得到结果:0.000335084

像这样使用公共数学:

TDistribution tDistribution = new TDistribution(8);
System.out.println(BigDecimal.valueOf(tDistribution.density(5.968191467)));

我得到结果:0.00018738010608336254

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

4

2 回答 2

1

要在 Excel 中复制您的公式,您可以使用 CDF:

2*(1.0 - tDistribution.cumulativeProbability(5.968191467))
于 2015-07-26T11:13:19.063 回答
0

一般 x 的正确公式是:

2*(1.0 - tDistribution.cumulativeProbability(Math.abs(x)))

(感谢龙一郎)。不要忘记加上绝对值,因为Excel中2个自由度的TDIST是一个对称公式,即

TDIST(-x,df,2) = TDIST(x,df,2)

并且 ryuchiro 之一不适用于负 x。还要检查docsthis

于 2015-11-04T17:54:32.787 回答