我有一个多变量概率密度函数P(x,y,z),我想从中进行采样。通常,我会将numpy.random.choice()用于此类任务,但此函数仅适用于1维概率密度。多变量pdf是否有相同的函数?
答案 0 :(得分:2)
这里可以遵循一些不同的路径。
(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,y给定x,z依次给出y和x。
(3)对于某些特定的发行版,有一些已知的采样方法。例如。对于多元高斯,如果x是来自均值0和同一协方差高斯的样本(即,只是将每个x_i采样为N(0,1)),则y = L x + m具有均值m和协方差S = LL',其中L是S的下三角形Cholesky分解,必须是正定的。
(4)对于许多多变量分布,上述都不适用,并且应用诸如马尔可夫链蒙特卡罗的更复杂的方案。
如果您对此问题有更多说明,可以提供更具体的建议。