मैं स्टैटिस्टिक्स (फ्रीमैन, पिसानी, पर्स) पुस्तक पढ़ रहा हूं और मैं एक उदाहरण को पुन: प्रस्तुत करने की कोशिश कर रहा हूं जहां एक सिक्का 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)