对两个相关随机变量进行抽样的一些技术是什么:
如果它们的概率分布是参数化的(例如,对数正态)
如果它们具有非参数分布。
数据是两个时间序列,我们可以为其计算非零相关系数。我们希望在未来模拟这些数据,假设历史相关性和时间序列 CDF 是恒定的。
对于情况 (2),一维模拟将是构建 CDF 并从中采样。所以我想,我可以构建一个二维 CDF 并做同样的事情。但是,我想知道是否有办法通过使用单独的 1-D CDF 并以某种方式链接选择来接近。
谢谢!
对两个相关随机变量进行抽样的一些技术是什么:
如果它们的概率分布是参数化的(例如,对数正态)
如果它们具有非参数分布。
数据是两个时间序列,我们可以为其计算非零相关系数。我们希望在未来模拟这些数据,假设历史相关性和时间序列 CDF 是恒定的。
对于情况 (2),一维模拟将是构建 CDF 并从中采样。所以我想,我可以构建一个二维 CDF 并做同样的事情。但是,我想知道是否有办法通过使用单独的 1-D CDF 并以某种方式链接选择来接近。
谢谢!
我认为你正在寻找的是一个copula。您有两个边际分布(由参数或经验 cdfs 指定),现在您要指定两者之间的依赖关系。对于双变量情况,有各种选择,但基本配方是相同的。为了便于解释,我将使用高斯 copula。
从具有相关矩阵
绘制
为设置(其中是标准的正常 cdf)。现在,但它们是依赖的。
设置其中是变量的边际 cdf 的(伪)逆。这意味着遵循期望的分布(这一步只是逆变换采样)。
瞧!尝试一些简单的案例,看看边缘直方图和散点图,很有趣。
虽然不能保证这适用于您的特定应用程序(特别是,您可能需要用 at copula 替换 Gaussian copula),但这应该可以帮助您入门。Nelsen (1999), An Introduction to Copulas是关于 copula 建模的一个很好的参考,但在线也有一些很好的介绍。
另一种流行的方法是“三变量归约”,它对和进行采样,以便由随机变量诱导相关性。请注意,这也可以推广到多于 2 维,但比 2-d 情况更复杂。您可能认为您只能获得正相关,但实际上您也可以在生成随机变量时使用和获得负相关,这将导致分布出现负相关。
第三种流行的方法是(NORTA) NORmal To Anything;生成相关的正态变量,通过评估它们各自的 cdf 使它们成为均匀的随机变量,然后使用这些“新的”均匀随机变量作为随机源,从新分布中生成抽取。
除了在另一篇文章中提到的 copula(一整类方法)方法外,您还可以从与 copula 方法在精神上相似的最大耦合分布中进行采样。您指定边际分布和来自最大耦合的样本。这是通过 Pierre Jacob在此处描述的 2 个接受-拒绝步骤来完成的。据推测,这种方法可以扩展到比 2 更高的维度,但实现起来可能更复杂。请注意,最大耦合将导致依赖于边际参数值的相关性,请参阅这篇文章,以在西安对我的问题的回答中找到一个很好的例子。
如果您愿意接受近似(在大多数情况下)样本,那么MCMC 技术也是从多维分布中采样的一种选择。
此外,您可以使用接受-拒绝方法,但通常很难找到一个主要的密度来采样并评估它与所需密度的比率。
这是我能想到的所有其他方法,但可能有一些我错过了。