開始使用免費開始

樣本統計量的變異

如果我們從一個母體中抽取 size=1000 個點來建立一個樣本,接著計算一個樣本統計量(例如平均值),就會得到一個用來摘要該樣本的單一數值。

如果你把這個抽樣過程重複 num_samples=100 次,你就會得到 100 個樣本。對每個樣本各自計算樣本統計量(如平均值),會形成一個平均值的分佈。目標是計算「平均值的平均」以及「平均值的標準差」。

這裡你會使用預先載入的 populationnum_samplesnum_pts。另外請注意,meansdeviations 陣列已初始化為 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.____()))
編輯並執行程式碼