自举二项式分布

Bootstrapping Binomial Distribution

我正在研究一个简单的问题,我想编写一个函数,从二项分布(比如 60% 1 和 40% 0)中随机抽取 n 个大小为 q 的样本,然后保存份额数组中每个样本的 1s(以便我稍后可以分析该数组)。例如,我想模拟,如果我从具有 60% 1 和 40% 0 的分布中抽取 1,000 个样本,每个样本大小为 30,并且我希望将长度为 1,000 的数组作为输出,其中每一行代表1 来自那个样本。

你是说伯努利分布吗?

from scipy.stats import bernoulli
data = [bernoulli.rvs(0.6, size=30) for _ in range(1000)]

要得到1的个数,会是

import numpy as np
sim = np.random.binomial(n=30,p=0.6,size=1000)

实际抽奖:

sim = np.random.binomial(n=1,p=0.6,size=(1000,30))
sim.shape
import matplotlib.pyplot as plt
plt.hist(np.mean(sim,axis=1))