4.3 对分布进行采样
由上节的内容可知,蒙特卡洛方法涉及两个基本的步骤:采样和求平均值,本节就讨论几种不同采样方法。
首先我们定义什么是采样,考虑一个定义域空间以及一个概率密度函数,其中,满足:
(式1)
采样的过程是这样一个算法,它能够从对应的随机变量中产生一系列随机数,使对于任意满足:
(式2)
实际上我们不能直接从产生随机数,在计算机程序中这个过程必须要求首先具有某些基础随机数的一个序列。我们可以借助计算机操作系统提供的函数来产生一个均匀分布的随机数,又称为伪随机数(pseudorandom numbers), 定义这些随机数的值为,它们可以用来作为采样所需的基础随机数。
逆变换算法
逆变换算法是1947年由乌拉姆提出的,它的定义如下:设是连续随机变量,其累计分布函数为,如果随机变量是一个上的均匀分布,则随机变量具有和一样的概率分布。
逆变换算法的直观解释可以由图(1)得出,图中表示的随机变量是[0,1]上的均匀分布,由式[ref eq:mc-continuous-pdf]可知,随机变量中的值落于区间的概率,所以上的均匀分布被映射到满足的随机变量上。
图(1):逆变换算法将一个满足[0,1]上的均匀分布的随机变量,通过映射到满足概率分布的随机变量上
以下我们以一个离散分布的例子来进一步解释逆向变换算法的过程,设一个离散随机变量具有4个可能的值,其对应的概率分别为:和 ,这些概率满足:, 该随机变量对应的概率密度函数如图(2)所示。
图(2):一个具有4个输入事件的离散随机变量的概率密度分布,每个随机数的概率为
为了使用逆变换算法从一个任意分布中进行采样,首先需要求出其对应的累积分布函数 ,对于连续随机变量,是在全定义域上的积分,对于离散随机变量,可以使用前个的值的和作为的值,如图(3)所示。注意,为了满足所有随机事件的概率之和为1,最右边的条的高度应该为1。
图(3):从离散随机变量的概率密度函数构建概率分布函数的过程,上均匀分布的随机数被按照概率分布映射到离散随机变量上
在图(3)中,一个标准的上的均匀分布的随机变量分布在纵坐标上,通过在水平方向上延伸可以和具有概率的第个输入事件相交,因为是服从均匀分布的,所以具有更大概率的