首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中从多变量概率密度函数中采样

在python中从多变量概率密度函数中采样
EN

Stack Overflow用户
提问于 2018-02-08 09:13:44
回答 1查看 801关注 0票数 2

我有一个多元概率密度函数P(x,y,z),我想从中采样。通常,我会使用numpy.random.choice()来完成这类任务,但这个函数只适用于一维的概率密度。是否存在用于多变量PDF的等效函数?

EN

回答 1

Stack Overflow用户

发布于 2018-02-08 09:49:20

这里有几条不同的路可以走。

(1)如果P(x,y,z)因子为P(x,y,z) = P(x) P(y) P(z) (即x,y和z是独立的),则可以分别对每个因子进行采样。

(2)如果P(x,y,z)具有更一般的因子分解,则可以将需要采样的变量的数量减少到其他变量的条件。例如,如果P(x,y,z) = P(z|x,y) P(y | x) P(x),那么你可以在给定x的情况下采样x,y,在给定y和x的情况下依次采样z。

(3)对于某些特定的分布,有一些已知的抽样方法。例如,对于多元高斯,如果x是均值0和单位协方差高斯的样本(即,仅将每个x_i采样为N(0,1)),则y=L+m具有均值m和协方差S =L L‘,其中L是S的下三角Cholesky分解,它必须是正定的。

(4)对于许多多变量分布,以上都不适用,而采用了更复杂的方案,如马尔可夫链蒙特卡罗。

也许如果你对这个问题说得更多一些,就可以给出更具体的建议。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48675954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档