- 大数定律的意义:随着样本容量n的增加,样本平均数将接近于总体平均数(期望 μ),所以在统计推断中,一般都会使用样本平均数估计总体平均数的值。
- 也就是我们会使用一部分样本的平均值来代替整体样本的期望/均值,出现偏差 的可能是存在的,但是当n足够大的时候,偏差的可能性是非常小的,当n无限大 的时候,这种可能性的概率基本为0。
- 大数定律的主要作用就是为使用频率来估计概率提供了理论支持;为使用部分数 据来近似的模拟构建全部数据的特征提供了理论支持。
#大数定理理解展示
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
#给定随机数的种子
random.seed(28)
def generate_random_int(n):
"""产生n个1-9的随机数"""
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]
#产生number个1-9的随机数
total_random_int = generate_random_int(number)
#求n个[1,9]的随机数的均值,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()
当样本数量足够大时,均值接近于5(总体数据的期望值).
中心极限定理(Central Limit Theorem);假设{Xn}为独立同分布的随机变量序 列,并具有相同的期望μ和方差为σ2,则{Xn}服从中心极限定理,且Zn为随机序列{Xn}的范围和:
中心极限定理就是一般在同分布的情况下,抽样样本值的规范和在总体数量趋于
无穷时的极限分布近似于正态分布。
随机的抛六面的骰子,计算三次点数的和的分布:
#大数定理理解展示
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
#给定随机数的种子
random.seed(28)
#事件A = x1+x2+x3 ,其中x1,x2,x3是分别抛骰子的点数
#根据中心极限定理,由于x1,x2,x3属于独立同分布,所以说最终的事件A属于高斯分布
def generate_random_int():
"""随机产生一个[1,6]的数字,表示一个六面的骰子的结果"""
return random.randint(1,6)
def generate_sum(n):
"""计算返回n次抛骰子的和的结果"""
return np.sum([generate_random_int() for i in range(n)])
if __name__ == '__main__':
#进行每次A事件抛几次骰子
number1 = 10000000
#表示每次A事件抛几次骰子
number2 = 3
#进行number1次事件A的操作,每次事件A都进行number2次
keys = [generate_sum(number2) for i in range(number1)]
#统计每个和数字出现的次数,eg:和为3的出现多少次,和为10的出现多少次
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:
#将出现的次数进行一个百分比的计算
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,大概就是图中的位置。