开始使用免费开始使用

Binomial 与 Poisson 分布的关系

您刚刚了解到,对于稀有事件,Poisson 分布可以看作 Binomial 分布的极限。从"故事"的角度理解也很合理。假设我们在 1 小时内每分钟做一次 Bernoulli 试验,每次成功概率为 0.1。我们会做 60 次试验,成功次数服从 Binomial 分布,期望大约有 6 次成功。这与视频中提到的 Poisson 故事类似:一个网站平均每小时有 6 次访问。因此,当进行 \(n\) 次 Bernoulli 试验且成功概率为 \(p\) 时,参数为 \(np\) 的 Poisson 分布可以近似该 Binomial 分布(当 \(n\) 很大且 \(p\) 很小时)。重要的是,Poisson 分布通常更易于使用,因为它只有 1 个参数,而 Binomial 分布有 2 个参数。

让我们用计算的方法来探索这两个分布。您将先对到达率为 10 的 Poisson 分布样本计算均值和标准差。然后,您将对满足 \(np = 10\) 的一组 Binomial 分布(具有参数 \(n\) 和 $p$)的样本计算均值和标准差。

本练习是课程的一部分

Python 中的统计思维(第 1 部分)

查看课程

练习说明

  • 使用 rng.poisson() 函数,从均值为 10 的 Poisson 分布中抽取 10000 个样本。
  • 为 Binomial 分布要考虑的取值创建 np 的列表。选择 n = [20, 100, 1000]p = [0.5, 0.1, 0.01],使得 \(np\) 始终为 10。
  • 在提供的 for 循环中使用 rng.binomial(),对每个 n, p 组合各抽取 10000 个来自 Binomial 分布的样本,并打印这些样本的均值和标准差。共有 3 个 n, p 组合:20, 0.5100, 0.11000, 0.01。循环内可通过 n[i], p[i] 访问。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Draw 10,000 samples out of Poisson distribution: samples_poisson


# Print the mean and standard deviation
print('Poisson:     ', np.mean(samples_poisson),
                       np.std(samples_poisson))

# Specify values of n and p to consider for Binomial: n, p



# Draw 10,000 samples for each n,p pair: samples_binomial
for i in range(3):
    samples_binomial = ____

    # Print results
    print('n =', n[i], 'Binom:', np.mean(samples_binomial),
                                 np.std(samples_binomial))
编辑并运行代码