- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有人知道用 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/
为什么反 Gamma 函数不产生原始 x 值? 代码 x = 0.2 alpha = 2 u = sp.stats.gamma.cdf(x, alpha) x1 = sp.stats.invgamma
我想使用 CDF 匹配来纠正降水的原始模型预测(但该应用程序相当通用)。 假设下面的 CDF B 是观测到的 CDF(我信任的 CDF),我想计算 CDF A 和 B 之间的差异,以便在给定的一天我可
这些函数(标准正态累积分布函数、正态累积分布函数或误差函数)中的任何一个都可以用 JavaScript 可靠地计算吗? 考虑到 Windows 上缺乏 PECL 可用性,我希望有一个完全客户端的解决方
我在这里有一些旧的 Microsoft Word 文件(可能是 Word 97),并注意到标准的 Unix 文件实用程序将此类文件标识为“CDF”。它实际上更精确,转储详细的元数据,例如: CDF V
我只是在 linux 上尝试 CDF 播放器并比较 same demo在 Windows 上使用 CDF 插件看起来。我注意到了一些奇怪的事情。相同的演示,相同的初始值,但在 Windows 上,相同
我有以下值: Day 1: X11 X12 X13 X14 X15 ... Day 2: X21 X22 X23 X24 X25 ... Day 3: X31 X32 X33 X34 X35 ...
我有以下值: Day 1: X11 X12 X13 X14 X15 ... Day 2: X21 X22 X23 X24 X25 ... Day 3: X31 X32 X33 X34 X35 ...
如果我得到随机样本数据: X=np.random.random(100)*100 我需要获取 CDF = 34% 或其他值的 X_i 值。我现在能想到的唯一方法是使用逆 CDF。我认为百分位数是等效的
我想计算给定 pdf 的逆累积密度函数(逆 cdf)。 pdf 直接作为直方图给出,即 N 个等距分量的向量。 我目前的做法是: cdf = cumsum(pdf); K = 3; %// som
我想在同一个图中绘制多个变量的 CDF 图。变量的长度不同。为了简化细节,我使用以下示例代码: library("ggplot2") a1 df ggplot(df, aes(x, colour
我想画一个看起来像这样的图: 数据在 .csv 文件中给出,我已经将其导入到data 并用作图中的 x。 Y 计算如下: y = np.arange(1, len(data)+1)/len(data)
如何使用 Plotly 在 Pandas DataFrame 中绘制频率分布数据的 CDF 图?假设以下玩具数据 value freq 1 3 2 2 3
我想使用 ggplot 绘制加权 CDF。一些旧的非 SO 讨论(例如 2012 年的 this)表明这是不可能的,但我想我会重新加注。 例如,考虑以下数据: df <- data.frame(x=s
我有2个CDF并且必须找到最大的逐点距离。我创建了直方图并绘制了两者。这些值由随机函数生成,该函数将两个随机数 1-6 相加 100 次,类似于两个骰子。但是,我无法找到绘图上两条线之间的最大距离。
我正在 Java 中开发 CDF(文件万事达卡使用)文件解析器,并且我正在使用找到的 API here 。为了使用这个 API,您需要 jar 文件.. 我不明白我是如何得到这个异常的,因为它应该在
尝试使用 matplotlib 的 hist 函数绘制累积分布函数 (CDF) 时,最后一个点会返回到零。我读到一些帖子解释说这是因为类似直方图的格式,但找不到适合我的情况的解决方案。 这是我的代码:
这个问题已经有答案了: 奥 git _a (1 个回答) 已关闭 9 年前。 我想通过从文本文件读取数据来制作 CCDF 图。 CCDF表示互补累积分布函数。 我尝试搜索CCDF,但我不太了解它。 所
背景 我需要使用已知的累积分布函数 (CDF) 从相当复杂的概率密度函数 (PDF) 中随机采样,并且我正在尝试使用 inverse transform sampling 。这应该很容易做到,因为我有
我正在将代码从 Matlab 转换为 C++,出于某些重要原因,我必须获得均值为 0 且方差为“正态”函数(在 Matlab 中为“norm”)的累积分布函数=1. 在Matlab中的实现是这样的:
我有一个复杂的(非标准)分布函数,我想对其进行采样以使用逆 cdf 技术生成模拟数据点。 为了这个例子,我将考虑高斯分布 var=100 def f(x,a): def g(y):
我是一名优秀的程序员,十分优秀!