当前位置: 代码迷 >> java >> 使用Apache Commons库计算TDIST
  详细解决方案

使用Apache Commons库计算TDIST

热度:35   发布时间:2023-07-16 17:41:36.0

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

因此,使用excel计算TDIST(x,df,t),其中x = 5.968191467,df = 8,尾t = 2

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

并得到结果:0.000335084

像这样使用Common Math:

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

我得到结果:0.00018738010608336254

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

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

2*(1.0 - tDistribution.cumulativeProbability(5.968191467))

一般x的正确公式是:

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

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

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

ryuchiro的其中一个不适用于负x。 还检查或 。

  相关解决方案