Python学习笔记:大数定理和中心极限定理
一、大数定理
大数定理:随着样本容量 n
不断增加,样本平均数将越来越接近于总体平均数(期望),我们把总体的平均数称为期望。(均值与期望是不同的)
基于大数定理的存在,日常分析过程中一般都会使用样本的均值来估计总体的均值。
样本均值只是接近总体均值,不代表等于,还是存在一定的偏差。
利用 Python
随机生成10w个值作为总体,随机抽取部分数据计算均值,并绘制均值趋势图。
###### 大数定理 ######
import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
os.chdir(r"C:\Users\Hider\Desktop")
data = np.random.randint(1, 100000, 100000)
# np.random.randint(low, high, size) 产生离散均匀分布的整数
sample_size = []
# sample_size = [i for i in range(100,100000,100)]
# 直接列表推导式生成效率更高
sample_mean = []
for i in range(100, 100000, 100):
sample_size.append(i)
sample_mean.append(np.random.choice(data, i).mean())
pd.DataFrame({"sample_size":sample_size,
"sample_mean":sample_mean}).set_index("sample_size").plot()
plt.axhline(data.mean(), color="red")
# 绘制平行于x轴的水平参考线
plt.savefig("大数定理.jpg", dpi=200)
plt.show() # 先保存再show
结论:红线代表总体均值,随着样本容量 n
的不断增加,样本均值的波动幅度越来越小,越接近于总体均值。
二、中心极限定理
中心极限定理:现在有一个总体数据,如果从该总体数据中随机抽取若干样本,重复多次,每次抽样得到的样本量统计值(比如均值)与总体的统计值(比如均值)应该是差不多的,而且重复多次以后会得到多个统计值,这多个统计值会呈正态分布。
利用 Python
随机生成10w个值,并绘制分布图。
###### 中心极限定理 ######
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
data = np.random.rand(100000)
sns.distplot(data)
plt.savefig("中心极限定理分布图1.jpg", dpi=200)
plt.show()
通过分布图可以看出,这10w个随机数基本是均等分布,每个值出现的概率差不多。
从10w个样本中随机抽取若干个样本(300、500、1000、5000),重复抽取100次,得到100个样本均值,然后绘制样本均值分布图。
# 重复抽取100次
# 创建画布
plt.figure(figsize = (9,9))
# 图1
plt.subplot(221)
sample_mean =[]
for i in range(1, 100):
s = np.random.choice(data, size=300).mean()
sample_mean.append(s)
sns.distplot(sample_mean)
plt.title("Size=300")
# 图2
plt.subplot(222)
sample_mean =[]
for i in range(1, 100):
s = np.random.choice(data, size=500).mean()
sample_mean.append(s)
sns.distplot(sample_mean)
plt.title("Size=500")
# 图3
plt.subplot(223)
sample_mean =[]
for i in range(1, 100):
s = np.random.choice(data, size=1000).mean()
sample_mean.append(s)
sns.distplot(sample_mean)
plt.title("Size=1000")
# 图4
plt.subplot(224)
sample_mean =[]
for i in range(1, 100):
s = np.random.choice(data, size=5000).mean()
sample_mean.append(s)
sns.distplot(sample_mean)
plt.title("Size=5000")
plt.savefig("中心极限定理分布图2.jpg", dpi=200)
plt.show()
运行后得到不同样本量对应的样本均值的分布结果。
结论:
不同样本量对应的均值分布均符合正态分布。
样本均值符合正态分布,而不是样本本身符合正态分布。
可以利用抽样结果的均值来估计总体的均值。
额外:
分层抽样可以保证样本代表性,足够随机。
参考链接:讲讲大数定理
参考链接:讲讲中心极限定理
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)