【发布时间】:2017-10-12 11:21:47
【问题描述】:
目标
我想从在 java 中指定 correlation coefficient 的双变量均匀分布中采样。
问题
- 我可以使用什么方法来实现这种多元均匀分布?
或
- 是否有现有的包可以实现这样的事情,这样我就不必重新发明轮子了?
到目前为止我所得到的
R 中的包mvtnorm 允许从具有指定相关系数的多元正态分布中采样。我认为理解他们的方法可以帮助我解决问题,方法是对均匀分布做类似的事情,或者重复他们的工作并使用copulas 将多元正态转换为多元均匀(就像我在 R there 中所做的那样)。
源代码是用 Fortran 编写的,我不会说 Fortran!代码基于this paper by Genz and Bretz,但对我来说数学太重了。
【问题讨论】:
-
您可以使用
apache.commons.math来避免重新发明轮子,尽管您没有直接的多元均匀分布;你有例如multivariate normal distribution 和uniform distribution。无论如何,您可以重用代码来构建它。 ... -
... [继续] 您应该扩展
AbstractMultivariateRealDistribution对象,从UniformRealDistribution复制大部分内容。困难的部分是您提到将两者结合起来,但也许您可以翻译您提到的使用 copulas 的 R 代码?
标签: java random statistics distribution