Python解释中心极限定理

网友投稿 647 2022-11-19

Python解释中心极限定理

Python解释中心极限定理

中心极限定理指的是给定一个任意分布的总体。我每次从这些总体中随机抽取 n 个抽样,一共抽 m 次。 然后把这 m 组抽样分别求出平均值。 这些平均值的分布接近正态分布。

例一

import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.font_manager import FontProperties# 设置字体,避免乱码font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)plt.title('柱状图', fontproperties=font_set)# 设置精度,只留一个小数位np.set_printoptions(precision=0)# 生成1-6的随机数random_data = np.random.randint(1, 7, 1000000)# 分n组,每组m个samples = []# 分组的平均值samples_mean = []# 分组的标准差samples_std = []for i in range(0, 1000): sample = [] for j in range(0, 500): sample.append(random_data[int(np.random.random() * len(random_data))]) sample_np = np.array(sample) samples_mean.append(sample_np.mean()) samples_std.append(sample_np.std()) samples.append(sample_np)# 转换下格式samples_mean_np = np.array(samples_mean)samples_std_np = np.array(samples_std)# 画图print(samples_mean_np)plt.hist(samples_mean_np, bins=10)plt.show()

效果图:

例二

import numpy as npfrom numpy import random as nprddef sampling(N): ## 产生一组样本,以0.5的概率为z+3,0.5的概率为z-3,其中z~N(0,1) d=nprd.rand(N)<0.5 z=nprd.randn(N) x=np.array([z[i]+3 if d[i] else z[i]-3 for i in range(N)]) return xN=[2,3,4,10,100,1000] # sample sizeM=2000MEANS=[]for n in N: mean_x=np.zeros(M) for i in range(M): x=sampling(n) mean_x[i]=np.mean(x)/np.sqrt(10/n) ## 标准化,因为var(x)=10 MEANS.append(mean_x)## 导入matplotlibimport matplotlib.pyplot as pltimport matplotlib.mlab as mlab## 使图形直接插入到jupyter中# %matplotlib inline# 设定图像大小plt.rcParams['figure.figsize'] = (10.0, 8.0)x=sampling(1000)plt.xlabel('x')plt.ylabel('Density')plt.title('Histogram of Mixed Normal')plt.hist(x,bins=30,normed=1) ## histgramplt.show() ## 画图## 均值ax1 = plt.subplot(2,3,1)ax2 = plt.subplot(2,3,2)ax3 = plt.subplot(2,3,3)ax4 = plt.subplot(2,3,4)ax5 = plt.subplot(2,3,5)ax6 = plt.subplot(2,3,6)## normal densityx=np.linspace(-3,3,100)d=[1.0/np.sqrt(2*np.pi)*np.exp(-i**2/2) for i in x]def plot_density(ax,data,N): ax.hist(data,bins=30,normed=1) ## histgram ax.plot(x,d) ax.set_title(r'Histogram of $\bar{x}$:N=%d' % N)plot_density(ax1,MEANS[0],N[0])plot_density(ax2,MEANS[1],N[1])plot_density(ax3,MEANS[2],N[2])plot_density(ax4,MEANS[3],N[3])plot_density(ax5,MEANS[4],N[4])plot_density(ax6,MEANS[5],N[5])plt.show() ## 画图

参考:​​https://zhuanlan.zhihu.com/p/25241653​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Vue简易注册页面+发送验证码功能的实现示例
下一篇:IntelliJ IDEA实现远程连接linux,并上传文件到linux服务器(SSH会话功能和SFTP功能)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~