gpt4 book ai didi

java - 用 Java 计算多元正态 CDF

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:18:18 25 4
gpt4 key购买 nike

有人知道用 Java 计算多元正态 (MVN) CDF 的可靠、准确的库吗?我正在寻找类似 MATLAB's mvncdf function 的内容.我需要能够处理多达 10 个或更多的维度。大多数统计/数学库没有此功能。能够计算对数概率是一个优势。

来自 this post ,似乎没有提到其他一些语言的免费实现。虽然直接的 Java 实现会很震撼,但我会接受不需要许可证的其他语言的实现(例如,不是 MATLAB 或 IMSL),并且可以从 Java 轻松调用,开销最小。

(这个问题是 post on StackExchange math 的导数,我试图计算正常随机变量排序的概率......如果您有兴趣尝试使用其他数学方法直接解决问题,请请检查一下。)

最佳答案

在做了一些额外的研究之后,似乎以下是最合理的方法。

多元正态 CDF 计算起来并不简单(尤其是对于大维度),并且已经有多篇关于该主题的学术论文。 Alan Genz 教授有一堆计算各种多元密度和 CDF 的 Fortran-77 子程序,可在他的页面上找到:http://www.math.wsu.edu/faculty/genz/software/software.html

正如您从其中一些代码中看到的那样,用另一种语言重新实现并不是一件容易的事,这可能就是为什么除非有人为此付费,否则它还没有完成的原因。许多数学/数值编程都是在研究级别用 Fortran 语言完成的,所以这是大多数最好的代码所在的地方。

因此,为了获得最佳结果,最好直接使用 JNI 或 JNA 调用( native 编译的)Fortran 子例程。 JNA 似乎是最容易实现的,遵循如下指令:http://www.javaforge.com/wiki/66061 .使用它和其他一些引用资料,我实现了 Java-JNA-Fortran 链接,以便能够调用 MVNEXP(预期值)和 MVNDST (cdf) 子例程。您可以在此处查看代码:

还要指出:对于某些双变量分布和其他您在公共(public)数学中找不到的东西,确实存在原生 Java 代码;它改编自上面的来源:http://www.iro.umontreal.ca/~simardr/ssj/indexe.html .这是我直到现在才发现的一个非常好的数学库。

关于java - 用 Java 计算多元正态 CDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14178759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com