python统计分析——样本均值的分布(上)

发布时间:2024年01月19日

参考资料:用python动手学统计学

1、导入库

import numpy as np
import pandas as pd
import scipy as sp
from scipy import stats

from matplotlib import pyplot as plt
import seaborn as sns

2、设置总体

? ? ? ? 本次研究总体是均值为4、标准差为0.8的正态总体。

pop=stats.norm(loc=4,scale=0.8)   # stats.norm()表示正态分布,其中loc参数表示均值,scale参数表示标准差

3、样本均值分布

? ? ? ? 这里需要明确:一次抽样完成,只能获得一个样本(无论样本容量是10还是100,样本都是一个),从而可以获得这个样本的均值。如果试验或抽样重复3次,则可以获得3个样本,对应有3个样本均值。

? ? ? ? 现实中无法帆布进行条件完全相同的抽样,但借助程序模拟可以轻松实验。在模拟的过程中,也可以研究样本的统计量的分布情况。

3.1 现在模拟抽样10000次,将会获得10000个样本均值。具体如下:

# 专本一个大小为10000的数组来存放样本均值
sample_mean_array=np.zeros(10000)
# 设置随机种子用于复现统计结果
np.random.seed(1)
# 利用for循环对总体进行抽样,设置样本容量为10,抽取一万个样本并存储样本均值(注意样本和样本容量的区别)
for i in range(0,10000):
    # 对样本进行抽样
    sample=pop.rvs(size=10)
    # 计算样本均值并存至smple_mean_array中
    sample_mean_array[i]=np.mean(sample)
    

上段代码中,注意pop.rvs(size=10)和stats.norm.rvs(loc=4,scale=0.8,size=10)是等价的。

stats.norm.rvs()的用法参考:python统计分析——生成正态分布随机数-CSDN博客

3.2 检验样本均值的均值和标准差

我们知道根据正态分布的样本均值服从均值为μ,标准差为σ/sqrt(n)的正态分布。

# 计算样本均值的均值和样本均值的标准差
print('样本均值的均值实际值',np.mean(sample_mean_array))
print('样本均值的均值理论值','4')
print('样本均值的标准差实际值',np.std(sample_mean_array,ddof=1))
print('样本均值的标准差理论值',0.8/np.sqrt(10))

结果如下:

可以看到样本均值分布的实际值与理论值非常接近,随着样本量,以及抽样次数的增加,实际值会无限接近于理论值。

4、绘制样本均值分布的直方图

sns.set()
# 绘制直方图,并显示核密度曲线
sns.histplot(sample_mean_array,kde=True)

可以看到直方图和核密度曲线都十分趋近于正态分布。

5、验证样本容量与样本均值分布间的关系

5.1 设置样本容量从10变化至100010

# 准备公差是100,范围是10-100010的样本容量
size_array=np.arange(start=10,stop=100100,step=100)
# 准备存放样本均值的容器
sample_mean_array_size=np.zeros(len(size_array))

5.2 利用程序模拟,在改变样本容量的同时反复计算样本均值。

# 设置随机种子,确保结果的可复现
np.random.seed(1)
# 按不同的样本容量进行抽样,并将样本均值存至sample_mean_array_size
for i in range(0,len(size_array)):
    sample=pop.rvs(size=size_array[i])
    sample_mean_array_size[i]=np.mean(sample)

5.3 作图显示样本容量与样本均值之间的关系

plt.plot(size_array,sample_mean_array_size)
plt.xlabel('sample size')
plt.ylabel('sample mean')

由图可知样本容量越大,样本均值就越接近总体均值4。

文章来源:https://blog.csdn.net/maizeman126/article/details/135598549
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。