Tôi đang đọc cuốn sách Thống kê (Freeman, Pisani, Purves) và tôi đang cố gắng tái tạo một ví dụ trong đó một đồng xu được tung ra nói 50 lần, số lượng đầu được đếm và điều này được lặp lại nói 1.000 lần.
Đầu tiên, tôi giữ số lần tung (cỡ mẫu) ở mức 1000 và tăng số lần lặp lại. Càng lặp lại nhiều lần, dữ liệu càng phù hợp với đường cong thông thường.
Vì vậy, tiếp theo, tôi đã cố gắng giữ số lần lặp lại cố định ở mức 1.000 và tăng kích thước mẫu. Kích thước mẫu càng lớn, đường cong bình thường tệ nhất có vẻ phù hợp với dữ liệu. Điều này dường như mâu thuẫn với ví dụ cuốn sách gần đúng hơn với đường cong thông thường khi kích thước mẫu tăng.
Tôi muốn xem điều gì sẽ xảy ra nếu tôi tăng kích thước mẫu, nhưng với số lần lặp lại lớn hơn được cố định ở mức 10.000. Điều này dường như cũng mâu thuẫn với cuốn sách.
Có ai biết tôi đang làm gì sai không?
Mã và đồ thị dưới đây.
%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. Thử nghiệm với số lần lặp lại tăng dần (cỡ mẫu cố định là 1000)
plot_hist(1000, 1000)
plot_hist(10000, 1000)
plot_hist(100000, 1000)
2. Thử nghiệm tăng kích thước mẫu (cố định ở 1000 lần lặp lại)
plot_hist(1000, 100)
plot_hist(1000, 1000)
plot_hist(1000, 10000)
3. Thử nghiệm tăng kích thước mẫu (cố định ở 10.000 lần lặp lại)
plot_hist(10000, 100)
plot_hist(10000, 1000)
plot_hist(10000, 10000)
plot_hist(10000, 100000)