樣本統計量的變異
如果我們從一個母體中抽取 size=1000 個點來建立一個樣本,接著計算一個樣本統計量(例如平均值),就會得到一個用來摘要該樣本的單一數值。
如果你把這個抽樣過程重複 num_samples=100 次,你就會得到 100 個樣本。對每個樣本各自計算樣本統計量(如平均值),會形成一個平均值的分佈。目標是計算「平均值的平均」以及「平均值的標準差」。
這裡你會使用預先載入的 population、num_samples 和 num_pts。另外請注意,means 和 deviations 陣列已初始化為 0,提供你在 for 迴圈中儲存結果的容器。
本練習屬於課程
Python 線性建模入門
練習說明
- 對於
num_samples=100的每一次迭代,產生一個樣本,然後計算並儲存其樣本統計量。 - 在每次迭代中,使用
np.random.choice()從母體隨機抽取1000個點建立sample。 - 在每次迭代中,計算並儲存
sample.mean()和sample.std(),也就是該樣本的平均值與標準差。 - 對
means陣列與deviations陣列,各自計算其平均值與標準差,並印出結果。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Initialize two arrays of zeros to be used as containers
means = np.zeros(num_samples)
stdevs = np.zeros(num_samples)
# For each iteration, compute and store the sample mean and sample stdev
for ns in range(num_samples):
sample = np.____.choice(population, num_pts)
means[ns] = sample.____()
stdevs[ns] = sample.____()
# Compute and print the mean() and std() for the sample statistic distributions
print("Means: center={:>6.2f}, spread={:>6.2f}".format(means.mean(), means.std()))
print("Stdevs: center={:>6.2f}, spread={:>6.2f}".format(stdevs.____(), stdevs.____()))