【问题标题】:how to numerically sample from a joint, discrete, probability distribution function如何从联合、离散、概率分布函数中进行数值采样
【发布时间】:2011-09-02 23:37:06
【问题描述】:

我有一个二维“热图”或 PDF,需要通过随机抽样重新创建。 IE。我有一个显示起始位置的二维概率密度图。我需要以与原始 PDF 相同的概率随机选择起始位置。

为此,我想我需要先找到联合CDF(累积密度函数),然后选择随机均匀数对CDF进行采样。这就是我卡住的地方。

如何以数字方式找到我的 PDF 的联合 CDF?我尝试在两个维度上进行累积求和,但这并没有产生正确的结果。我的统计知识让我失望了。

编辑热图/PDF 是 [x,y,z] 的形式,其中 Z 是每个 x,y 点的强度或概率。

【问题讨论】:

  • 你的热图是什么格式的?您是否有一些函数 p(x, y) 可以为您提供 x,y 处的概率密度?

标签: algorithm statistics probability random-sample


【解决方案1】:

您可以先查看 2D 密度图,然后针对其中的每个 (x,y) 对,通过从 PDF 中查找来找到 z。这将为您提供一个概率为 z 的起点 (x,y)。所以每个起点都有自己的PDF概率。你现在可以做的,是对起点排序,随机选择一个数字并将其映射到某个起点。

例如,假设您有 n 个起点:P1 .. Pn。概率为 p1 .. pn(归一化或加权概率,因此总和为 100%)。假设您选择一个随机值 p,如果 p

【讨论】:

    【解决方案2】:

    Gibbs Sampling 应该可以满足您的需求

    http://en.wikipedia.org/wiki/Gibbs_sampling

    【讨论】:

    • 吉布斯抽样不需要条件分布吗?
    【解决方案3】:

    嗯,正如在this answer 中观察到的那样,对于我来说,我的分布是双变量的并不一定重要。由于我可以对整个事物进行归一化,使其成为真正的 pdf(总表面积分为 1),因此我可以将 MxN 矩阵重新排列为 1xM*N 向量。一旦我有了它,我就可以做一个累积积分(MATLAB 中的 cumtrapz),然后从中采样(使用一个统一的随机数来找到相应的索引值)。

    【讨论】:

      【解决方案4】:

      这也是我想做的!!

      我有一个用于自变量 X 和 Y 的 joint density function。现在我想从这个分布中采样新的 x,y。

      我相信我必须做的是找到联合累积分布,然后以某种方式从中采样。这正是您似乎所做的。

      您说使用“统一随机数来查找相应的索引值”时能否更具体一点?

      仅供参考:X 是卖单的大小,Y 是股票市场的买单大小。

      【讨论】:

      • This MATLAB-function 解决了它!
      猜你喜欢
      • 1970-01-01
      • 2012-04-14
      • 2020-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 2016-06-12
      相关资源
      最近更新 更多