2011-05-26 89 views
6

我有一个2D“热图”或PDF,需要通过随机抽样重新创建。 I.E.我有一个2D概率密度地图显示起始位置。我需要以与原始PDF相同的概率随机选择起始位置。要做到这一点,我想我需要先找到联合CDF(累积密度函数),然后选择随机统一数字来采样CDF。那就是我陷入困境的地方。如何从关节,离散,概率分布函数数值采样

如何在数值上找到我的PDF的联合CDF?我试着在两个维度上做累积和,但这并没有产生正确的结果。我对统计学的了解让我失望。

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

+0

你的热图所用的格式是什么?你有一些函数p(x,y)给你在x,y的概率密度吗? – 2011-05-26 21:59:51

回答

1

嗯,在this answer观察到的,我的情况并不一定重要,我的分布是二元的。因为我可以将整个事物标准化以便它是真实的pdf(总表面积分为1),所以我可以将M×N矩阵重新排列成1xM * N向量。一旦我有了,我可以做一个累积积分(cumtrapz在MATLAB中),然后从中抽样(使用统一的随机数来找到相应的索引值)。

3

您可以先查看二维密度图,并且对于其中的每个(x,y)对,通过查找PDF查找z。这会给你一个概率为z的起点(x,y)。所以每个起点都有自己的PDF概率。你现在可以做的是,为了排序的起点,随机挑选一个数字,并将其映射到某个起点。

例如,假设您有n个起点:P1 .. Pn。用概率p1 .. pn(归一化或加权概率,所以总和为100%)。比方说,你选择一个随机数P,P1挑选如果p < P1,P2挑P1是否< p < P1 + P2,如果P1 + P2 < p < P1 + P2 + P3等挑P3你可以把它看作是一个点P1到PN上的直方图,这与累积分布函数是相同的。

1

这就是我想要做的!

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

我相信我必须做的是找到联合累积分布,然后以某种方式从中进行抽样。这正是你所做的。

当你说你使用“统一的随机数来找到相应的索引值”时,你可能会更具体吗?

仅供参考:X是询价单的尺寸,Y是股票市场中的投标单的尺寸。

+0

[This](http://www.mathworks.com/matlabcentral/fileexchange/35797)MATLAB函数解决了它! – Groot 2012-04-20 07:23:22