java - Java中具有较小Double值的逆累积贝塔分布函数

标签 java inverse apache-commons-math beta-distribution

我正在使用 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/

相关文章:

python - 几何对称操作

java - 如何在 Java 中正确使用 Apache 公共(public)数学库中的 ZipfDistribution?

java - 无法使用 JavaSE YAJSW 启动 IBM WebSphere MQ 客户端

java - 如何在 spring mvc 中运行测试

java - SQLite 数据库不向数据库添加信息并且不返回 Java 中的错误

java - Java 中是否有 anova.lm() 的等效函数?

Java- Commons.Math BrentSolver 返回 NoBracketingException。这是一个错误吗?

java - Lucene可以返回带有行号的搜索结果吗?

mysql - 我如何选择此查询的逆?

python - 反转原始字典的键和值