创建人口数据

Create Population Data

创建一个包含 5000 个人的群体以及他们每天 phone 的接客次数,以用于以后的抽样。这是我想出的代码:

def get_population(pickups, pop_size, std):
    pop = np.random.randint(0, pickups, 5000)
    mean = np.mean(pop)
    std = np.std(pop)
    return pop, mean, std

我使用给定的断言错误来想出这个函数,所以我什至不确定我应该返回什么:

pop_pickups, pop_mean, pop_std = get_population(45, 5000, 42)
assert np.abs(pop_mean - 45) < 0.5, "Get population problem, testing pop_mean, population mean returned does not match expected population mean"
assert np.abs(pop_std - np.sqrt(45)) < 0.5, "Get population problem, testing pop_std, population standard deviation returned does not match expected standard deviation"

我假设我需要生成人口,然后取所说人口的均值和标准差。但是我的代码触发了均值不正确的断言错误。最终目标是可视化单个均值的 bootstrap。

查看 numpy.random.randint 的文档: https://numpy.org/doc/stable/reference/random/generated/numpy.random.randint.html

您正在生成 0 到 45 之间的 5000 个点。平均值可能在 (45 - 0)/2 左右而不是 45 左右。您的代码没问题,但断言测试没有检查正确的平均值和 STD .


编辑: 如果你想生成一个遵循泊松分布的样本,你可以使用这个:

import numpy as np

param = 45  # Poisson parameter
nb_samples = 50000
sample = np.random.poisson(param, nb_samples)

assert np.abs(param - np.mean(sample)) < 0.5, "Get population problem, testing pop_mean, population mean returned does not match expected population mean"

请注意,此代码 运行 不会返回任何内容。