我正在阅读Statistics (Freeman, Pisani, Purves) 一书,我试图重现一个例子,其中一枚硬币被抛 50 次,正面数数,重复 1,000 次。
首先,我将投掷次数(样本大小)保持在 1000 次,并增加了重复次数。重复次数越多,数据越符合正态曲线。
所以接下来,我尝试将重复次数固定为 1,000 并增加样本量。样本量越大,法线曲线似乎与数据的拟合越差。这似乎与随着样本量增加而更好地逼近正态曲线的书本示例相矛盾。
我想看看如果我增加样本量会发生什么,但重复次数更多,固定为 10,000。这似乎也与书相矛盾。
任何想法我做错了什么?
下面的代码和图表。
%matplotlib inline
def plot_hist(num_repetitions, num_tosses):
tosses = np.random.randint(0, 2, size=[num_repetitions, num_tosses])
sums = np.apply_along_axis(lambda a: np.sum(a == 1), 1, tosses)
xmin, xmax = min(sums), max(sums)
lnspc = np.linspace(xmin, xmax, len(sums))
m, s = stats.norm.fit(sums) # get mean and standard deviation
pdf_g = stats.norm.pdf(lnspc, m, s) # now get theoretical values in our interval
bins = np.arange(xmin, xmax) - 0.5
step = int((xmax - xmin)/5)
fig, ax = plt.subplots()
_ = ax.hist(sums, bins, edgecolor='black', linewidth=1.2, density=True)
_ = ax.plot(lnspc, pdf_g, label="Norm", color='red')
_ = ax.set_xticks(bins[::step] + 0.5)
_ = ax.set_title('{:,} tosses - {:,} repetitions'.format(num_tosses, num_repetitions))
1. 增加重复次数进行实验(固定样本大小为 1000)
plot_hist(1000, 1000)
plot_hist(10000, 1000)
plot_hist(100000, 1000)
2. 增加样本量进行实验(固定在 1000 次重复)
plot_hist(1000, 100)
plot_hist(1000, 1000)
plot_hist(1000, 10000)
3. 增加样本量进行实验(固定为 10,000 次重复)
plot_hist(10000, 100)
plot_hist(10000, 1000)
plot_hist(10000, 10000)
plot_hist(10000, 100000)