问题描述
我正在尝试使用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值完全相同的结果?
1楼
要在Excel中复制公式,可以使用CDF:
2*(1.0 - tDistribution.cumulativeProbability(5.968191467))
2楼
一般x的正确公式是:
2*(1.0 - tDistribution.cumulativeProbability(Math.abs(x)))
(感谢ryuichiro)。 不要忘记添加绝对值,因为在Excel中2自由度的TDIST是一个对称公式,即
TDIST(-x,df,2) = TDIST(x,df,2)
ryuchiro的其中一个不适用于负x。 还检查或 。