我正在用Java编程测试模拟子喷射的pseudoRandom数,我需要计算Chi平方的倒数,所以我有alpha和as you can see here。
我正在阅读的书,使用Excel函数Excel ChiSQ.INV,如下所示:
CHISQ.INV(probability,deg_freedom)
CHISQ.INV(0.025,39) = 58.12005973
< - 这个值是我需要计算的
问题是我正在使用一张表来计算卡平方,但我认为有一些方法可以用计算机计算,我找到了这个类,但我仍然没有得到它的工作原理ChiSquaredDistribution Apache Commons < / p>
因此,目标是使用java或java库计算Chi Squared Inv。
ChiSquaredDistribution x2 = new ChiSquaredDistribution(1, 0.05);
System.out.println(x2.cumulativeProbability(1.96));
System.out.println(x2.getNumericalVariance());
输出:
0.8384866815324579
2.0
答案 0 :(得分:1)
问题是计算具有39个自由度和95%置信水平的卡方函数,因此α为5%。 as you can see here. 这是excel函数:
CHISQ.INV(probability,deg_freedom)
CHISQ.INV(0.025,39) = 58.12005973
为了计算我在java中询问的值,是1-(alpha / 2)= 1-(0.05 / 2)= 0.975
所以在Java中使用Apache Commons Library:
ChiSquaredDistribution x2 = new ChiSquaredDistribution( degreesOfFreedom );
double result = x2.inverseCumulativeProbability(alpha);
ChiSquaredDistribution x2 = new ChiSquaredDistribution(39);
System.out.println( x2.inverseCumulativeProbability(0.975) );
输出:
58.12005973444771
结果似乎与excel函数几乎相同,可能是本书错误(58.1200541)或是四舍五入。