나는 통계 (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. 표본 크기 증가 실험 (1 만회 반복 고정)
plot_hist(10000, 100)
plot_hist(10000, 1000)
plot_hist(10000, 10000)
plot_hist(10000, 100000)