【问题标题】:Simulate samples from a joint cumulative distribution function?从联合累积分布函数中模拟样本?
【发布时间】:2012-04-29 19:43:30
【问题描述】:

我有两个独立变量 X 和 Y 的 joint density function。现在我想从这个分布中采样新的 x,y。

我相信我必须做的是找到联合累积分布,然后以某种方式从中抽样。我有点知道如何在 1D 中做到这一点,但我发现很难理解如何在 2D 中做到这一点。

我还使用了matlab函数cumtrapz为上面的pdf找到了cumulative distribution function

为了清楚起见,我想做的是从这个经验分布中抽取随机值 x,y。

有人可以在这里指出正确的方向吗?!

编辑:我有数据值并且我使用 [pdf bins] = hist3([N Y])

然后我将 pdf 标准化并执行

cumulativeDistribution = cumtrapz(pdfNormalize)

是的(对于下面的评论)X,Y 应该是独立的。

【问题讨论】:

  • 什么是联合密度函数?
  • 如果你的变量是独立的,你的联合分布就是边际的乘积。你确定这就是你的意思吗?
  • 您有关节密度的解析公式吗?还是您从样本中估算?你用什么来估计关节?

标签: matlab random distribution probability sampling


【解决方案1】:

如果您知道如何在 1D 中对分布进行采样,那么您可以将其扩展到 2D。创建 X 的边际分布。从中抽取一个样本,例如 X1。然后在您的 2D 分布中修复一个变量 X=X1 并为 Y 采样,即采样 Y from一维分布 fXY(X1, Y).

【讨论】:

【解决方案2】:

假设两个随机变量 X 和 Y 的联合分布,您可以通过对 Y 的所有可能值求和来单独计算 X 的 CDF,即 P(X

同样的方法可以推广到两个以上的随机联合分布的随机变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-21
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 2015-04-27
    • 2012-06-08
    相关资源
    最近更新 更多