我正在使用 apache-commons-math 来实现逆累积 beta 分布函数,但对于小于 2E-15 的值,它会给出错误的结果。直到值 2E-15,结果都是正确的,并且也通过 R 进行了验证。
Value 2E-15
Result in R = -7.854929
Result in Java = -7.8529
Value 2E-16
Result in R = -8.1385
Result in Java = -35355339.059
任何人都可以建议我任何解决方案
最佳答案
Beta 分布的逆 CDF 的范围为 [0, 1]。由于 R 和 Apache Commons Math 都返回负值,因此在计算如此小的概率的逆 CDF 时显然存在一些数值错误。
您的问题可能没有数值解决方案。相反,将逆 CDF 的所有负输出视为零就足够了。
关于java - Java中具有较小Double值的逆累积贝塔分布函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42657889/