我正在编写一个模拟各种随机游走(具有不同分布)的程序。在每个时间步,我需要从随机游走的分布随机生成的二维步距和角度。我希望有人可以检查我对如何生成这些随机数的理解。
据我了解,我可以按如下方式使用逆变换采样:
如果f(x)是我们随机游走的pdf,它具有非均匀分布,y是来自均匀分布的随机数。 然后,如果我们让f(x)= y并求解找到x,那么我们从非均匀分布中得到一个随机数。
这是一个可行的解决方案吗?
答案 0 :(得分:2)
不完全。需要反转的函数不是f(x),即pdf,而是F(x)= P(X <= x)= int _ { - inf} ^ {x} f(t)dt,cdf。好的是F是单调的,所以实际上有一个独特的逆(不像f)。
根据给定的分布,还有多种其他方法可以生成随机数。例如,如果cdf F难以计算或反转,如果f易于计算,rejection sampling可能是一个不错的选择。
答案 1 :(得分:0)
你很亲密,但并不完全。每个概率密度函数(pdf)具有相应的累积密度函数(cdf)。关于CDF(x)的一个重要特性是它们总是在0和1之间。因为在0和1之间绘制一个随机数相对容易,我们可以使用它来向后分析。因此,在您的问题中将单词pdf更改为CDF会使语句正确无误。
另外,为了使计算有意义,您需要找到一个易于计算的CDF逆。一种方法是将多项式近似拟合到CDF并找到该函数的逆。有更先进的技术来模拟具有混乱分布的概率分布。有关详细信息,请参阅此book chapter。