首頁 > 後端開發 > Python教學 > python如何驗證中心極限定理

python如何驗證中心極限定理

coldplay.xixi
發布: 2020-10-30 11:51:14
原創
3728 人瀏覽過

python驗證中心極限定理的方法:先模擬隨機擲色子1000次觀察一下平均值;然後模擬拋十次,並畫圖看看他們的分佈情況;最後模擬1000組,每組拋50次,並取每一組的平均值看分佈情形。

python如何驗證中心極限定理

python驗證中心極限定理的方法:

中心極限定理:

從一個給定的服從任意分佈的總體當中,每次抽n個樣本,一共抽取m次。再將這m各組的值求平均值,各組的平均值會服從近似常態分佈。

  • 先模擬隨機擲色子1000次觀察一下平均值。
import numpy as np
a = np.random.randint(1,7,1000)print(a)a.mean()
登入後複製

輸出結果:

可以看到,擲1000次之後取平均值(注意:這個平均值每次策都有微小的不一樣,因為是隨機抽取的)接近於3.5(3.5=1/6*(1 2 3 4 5 6))。
然後,再模擬拋10000次,取平均值
python如何驗證中心極限定理
可以看到,結果越來越接近3.5

  • 接著模擬拋十次,然後畫圖看看他們的分佈情況
sample = []for i in range(10):
    sample.append(a[int(np.random.random()*len(a))]) #从a里面随机抽plt.figure(figsize=(20,10),dpi=100)plt.bar(sample,range(len(sample)))plt.show()
登入後複製

python如何驗證中心極限定理
可見分佈不是非常的均勻。

  • 接著模擬1000組,每組拋50次,然後取每一組的平均值看分佈情況。
sample_mean=[]sample_std=[]samples=[]for i in range(1000):
    sample=[] #每组一个列表
    for j in range(60):
        sample.append(a[int(np.random.random()*len(a))])#模拟抛50次
    sample = np.array(sample) #转化为array数组,便于处理
    sample_mean.append(sample.mean())
    sample_std.append(sample.std())
    samples.append(sample)sample_mean_np = np.array(sample_mean)sample_std_np = np.array(sample_std)print(sample_mean_np)
登入後複製
plt.figure(figsize=(20,10),dpi=80)d =0.1 num_bins = (max(sample_mean_np)-min(sample_mean_np))//d
plt.hist(sample_mean_np,num_bins) #绘制频率分布图
登入後複製

python如何驗證中心極限定理
可以看到,每組的平均值是服從常態分佈的。

相關免費學習推薦:python影片教學

#

以上是python如何驗證中心極限定理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板