matlab - 模拟来自联合累积分布函数的样本?

标签 matlab random distribution probability sampling

我有一个 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/

相关文章:

python - 将单独的 python 包放入同一个命名空间?

matlab - 如何在matlab中获取第一行矩阵?

MATLAB - 为什么 HP+LP=NOTCH?

c++ - 如何像在matlab中一样将实部和虚部放入一个变量中

java - 你如何使用 math.random 生成随机整数?

php - 随 secret 码功能验证失败

python - 如何标准化 scipy 中指数分布的直方图?

objective-c - Objective-C 和 MATLAB/Octave 文件扩展名之间的重叠

random - 使用 JPQL 获取随机行

JavaScript Math.random 正态分布(高斯钟形曲线)?