python驗(yàn)證中心極限定理的方法:首先模擬隨機(jī)擲色子1000次觀察一下平均值;然后模擬拋十次,并畫圖看看他們的分布情況;最后模擬1000組,每組拋50次,并取每一組的平均值看分布情況。
python驗(yàn)證中心極限定理的方法:
中心極限定理:
從一個(gè)給定的服從任意分布的總體當(dāng)中,每次抽n個(gè)樣本,一共抽取m次。然后再對(duì)這m各組的值求平均值,各組的平均值會(huì)服從近似正態(tài)分布。
- 首先模擬隨機(jī)擲色子1000次觀察一下平均值。
import numpy as np a = np.random.randint(1,7,1000)print(a)a.mean()
輸出結(jié)果:
可以看到,擲1000次之后取平均值(注意:這個(gè)平均值每次策都有微小的不一樣,因?yàn)槭请S機(jī)抽取的)接近于3.5(3.5=1/6*(1+2+3+4+5+6))。
然后,再次模擬拋10000次,取平均值
可以看到,結(jié)果越來(lái)越接近于3.5
- 接著模擬拋十次,然后畫圖看看他們的分布情況
sample = []for i in range(10): sample.append(a[int(np.random.random()*len(a))]) #從a里面隨機(jī)抽plt.figure(figsize=(20,10),dpi=100)plt.bar(sample,range(len(sample)))plt.show()
可見(jiàn)分布不是非常的均勻。
- 接著模擬1000組,每組拋50次,然后取每一組的平均值看分布情況。
sample_mean=[]sample_std=[]samples=[]for i in range(1000): sample=[] #每組一個(gè)列表 for j in range(60): sample.append(a[int(np.random.random()*len(a))])#模擬拋50次 sample = np.array(sample) #轉(zhuǎn)化為array數(shù)組,便于處理 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) #繪制頻率分布圖
可以看到,每組的平均值是服從正態(tài)分布的。
相關(guān)免費(fèi)學(xué)習(xí)推薦:python視頻教程