拉丁超立方体抽样Latin hypercube sampling
——沂水寒城
拉丁超立方抽样(英语:Latin hypercube sampling,缩写LHS)是一种从多元参数分布中近似随机抽样的方法,属于分层抽样技术,常用于计算机实验或蒙特卡洛积分等。
蒙特卡罗抽样(Monte Carlo)
蒙特卡罗抽样指使用随机数或伪随机数从概率分布中抽样的传统技术。蒙特卡罗术语在二战时诞生,作为模拟和原子弹开发有关的问题的代号。今天,蒙特卡罗技术应用于一系列包含随机行为的复杂问题。诞生了一系列的算法,从不同类型的概率分布中生成随机样本。
蒙特卡罗抽样技术完全是随机的 — 即在输入分布的范围内,样本可以落在任何位置。当然,样本更有可能从高发生概率的分布区域中抽取。在前面所述的累积分布中,每个蒙特卡罗样本使用一个 0 和 1 之间的新的随机数。在足够的迭代之后,蒙特卡罗抽样通过抽样“重建”输入分布。但是,当执行的迭代次数少的时候,会产生聚集的问题。
在本处的插图中,5 个抽取的样本都落在分布的中间。在分布范围之外的值,不作为样本,它们对结果的影响,不包括在模拟输出中。
当分布中包含低概率结果的时候,聚集会变得特别明显,可能会对结果产生大的影响。考虑这些低概率结果的影响是重要的。要这样做,必须对这些结果进行抽样,但是如果概率非常低,少量的蒙特卡罗迭代,可能不能对这些结果抽样足够数量,以准确代表其概率。这个问题导致了分层抽样技术,如在 @RISK 中使用的拉丁超立方体抽样的发展。
拉丁超立方体抽样Latin hypercube sampling (LHS)
拉丁超立方体抽样是抽样技术的最新进展,和蒙特卡罗方法相比,它被设计成通过较少迭代次数的抽样,准确地重建输入分布。拉丁超立方体抽样的关键是对输入概率分布进行分层。分层在累积概率尺度(0 到 1.0)上把累积曲线分成相等的区间。然后,从输入分布的每个区间或“分层”中随机抽取样本。抽样被强制代表每个区间的值,于是,被强制重建输入概率分布。
简单的说就是,假设我们要在n维向量空间里抽取m个样本。拉丁超立方体抽样的步骤是:
(1) 将每一维分成互不重迭的m个区间,使得每个区间有相同的概率 (通常考虑一个均匀分布,这样区间的长度相同)。
(2) 在每一维里的每一个区间中随机的抽取一个点;
(3) 再从每一维里随机抽出(2)中选取的点,将它们组成向量。
在上面的插图中,累积曲线被分成 5 个区间。在抽样时,每个区间都抽取一个样本。把这个和使用蒙特卡罗方法抽取的 5 个聚集的样本比一下。使用拉丁超立方体方法,样本更加准确地反映输入概率分布中值的分布。
在拉丁超立方体抽样中使用的技术是“抽样不替换”。累积分布的分层数目等于执行的迭代次数。在上面的例子中,有 5 次迭代,所以对累积分布有 5 个分层。每个分层都有一个样本被取出。但是,一旦样本从分层抽取之后,这个分层将不再被抽样 — 它的值在样本集中已经有代表了。
特定分层中的抽样是如何发生的?实际上,@RISK 选中一个要抽样的分层,然后从选中的分层中,随机选取数值。
当使用拉丁超立方体技术从多个变量中抽样时,保持变量间的独立性很重要。为一个变量抽样的值,需要独立于为其它变量抽样的值(当然,除非特意希望相关)。独立性的保持通过为每个变量随机选择抽样的区间来实现。在某次迭代中,变量 #1 从分层 #4 抽样,变量 #2 从分层 #22 抽样,以此类推。这样保证了随机性和独立性,避免了变量之间的无意相关。
作为更加高效的抽样方法,拉丁超立方体在抽样效率和运行时间(由于少的迭代次数)方面带来巨大的好处。这些利益在基于 PC 的模拟环境如 @RISK 中特别明显。拉丁超立方体对于输入概率分布中包含低概率结果情况的分析也有帮助。通过强制模拟中的抽样包含偏远事件,拉丁超立方体抽样确保偏远事件在模拟的输出中被准确地代表。
当低概率结果非常重要的时候,只模拟低概率事件对输出分布的影响,运行这样的分析也很有帮助。在这种情况下,模型只对低概率结果的发生进行模拟 — 设定为 100% 的概率。这样做可以把低概率结果隔离开,直接研究其产生的结果。