假设我知道分布的pdf,比如f(x)。在R中,如何从此分布中绘制一个随机数。感谢。
答案 0 :(得分:2)
有几种方法。其中一个是Inverse transform sampling。如果您知道任何分布的PDF(x),则可以计算CDF(x)
(积分)。 CDF总是[0,1]。你这样工作:
u
[0,1]。 CDF(x)=u
x
是所需分布的随机数有关详情和R代码http://blog.quantitations.com/tutorial/2012/11/20/sampling-from-an-arbitrary-density/
,请参阅此处答案 1 :(得分:2)
对于大多数发行版而言,你有像(runif或rbeta)这样的函数,让它称之为vanilla。 当你的分布以某种方式与vanilla分布相关联时,事实上你的f(x)图可以完全在vanilla分布图下,你可以使用接受拒绝方法。
http://www.inference.phy.cam.ac.uk/tcs27/talks/sampling.html#rejs