- 大數(shù)定律的意義:隨著樣本容量n的增加鹿响,樣本平均數(shù)將接近于總體平均數(shù)(期望 μ)胀糜,所以在統(tǒng)計推斷中,一般都會使用樣本平均數(shù)估計總體平均數(shù)的值。
- 也就是我們會使用一部分樣本的平均值來代替整體樣本的期望/均值冈钦,出現(xiàn)偏差 的可能是存在的,但是當(dāng)n足夠大的時候李请,偏差的可能性是非常小的瞧筛,當(dāng)n無限大 的時候,這種可能性的概率基本為0导盅。
- 大數(shù)定律的主要作用就是為使用頻率來估計概率提供了理論支持;為使用部分?jǐn)?shù) 據(jù)來近似的模擬構(gòu)建全部數(shù)據(jù)的特征提供了理論支持较幌。
#大數(shù)定理理解展示
import random
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
#解決顯示中文的問題
mpl.rcParams['font.sans_serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
#給定隨機(jī)數(shù)的種子
random.seed(28)
def generate_random_int(n):
"""產(chǎn)生n個1-9的隨機(jī)數(shù)"""
return [random.randint(1,9) for i in range(n)]
if __name__ == '__main__':
number = 8000
x = [i for i in range(number+1) if i != 0]
#產(chǎn)生number個1-9的隨機(jī)數(shù)
total_random_int = generate_random_int(number)
#求n個[1,9]的隨機(jī)數(shù)的均值,n=1,2,3,4,5...
y = [np.mean(total_random_int[0:i+1]) for i in range(number)]
plt.plot(x,y,'b-')
plt.xlim(0,number)
plt.grid(True)
plt.show()
當(dāng)樣本數(shù)量足夠大時认轨,均值接近于5(總體數(shù)據(jù)的期望值).
中心極限定理(Central Limit Theorem);假設(shè){Xn}為獨(dú)立同分布的隨機(jī)變量序 列绅络,并具有相同的期望μ和方差為σ2,則{Xn}服從中心極限定理嘁字,且Zn為隨機(jī)序列{Xn}的范圍和:
中心極限定理就是一般在同分布的情況下恩急,抽樣樣本值的規(guī)范和在總體數(shù)量趨于
無窮時的極限分布近似于正態(tài)分布。
隨機(jī)的拋六面的骰子纪蜒,計算三次點(diǎn)數(shù)的和的分布:
#大數(shù)定理理解展示
import random
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
#解決顯示中文的問題
# mpl.rcParams['font.sans_serif'] = [u'SimHei']
# mpl.rcParams['axes.unicode_minus'] = False
#給定隨機(jī)數(shù)的種子
random.seed(28)
#事件A = x1+x2+x3 衷恭,其中x1,x2,x3是分別拋骰子的點(diǎn)數(shù)
#根據(jù)中心極限定理,由于x1,x2,x3屬于獨(dú)立同分布纯续,所以說最終的事件A屬于高斯分布
def generate_random_int():
"""隨機(jī)產(chǎn)生一個[1,6]的數(shù)字随珠,表示一個六面的骰子的結(jié)果"""
return random.randint(1,6)
def generate_sum(n):
"""計算返回n次拋骰子的和的結(jié)果"""
return np.sum([generate_random_int() for i in range(n)])
if __name__ == '__main__':
#進(jìn)行每次A事件拋幾次骰子
number1 = 10000000
#表示每次A事件拋幾次骰子
number2 = 3
#進(jìn)行number1次事件A的操作灭袁,每次事件A都進(jìn)行number2次
keys = [generate_sum(number2) for i in range(number1)]
#統(tǒng)計每個和數(shù)字出現(xiàn)的次數(shù),eg:和為3的出現(xiàn)多少次窗看,和為10的出現(xiàn)多少次
result = {}
for key in keys:
count = 1
if key in result:
count += result[key]
result[key] = count
#獲取x和y
x = sorted(np.unique(list(result.keys())))
y = []
for key in x:
#將出現(xiàn)的次數(shù)進(jìn)行一個百分比的計算
y.append(result[key]/number1)
#畫圖:
plt.plot(x,y,'b-')
plt.xlim(x[0] -1 ,x[-1] +1)
plt.grid(True)
plt.show()
n為3茸歧,1-6的平均值為3.5,3μ為10.5显沈,大概就是圖中的位置软瞎。