import numpy as np import scipy.stats as stats import seaborn as sns import matplotlib.pyplot as plt # set the random seed: np.random.seed(123456) # set sample size: n1=2 n2=5 n3=10 n4=30 # initialize sampling dist. to an array of length r=10000 to later store results: r = 10000 sample_dist_2 = np.empty(r) sample_dist_5 = np.empty(r) sample_dist_10 = np.empty(r) sample_dist_30 = np.empty(r) # repeat r times: for j in range(1,r): # draw a sample and store the sample mean in pos. j=0,1,... of sample_dist: sample_2 = stats.norm.rvs(2.5, 1.1182, size=n1) sample_dist_2[j] = np.mean(sample_2) # repeat r times: for j in range(1,r): # draw a sample and store the sample mean in pos. j=0,1,... of sample_dist: sample_5 = stats.norm.rvs(2.5, 1.1182, size=n2) sample_dist_5[j] = np.mean(sample_5) # repeat r times: for j in range(1,r): # draw a sample and store the sample mean in pos. j=0,1,... of sample_dist: sample_10 = stats.norm.rvs(2.5, 1.1182, size=n3) sample_dist_10[j] = np.mean(sample_10) # repeat r times: for j in range(1,r): # draw a sample and store the sample mean in pos. j=0,1,... of sample_dist: sample_30 = stats.norm.rvs(2.5, 1.1182, size=n4) sample_dist_30[j] = np.mean(sample_30) mean_2 = np.mean(sample_dist_2) variance_2 = np.var(sample_dist_2) print("Mean of sampling distribution w/ n=2 is :", mean_2) print("Variance of sampling distribution w/ n=2 is :", variance_2) mean_5 = np.mean(sample_dist_5) variance_5 = np.var(sample_dist_5) print("Mean of sampling distribution w/ n=5 is :", mean_5) print("Variance of sampling distribution w/ n=5 is :", variance_5) mean_10 = np.mean(sample_dist_10) variance_10 = np.var(sample_dist_10) print("Mean of sampling distribution w/ n=10 is :", mean_10) print("Variance of sampling distribution w/ n=10 is :", variance_10) mean_30 = np.mean(sample_dist_30) variance_30 = np.var(sample_dist_30) print("Mean of sampling distribution w/ n=30 is :", mean_30) print("Variance of sampling distribution w/ n=30 is :", variance_30) fig, ax = plt.subplots() sns.histplot(data=sample_dist_2, x=None, kde=True).set(title='Histogram of Sampling_dist_2') ax.set_xlim(-1,6) plt.show() fig, ax = plt.subplots() sns.histplot(data=sample_dist_5, x=None, kde=True).set(title='Histogram of Sampling_dist_5') ax.set_xlim(-1,6) plt.show() fig, ax = plt.subplots() sns.histplot(data=sample_dist_10, x=None, kde=True).set(title='Histogram of Sampling_dist_10') ax.set_xlim(-1,6) plt.show() fig, ax = plt.subplots() sns.histplot(data=sample_dist_30, x=None, kde=True).set(title='Histogram of Sampling_dist_30') ax.set_xlim(-1,6) plt.show() fig = plt.figure(figsize=(14,7)) # 두 개의 그래프를 한 페이지에 그림 fig, axs = plt.subplots(ncols=2) fig, ays = plt.subplots(ncols=2) sns.histplot(data=sample_dist_2, x=None, ax=axs[0]).set(title='Histogram of Sample_dist_2 & 5') sns.histplot(data=sample_dist_5, x=None, ax=axs[1]) fig.subplots_adjust(wspace=0.5) # 우측그림의 좌우 간격을 조정 #plt.savefig('C:/BOOK/PyBasics/PyStat/code/sample_dist-1.png') sns.histplot(data=sample_dist_10, x=None, ax=ays[0]).set(title='Histogram of Sample_dist_10 & 30') sns.histplot(data=sample_dist_30, x=None, ax=ays[1]) fig.subplots_adjust(wspace=0.5) # 우측그림의 좌우 간격을 조정 #plt.savefig('C:/BOOK/PyBasics/PyStat/code/sample_dist-2.png')