我有一个 joint density function对于两个自变量 X 和 Y。我现在想从这个分布中采样新的 x,y。
我相信我必须做的是找到联合累积分布,然后以某种方式 sample 从中。我有点知道如何在一维中做到这一点,但我发现很难理解如何在二维中做到这一点。
我还使用了 matlab 函数 cumtrapz
找到 cumulative distribution function对于上述pdf。
为了清楚起见,我想要做的是从这个经验分布中采样随机值 x,y。
有人可以在这里指出我正确的方向吗?!
编辑:我有数据值,我使用
[pdf bins] = hist3([N Y])
然后我规范化pdf并做
累积分布 = cumtrapz(pdfNormalize)
是的(对于下面的评论)X,Y 假设是独立的。
最佳答案
如果您知道如何在 1D 中对分布进行采样,那么您可以将其扩展到 2D。创建 X 的边际分布。从中抽取一个样本,比如 X1。然后在您的二维分布中修复一个变量 X=X1 并为 Y 采样,即从一维分布 fXY(X1, Y) 中采样 Y。
关于matlab - 模拟来自联合累积分布函数的样本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10208667/