java - 逆正态累积分布函数转换

标签 java c#

我们使用 Extreme Optimization ( http://www.extremeoptimization.com ) 中的 Extreme Numerics 库作为我们的计算内核。

// portfolio risk is inverse normal cumulative distribution function
double risk = NormalDistribution.InverseDistributionFunction(
  _riskProbabilityLevel, 
  mean, 
  stdev);

问题是现在我们正在从 C# 转向 Java,我对 Java 不太了解,但我的任务是重写这个特定的函数。

我有要测试的值(value)观:

RiskProbabilityLevel = 0.02
Mean                 = 0.06618
Standard Dev         = 0.057196166520267355

Risk                 = 0.051286461995869864

但是在查看math3.distribution.NormalDistribution库中的各种函数时,我找不到可能等效的函数。

任何指导或帮助将不胜感激。 谢谢。

最佳答案

我认为你可以使用this图书馆。它称为apache commons.math3。它很受欢迎。来自 http://www.extremeoptimization.com 提供的文档我认为您可以使用以下代码:

import org.apache.commons.math3.distribution.NormalDistribution;

public class TestProbabilites {

    public static void main(String[] args) {
        double riskProbabilityLevel = 0.02D;
        double mean = 0.06618D;
        double standardDev = 0.057196166520267355D;
        double expectedRisk = 0.051286461995869864D;

        NormalDistribution distribution = new NormalDistribution(mean, standardDev);
        double outcomeRisk = distribution.inverseCumulativeProbability(riskProbabilityLevel);
    }
}

但是您必须记住使用 MavenGradle 或其他一些依赖项将 apache.commons.math3 库添加到您的项目中经理。

希望这有帮助。

关于java - 逆正态累积分布函数转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38593721/

相关文章:

Java:BufferedReader readLine() 中的 IO 异常有什么用?

c# - 更新查询从 .net 代码返回 0 行。从 SQL Developer 返回 1 行

c# - ThrowException 在当前上下文中不存在

c# - 使用 PCL 的跨平台项目中平台特定功能的项目架构

java - 应用程序内存行为

java - java实例数组不需要初始化数组大小吗?

java - 使用 Selenium 在测试自动化期间检查元素时,某些网页中的元素 "id"会发生变化(非静态)。遇到这种情况该如何处理呢?

c# - 为什么路径信息路由在 ASP.NET MVC 示例中不起作用?

c# - 自定义数据表输出

java - Java中,连接mysql,Class.forName是什么意思?