原文towardsdatascience.com/the-poisson-bootstrap-d0fd045e28c3?sourcecollection_archive---------4-----------------------#2024-08-12在大数据集上的自助法https://medium.com/davidclarance?sourcepost_page---byline--d0fd045e28c3--------------------------------https://towardsdatascience.com/?sourcepost_page---byline--d0fd045e28c3-------------------------------- David Clarance·发表于 Towards Data Science ·阅读时间 10 分钟·2024 年 8 月 12 日–https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/362b9f899eae79f29c0c2de80db3e201.png自助法是一个有用的技术可以基于收集到的样本推断总体的统计特征比如均值、十分位数、置信区间等。在大规模实现时它可能很困难尤其是在处理流数据的场景下尤为复杂。在学习如何大规模应用自助法时我遇到了一篇谷歌博客几乎已有十年历史介绍了泊松自助法。从那时起我发现了一篇更早的论文Hanley 和 MacGibbon2006阐述了这一技术的一个版本。本文的目的是确保我已经充分理解了这个逻辑并能向别人解释清楚。我们将首先介绍经典的自助法以激发对泊松自助法的兴趣。经典自助法假设我们想计算一所学校学生的平均年龄。我们可以反复抽取 100 个学生的样本计算它们的均值并进行存储。然后我们可以计算这些样本均值的最终均值。这个最终均值就是对总体均值的估计。在实际操作中通常无法从一个总体中多次抽样。这就是引入自助法Bootstrapping的原因。自助法在某种程度上模拟了这一过程。我们不是从总体中抽样而是从我们收集的一个样本中进行有放回抽样。这些伪样本被称为重抽样resamples。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/b44df36fb0cc158f61146e63ccec36a4.png结果证明这非常有效。它比闭式解法计算代价高但不需要对总体分布做出强假设。而且它比重复收集样本便宜。在实际应用中它在工业界使用非常广泛因为在许多情况下要么闭式解法不存在要么很难得出正确结果——例如在推断总体的分位数时。为什么自助法有效自助法给人的感觉是错的。或者至少当我第一次学习它时我并不觉得它是对的。为什么一个样本能包含这么多信息呢从你抽取的原始样本中进行有放回的抽样只是让你模拟从总体中抽样的一种方式。你抽取的原始样本平均来看像是你总体的一个代表。所以当你从中重新抽样时本质上是在从同一个概率分布中抽取样本。如果恰好抽到一个奇怪的样本呢这种情况是可能发生的这也是我们进行重采样的原因。重采样帮助我们了解样本本身的分布。如果原始样本太小怎么办随着样本中观察值的增加自助法估计会趋近于总体值。然而有限样本无法保证结果的准确性。尽管存在一些问题但考虑到我们所处的限制环境它仍然是我们对总体最好的信息。我们不需要假设总体具有特定的分布形态。鉴于计算成本相对较低自助法成为了一种非常强大的工具。演示经典的自助法我们将通过两个例子来解释自助法。第一个是一个小数据集目的是让你能够心算。第二个是一个更大的数据集我会写下代码来说明。示例 1确定一所学校学生的平均年龄我们的任务是确定一所学校学生的平均年龄。我们随机抽取了 5 名学生。这个想法是利用这 5 名学生来推断全校学生的平均年龄。这听起来很荒谬而且在统计学上不规范但请耐心听我解释。ages[12,8,10,15,9]我们现在从这个列表中进行有放回的抽样。sample_1[8,10,8,15,12]sample_2[10,10,12,8,15]sample_3[10,12,9,9,9]....do this a1000times....sample_1000[9,12,12,15,8]对每个重采样计算均值。mean_sample_110.6mean_sample_211mean_sample_39.8...mean_sample_100011.2取这些均值的平均值。mean_over_samplesmean(mean_sample_1,mean_sample_2,..,mean_sample_1000)这个均值就成为了你对总体均值的估计。你可以对任何统计属性做同样的事情置信区间、偏差等。示例 2确定“支付处理时间”的第 95 百分位数食品配送应用上的客户进行支付。在支付成功后订单会传送到餐厅。计算支付处理时间即从客户点击“支付”按钮到反馈支付成功或支付失败交付的时间是一个关键指标反映了平台的可靠性。每天都有数百万客户在应用上进行支付。我们的任务是估算分布的 95%百分位数以便能够快速检测问题。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/697e2ed7307420edafbc50ae8501324a.png我们通过以下方式演示经典的自助法我们假设有一个包含一百万个观察值的总体。在现实世界中我们从未观察到这样的数据。我们随机抽取这部分总体的 1/10。也就是说我们取 10,000 个观察值。实际上这就是我们观察到的唯一数据。然后我们应用上面讨论过的相同程序。我们从我们观察到的数据中进行带替换的重采样。我们这样做很多次。每次我们重新采样时我们计算该分布的 95th 百分位。最后我们取 95th 百分位值的均值并计算其置信区间。我们得到了下面的图表。神奇的是我们发现刚刚生成的置信区间包含了真实的 95th 百分位来自我们的总体。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/02a0e7d6d65ce0ea23924ba32c7af027.png我们可以在自助统计量的层次上看到相同的数据。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/98883bf48ba626d1ad7b8883b440e252.png生成上述内容的代码如下自己试试看这一切都很顺利接下来是什么呢现在我们已经确定经典的自助法实际上是有效的我们将尝试从数学角度建立正在发生的事情。通常书籍会告诉你如果不感兴趣就跳过这一部分。但我鼓励你坚持下来因为这里才是最有趣的地方。休息一下现在让我们想象一个游戏。假设你有一个装满了 5 个球的袋子一个红球、一个蓝球、一个黄球、一个绿球和一个紫球。你需要从袋子中抽取 5 个球每次抽一个。每次抽球后你会把它放回袋子里然后再抽一次。所以每次选择一个球时你有 5 个不同颜色的球可以选择。每一轮过后你会在空白槽中记录所选择的球如下所示。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d478a2b8c87df6bed4de1028d26ed8d1.png现在如果我问你每个球被选择进入我们需要填充的每个槽的概率是多少你会怎么回答对于槽 1红球可以以 1/5 的概率被选择。紫球可以以 1/5 的概率被选择。绿球可以以 1/5 的概率被选择。蓝球可以以 1/5 的概率被选择。黄球可以以 1/5 的概率被选择。同样的情况适用于槽 2、3、4 和 5。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/2569fd8533d3132b4165839df65e2463.png让我们暂时专注于红球。它至少可以被选择 0 次根本没有被选择和最多被选择 5 次。红球发生的概率分布如下红球被选择 0 次这只能以 1 种方式发生。红球被选择 1 次这可以以 5 种方式发生。红球被选择进入槽 1红球被选择进入槽 2 ……你懂的。红球被选择 2 次这可以以 10 种方式发生。将红球固定在槽 1有 4 种选择。将红球固定在槽 2有 3 种新的选择……红球被选择 3 次这可以有 10 种方式。这与上面的逻辑完全相同。红球被选择 4 次这可以有 5 种方式。类似于只被选择一次的情况。红球被选择 5 次。这可以有 1 种方式。这只是5 选 k其中k {0, 1, 2, 3, 4, 5}https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3f44799433b3904d01972724bb36abbb.png让我们把这两个事实结合起来专门讨论红球的情况https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0cf7c18b2bf40366a2c329c5a7dc5fc6.png我们刚刚描述的是二项分布其中n 5且p 1/5https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/7a58cafe59eb24671a885b95498ec906.png或者更一般地https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/bd4e71c21265967e5c1ce12381eac823.png现在只需将球替换为观测值。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d7ff38abd29b853d514634a901f828f1.png所以当我们进行自助法时本质上是从二项分布中抽取每个观测值。在经典自助法中当我们进行重采样时每个观测值都遵循二项分布其中 n nk {0, …, n} 和 p 1/n。这也可以表示为 Binomial(n , 1/n)。现在二项分布有一个非常有趣的性质当 n 越来越大p 越来越小二项分布会收敛到一个 Poisson 分布且为Poisson(n/p)。某一天我会写一篇直观的解释为什么会发生这种情况但如果你现在感兴趣可以阅读 这篇写得非常好的文章。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/28c914ca657495fc27919637fb2ead76.png这适用于任何 n 和 p使得 n/p 是常数。在下面的 gif 中我们展示了 lambda (n/p) 5 的情况。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/66d28ee9af5fe78fc9a31d4be7b77a90.png在我们的特殊情况下由于 p 仅为 1/n因此我们将收敛到Poisson(1)。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/63f7b13b66d69f61400258f46ffa639c.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a74eae72db90e67f5e234adff9898efe.png由此可以得出另一种重采样方法是从 Poisson(1) 分布中抽取每个观测值。泊松自助法意味着我们使用 Poisson(1) 过程来生成用于自助统计的重采样。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/54d8d6426197e99a039058d8cd9b486f.png有什么大不了的这为什么有用自助法有两个阶段第一个阶段是创建重采样第二个阶段是在每个重采样上计算统计量。经典自助法和泊松自助法在第二个阶段是相同的但在第一个阶段是不同的。这在两种情况下是有用的泊松自助法减少了我们需要遍历数据的次数。泊松自助法适用于我们没有固定 n 的情况。例如当我们在流式处理数据时。在重采样时减少遍历次数泊松自助法在创建重采样时可以显著提高计算效率。查看代码是理解这一点的最佳方式。比较上面第8行与经典自助法中相应的行# classical, needs to know (data)bootstrap_samplesnp.random.choice(data,(n_iter,n),replaceTrue)# poisson, does not need to know (data)weightsnp.random.poisson(1,(n_iter,n))在经典自助法中你需要知道数据而在泊松自助法中则不需要。这对于数据非常庞大的情况比如数亿条观测数据具有非常重要的意义。这是因为从数学上讲生成重抽样归结为为每个观测值生成计数。在经典自助法中每个观测值的计数遵循*Binomial(n, 1/n)分布。它们共同遵循Multinomial(n, 1/n, 1/n, …, 1/n)*分布。这意味着当你为一个观测值生成计数时这会影响其他观测值的计数。例如在我们的球的例子中一旦你为一个红球生成了计数这就会直接影响其他球的计数。例如如果红球的计数是 2那么我们知道剩下只有 3 个球可以选择。在泊松自助法中每个观测值的计数彼此独立。因此如果你需要 1000 个重抽样只需为红球生成 1000 个*Poisson(1)*抽样。然后就完成了你可以继续处理下一个观测值。当 n 未知时进行重抽样有些情况下n 实际上是未知的。例如在流式支付数据或数据量大到跨多个存储实例的情况下。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a3d05c7d86d1e5c06ab5be4649278069.png在经典自助法中每次观察到 n 的增加时我们必须重新进行重抽样过程因为我们是有放回地抽样。这使得该方法在计算上非常昂贵且浪费。在泊松自助法中我们只需为每个实例保存我们的*Poisson(1)抽样。每次新增一个实例时我们只需要为这个新实例生成Poisson(1)*抽样。结论https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/362b9f899eae79f29c0c2de80db3e201.png经典自助法bootstrapping是一种非常有效的技术用于从收集到的样本中学习统计量的分布。在实际操作中对于非常大的数据集它可能会非常昂贵。泊松自助法Poisson bootstrapping是自助法的一种变体能够高效地并行计算重抽样。这是由于两个原因在泊松自助法下的重抽样意味着我们只对每个观测值进行一次遍历。在流数据的情况下泊松自助法允许我们增量地处理新的重抽样而不必一次性对整个数据集进行重抽样。希望你觉得这有用。我始终欢迎反馈和修正。这篇文章中的图片是我自己的。欢迎自由使用
泊松自助法
发布时间:2026/5/19 11:03:25
原文towardsdatascience.com/the-poisson-bootstrap-d0fd045e28c3?sourcecollection_archive---------4-----------------------#2024-08-12在大数据集上的自助法https://medium.com/davidclarance?sourcepost_page---byline--d0fd045e28c3--------------------------------https://towardsdatascience.com/?sourcepost_page---byline--d0fd045e28c3-------------------------------- David Clarance·发表于 Towards Data Science ·阅读时间 10 分钟·2024 年 8 月 12 日–https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/362b9f899eae79f29c0c2de80db3e201.png自助法是一个有用的技术可以基于收集到的样本推断总体的统计特征比如均值、十分位数、置信区间等。在大规模实现时它可能很困难尤其是在处理流数据的场景下尤为复杂。在学习如何大规模应用自助法时我遇到了一篇谷歌博客几乎已有十年历史介绍了泊松自助法。从那时起我发现了一篇更早的论文Hanley 和 MacGibbon2006阐述了这一技术的一个版本。本文的目的是确保我已经充分理解了这个逻辑并能向别人解释清楚。我们将首先介绍经典的自助法以激发对泊松自助法的兴趣。经典自助法假设我们想计算一所学校学生的平均年龄。我们可以反复抽取 100 个学生的样本计算它们的均值并进行存储。然后我们可以计算这些样本均值的最终均值。这个最终均值就是对总体均值的估计。在实际操作中通常无法从一个总体中多次抽样。这就是引入自助法Bootstrapping的原因。自助法在某种程度上模拟了这一过程。我们不是从总体中抽样而是从我们收集的一个样本中进行有放回抽样。这些伪样本被称为重抽样resamples。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/b44df36fb0cc158f61146e63ccec36a4.png结果证明这非常有效。它比闭式解法计算代价高但不需要对总体分布做出强假设。而且它比重复收集样本便宜。在实际应用中它在工业界使用非常广泛因为在许多情况下要么闭式解法不存在要么很难得出正确结果——例如在推断总体的分位数时。为什么自助法有效自助法给人的感觉是错的。或者至少当我第一次学习它时我并不觉得它是对的。为什么一个样本能包含这么多信息呢从你抽取的原始样本中进行有放回的抽样只是让你模拟从总体中抽样的一种方式。你抽取的原始样本平均来看像是你总体的一个代表。所以当你从中重新抽样时本质上是在从同一个概率分布中抽取样本。如果恰好抽到一个奇怪的样本呢这种情况是可能发生的这也是我们进行重采样的原因。重采样帮助我们了解样本本身的分布。如果原始样本太小怎么办随着样本中观察值的增加自助法估计会趋近于总体值。然而有限样本无法保证结果的准确性。尽管存在一些问题但考虑到我们所处的限制环境它仍然是我们对总体最好的信息。我们不需要假设总体具有特定的分布形态。鉴于计算成本相对较低自助法成为了一种非常强大的工具。演示经典的自助法我们将通过两个例子来解释自助法。第一个是一个小数据集目的是让你能够心算。第二个是一个更大的数据集我会写下代码来说明。示例 1确定一所学校学生的平均年龄我们的任务是确定一所学校学生的平均年龄。我们随机抽取了 5 名学生。这个想法是利用这 5 名学生来推断全校学生的平均年龄。这听起来很荒谬而且在统计学上不规范但请耐心听我解释。ages[12,8,10,15,9]我们现在从这个列表中进行有放回的抽样。sample_1[8,10,8,15,12]sample_2[10,10,12,8,15]sample_3[10,12,9,9,9]....do this a1000times....sample_1000[9,12,12,15,8]对每个重采样计算均值。mean_sample_110.6mean_sample_211mean_sample_39.8...mean_sample_100011.2取这些均值的平均值。mean_over_samplesmean(mean_sample_1,mean_sample_2,..,mean_sample_1000)这个均值就成为了你对总体均值的估计。你可以对任何统计属性做同样的事情置信区间、偏差等。示例 2确定“支付处理时间”的第 95 百分位数食品配送应用上的客户进行支付。在支付成功后订单会传送到餐厅。计算支付处理时间即从客户点击“支付”按钮到反馈支付成功或支付失败交付的时间是一个关键指标反映了平台的可靠性。每天都有数百万客户在应用上进行支付。我们的任务是估算分布的 95%百分位数以便能够快速检测问题。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/697e2ed7307420edafbc50ae8501324a.png我们通过以下方式演示经典的自助法我们假设有一个包含一百万个观察值的总体。在现实世界中我们从未观察到这样的数据。我们随机抽取这部分总体的 1/10。也就是说我们取 10,000 个观察值。实际上这就是我们观察到的唯一数据。然后我们应用上面讨论过的相同程序。我们从我们观察到的数据中进行带替换的重采样。我们这样做很多次。每次我们重新采样时我们计算该分布的 95th 百分位。最后我们取 95th 百分位值的均值并计算其置信区间。我们得到了下面的图表。神奇的是我们发现刚刚生成的置信区间包含了真实的 95th 百分位来自我们的总体。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/02a0e7d6d65ce0ea23924ba32c7af027.png我们可以在自助统计量的层次上看到相同的数据。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/98883bf48ba626d1ad7b8883b440e252.png生成上述内容的代码如下自己试试看这一切都很顺利接下来是什么呢现在我们已经确定经典的自助法实际上是有效的我们将尝试从数学角度建立正在发生的事情。通常书籍会告诉你如果不感兴趣就跳过这一部分。但我鼓励你坚持下来因为这里才是最有趣的地方。休息一下现在让我们想象一个游戏。假设你有一个装满了 5 个球的袋子一个红球、一个蓝球、一个黄球、一个绿球和一个紫球。你需要从袋子中抽取 5 个球每次抽一个。每次抽球后你会把它放回袋子里然后再抽一次。所以每次选择一个球时你有 5 个不同颜色的球可以选择。每一轮过后你会在空白槽中记录所选择的球如下所示。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d478a2b8c87df6bed4de1028d26ed8d1.png现在如果我问你每个球被选择进入我们需要填充的每个槽的概率是多少你会怎么回答对于槽 1红球可以以 1/5 的概率被选择。紫球可以以 1/5 的概率被选择。绿球可以以 1/5 的概率被选择。蓝球可以以 1/5 的概率被选择。黄球可以以 1/5 的概率被选择。同样的情况适用于槽 2、3、4 和 5。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/2569fd8533d3132b4165839df65e2463.png让我们暂时专注于红球。它至少可以被选择 0 次根本没有被选择和最多被选择 5 次。红球发生的概率分布如下红球被选择 0 次这只能以 1 种方式发生。红球被选择 1 次这可以以 5 种方式发生。红球被选择进入槽 1红球被选择进入槽 2 ……你懂的。红球被选择 2 次这可以以 10 种方式发生。将红球固定在槽 1有 4 种选择。将红球固定在槽 2有 3 种新的选择……红球被选择 3 次这可以有 10 种方式。这与上面的逻辑完全相同。红球被选择 4 次这可以有 5 种方式。类似于只被选择一次的情况。红球被选择 5 次。这可以有 1 种方式。这只是5 选 k其中k {0, 1, 2, 3, 4, 5}https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3f44799433b3904d01972724bb36abbb.png让我们把这两个事实结合起来专门讨论红球的情况https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0cf7c18b2bf40366a2c329c5a7dc5fc6.png我们刚刚描述的是二项分布其中n 5且p 1/5https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/7a58cafe59eb24671a885b95498ec906.png或者更一般地https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/bd4e71c21265967e5c1ce12381eac823.png现在只需将球替换为观测值。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d7ff38abd29b853d514634a901f828f1.png所以当我们进行自助法时本质上是从二项分布中抽取每个观测值。在经典自助法中当我们进行重采样时每个观测值都遵循二项分布其中 n nk {0, …, n} 和 p 1/n。这也可以表示为 Binomial(n , 1/n)。现在二项分布有一个非常有趣的性质当 n 越来越大p 越来越小二项分布会收敛到一个 Poisson 分布且为Poisson(n/p)。某一天我会写一篇直观的解释为什么会发生这种情况但如果你现在感兴趣可以阅读 这篇写得非常好的文章。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/28c914ca657495fc27919637fb2ead76.png这适用于任何 n 和 p使得 n/p 是常数。在下面的 gif 中我们展示了 lambda (n/p) 5 的情况。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/66d28ee9af5fe78fc9a31d4be7b77a90.png在我们的特殊情况下由于 p 仅为 1/n因此我们将收敛到Poisson(1)。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/63f7b13b66d69f61400258f46ffa639c.pnghttps://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a74eae72db90e67f5e234adff9898efe.png由此可以得出另一种重采样方法是从 Poisson(1) 分布中抽取每个观测值。泊松自助法意味着我们使用 Poisson(1) 过程来生成用于自助统计的重采样。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/54d8d6426197e99a039058d8cd9b486f.png有什么大不了的这为什么有用自助法有两个阶段第一个阶段是创建重采样第二个阶段是在每个重采样上计算统计量。经典自助法和泊松自助法在第二个阶段是相同的但在第一个阶段是不同的。这在两种情况下是有用的泊松自助法减少了我们需要遍历数据的次数。泊松自助法适用于我们没有固定 n 的情况。例如当我们在流式处理数据时。在重采样时减少遍历次数泊松自助法在创建重采样时可以显著提高计算效率。查看代码是理解这一点的最佳方式。比较上面第8行与经典自助法中相应的行# classical, needs to know (data)bootstrap_samplesnp.random.choice(data,(n_iter,n),replaceTrue)# poisson, does not need to know (data)weightsnp.random.poisson(1,(n_iter,n))在经典自助法中你需要知道数据而在泊松自助法中则不需要。这对于数据非常庞大的情况比如数亿条观测数据具有非常重要的意义。这是因为从数学上讲生成重抽样归结为为每个观测值生成计数。在经典自助法中每个观测值的计数遵循*Binomial(n, 1/n)分布。它们共同遵循Multinomial(n, 1/n, 1/n, …, 1/n)*分布。这意味着当你为一个观测值生成计数时这会影响其他观测值的计数。例如在我们的球的例子中一旦你为一个红球生成了计数这就会直接影响其他球的计数。例如如果红球的计数是 2那么我们知道剩下只有 3 个球可以选择。在泊松自助法中每个观测值的计数彼此独立。因此如果你需要 1000 个重抽样只需为红球生成 1000 个*Poisson(1)*抽样。然后就完成了你可以继续处理下一个观测值。当 n 未知时进行重抽样有些情况下n 实际上是未知的。例如在流式支付数据或数据量大到跨多个存储实例的情况下。https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a3d05c7d86d1e5c06ab5be4649278069.png在经典自助法中每次观察到 n 的增加时我们必须重新进行重抽样过程因为我们是有放回地抽样。这使得该方法在计算上非常昂贵且浪费。在泊松自助法中我们只需为每个实例保存我们的*Poisson(1)抽样。每次新增一个实例时我们只需要为这个新实例生成Poisson(1)*抽样。结论https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/362b9f899eae79f29c0c2de80db3e201.png经典自助法bootstrapping是一种非常有效的技术用于从收集到的样本中学习统计量的分布。在实际操作中对于非常大的数据集它可能会非常昂贵。泊松自助法Poisson bootstrapping是自助法的一种变体能够高效地并行计算重抽样。这是由于两个原因在泊松自助法下的重抽样意味着我们只对每个观测值进行一次遍历。在流数据的情况下泊松自助法允许我们增量地处理新的重抽样而不必一次性对整个数据集进行重抽样。希望你觉得这有用。我始终欢迎反馈和修正。这篇文章中的图片是我自己的。欢迎自由使用