精华内容
下载资源
问答
  • 中心极限定理

    2020-11-17 21:44:21
    中心极限定理

    中心极限定理

    独立同分布随机变量XiX_i,存在有限的均值μ\mu和方差σ2\sigma^2,则有下面定理成立:
    Fn(x)=limnP{i=1nXinμnσx}=12πxet22dt F_n(x)=\lim_{n\rightarrow\infin}P\{\frac{\sum_{i=1}^nX_i-n\mu}{\sqrt{n}\sigma}\le x\}=\frac{1}{\sqrt{2\pi}}\int_{-\infin}^{x}e^{-\frac{t^2}{2}}dt
    这个定理说明,将独立同分布随机变量nn次采样的和作为一个随机变量,关于这个随机变量的概率密度,当nn越大,越趋近于均值为nμn\mu,方差为nσ2n\sigma^2的正态分布。另一种说法是,将独立同分布随机变量nn次采样的均值作为一个随机变量,概率密度趋近于均值为μ\mu,方差为σ2n\frac{\sigma^2}{n}的正态分布。这也说明,nn越大,估算结果置信度越高。关于这个定理的证明,首先定义特征函数:
    Mx(t)=E(ext)=f(x)extdx M_{x}(t)=E(e^{xt})=\int_{-\infin}^{\infin}f(x)e^{xt}dx
    特征函数有几个性质:
    Mx(0)=f(x)dx=1 M_{x}(0)=\int_{-\infin}^{\infin}f(x)dx=1
    Mx(0)=xf(x)dx=E(x) M_{x}^{'}(0)=\int_{-\infin}^{\infin}xf(x)dx=E(x)
    Mx(0)=x2f(x)dx=E(x2) M_{x}^{''}(0)=\int_{-\infin}^{\infin}x^2f(x)dx=E(x^2)
    上面的数字,求导是求关于tt的导数。如果两个概率密度的特征函数在各个tt处相等,我们可以认为这两个概率密度是相等的。首先我们求标准正态分布ZZ的特征函数:
    MZ(t)=12πex22etxdx=et2212πe(xt)22dx=et22 M_{Z}(t)=\int_{-\infin}^{\infin}\frac{1}{\sqrt{2\pi}}e^{-\frac{x^2}{2}}e^{tx}dx=e^{\frac{t^2}{2}}\int_{-\infin}^{\infin}\frac{1}{\sqrt{2\pi}}e^{\frac{-(x-t)^2}{2}}dx=e^{\frac{t^2}{2}}
    上面的式子积分形式变为了求期望等于tt方差等于1的正态分布的积分,所以推导出结果。接着我们求随机变量YY的特征函数:
    Y=i=1nXinμnσ=i=1nXiμnσ=i=1nQi Y=\frac{\sum_{i=1}^nX_i-n\mu}{\sqrt{n}\sigma}=\sum_{i=1}^n\frac{X_i-\mu}{\sqrt{n}\sigma}=\sum_{i=1}^nQ_i
    MY(t)=[MQi(t)]n M_Y(t)=[M_{Q_i}(t)]^n
    MQi(t)=eμtnσMXi(tnσ) M_{Q_i}(t)=e^{-\frac{\mu t}{\sqrt{n}\sigma}}M_{X_i}(\frac{t}{\sqrt{n}\sigma})
    lnMY(t)=nlnMQi(t)=n(μtnσ+lnMXi(tnσ))=nμtσ+nlnMXi(tnσ) \ln{M_Y(t)}=n\ln{M_{Q_i}(t)}=n(-\frac{\mu t}{\sqrt{n}\sigma}+\ln{M_{X_i}(\frac{t}{\sqrt{n}\sigma})})=-\frac{\sqrt{n}\mu t}{\sigma}+n\ln{M_{X_i}(\frac{t}{\sqrt{n}\sigma})}
    p=tnσp=\frac{t}{\sqrt{n}\sigma}代入式子得到:
    lnMY(t)=μt2pσ2+t2p2σ2MXi(p)=t2σ2(μp+lnMXi(p)p2)=t2σ2μp+lnMXi(p)p2 \ln{M_Y(t)}=-\frac{\mu t^2}{p\sigma^2}+\frac{t^2}{p^2\sigma^2}M_{X_i}(p)=\frac{t^2}{\sigma^2}(-\frac{\mu}{p}+\frac{\ln M_{X_i}(p)}{p^2})=\frac{t^2}{\sigma^2}\frac{-\mu p+\ln M_{X_i}(p)}{p^2}
    nn\rightarrow\infin时,p0p\rightarrow 0,所以现在是要求:
    limnlnMY(t) \lim_{n\rightarrow\infin}\ln{M_Y(t)}
    关键是求:
    limp0μp+lnMXi(p)p2 \lim_{p\rightarrow 0}\frac{-\mu p+\ln{M_{X_i}(p)}}{p^2}
    已知分子分母在极限处都得到0,根据洛必达法则对分子分母对pp求导,得到:
    μ+MXi(p)MXi(p)2p \frac{-\mu+\frac{M_{X_i}^{'}(p)}{M_{X_i}(p)}}{2p}
    limp0MXi(p)=μ \lim_{p\rightarrow 0}M_{X_i}^{'}(p)=\mu
    limp0MXi=1 \lim_{p\rightarrow 0}M_{X_i}=1
    可以发现依然是分子分母在极限处等于0,所以继续洛必达得到:
    MXi(p)MXi(p)MXi(p)22MXi(p)2=E(Xi2)E(Xi)22=σ22 \frac{M_{X_i}^{''}(p)M_{X_i}(p)-M_{X_i}^{'}(p)^2}{2M_{X_i}(p)^2}=\frac{E(X_i^2)-E(X_i)^2}{2}=\frac{\sigma^2}{2}
    将这个结果回代,最后得到:
    limnlnMY(t)=t22 \lim_{n\rightarrow\infin}\ln M_{Y}(t)=\frac{t^2}{2}
    所以有:
    MY(t)=et22 M_{Y}(t)=e^{\frac{t^2}{2}}
    这说明YYZZ的概率密度是相等的,所以中心极限定理得证。

    展开全文
  • 首先我们要知道什么是中心极限定理中心极限定理分为多种,其中最简单的就是独立同分布的中心极限定理。 用公式表示就是验证: 服从标准正太分布。 代码验证分为两步 第一步:产生数据 第二步:验证数据服从...

    首先我们要知道什么是中心极限定理:中心极限定理分为多种,其中最简单的就是独立同分布的中心极限定理。

    用公式表示就是验证:

               Y=(\sum X_{i}-nE(X))/(\sigma \sqrt{ n})           服从标准正太分布。

    代码验证分为两步

    第一步:产生数据

    第二步:验证数据服从正太分布

    具体如下:

    #Date:Fri Nov 01 17:40:08 2019 
    
    #Name:XuKun
    
    #------------------------------
    
    
    # 产生数据--------------------------
    sample=c() # 存放数据
    k=10000 # 实验10000次,每次10000个样本
    for(i in 1:10000){
      # 从参数为0.5的0-1分布总体中抽取10000个样本
      data2=rbinom(k,1,0.5) 
      # 参数为0.5的0-1分布,均值为0.5,方差为0.25
      sample[i]=(sum(data2)-k*0.5)/(sqrt(k*0.25)) 
    }
    
    
    # 验证分布------------------------------
    hist(sample) # 从图中可以大致判断sample服从标准正太分布
    s=seq(min(sample),max(sample),0.5) # 划分长度为0.2的区间
    A=table(cut(sample,br=s));length(A) # 统计
    plot(A/sum(A)) # 概率直方图
    mean(sample);sd(sample) # 看一下总体的均值与方差
    
    # # 用Pearson卡方检验,验证sample是否为标准正太分布
    q=pnorm(s,0,1);
    n=length(q)
    p=numeric(n-1)
    p[1]=q[2]
    p[n-1]=1-q[n-1]
    for(i in 2:(n-2)){
      p[i]=q[i+1]-q[i]
    }
    chisq.test(A,p) # 以可看到p值很大,所以不能拒绝原假设,即样本服从标准正太分布
    
    
        

    如果有什么不懂的,欢迎给我发送邮件2587101536@qq.com

     

     

    展开全文
  • 中心极限定理是统计学中比较重要的一个定理。 本文将通过实际模拟数据的形式,形象地展示中心极限定理是什么,是如何发挥作用的。什么是中心极限定理(Central Limit Theorem)中心极限定理指的是给定一个任意分布的...

    3c264f12c27619bce39d46ccd103637c.png

    中心极限定理是统计学中比较重要的一个定理。 本文将通过实际模拟数据的形式,形象地展示中心极限定理是什么,是如何发挥作用的。

    什么是中心极限定理(Central Limit Theorem)

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

    我们先举个栗子?

    现在我们要统计全国的人的体重,看看我国平均体重是多少。当然,我们把全国所有人的体重都调查一遍是不现实的。所以我们打算一共调查1000组,每组50个人。 然后,我们求出第一组的体重平均值、第二组的体重平均值,一直到最后一组的体重平均值。中心极限定理说:这些平均值是呈现正态分布的。并且,随着组数的增加,效果会越好。 最后,当我们再把1000组算出来的平均值加起来取个平均值,这个平均值会接近全国平均体重。

    其中要注意的几点:

    1. 总体本身的分布不要求正态分布  
      上面的例子中,人的体重是正态分布的。但如果我们的例子是掷一个骰子(平均分布),最后每组的平均值也会组成一个正态分布。(神奇!)

    2. 样本每组要足够大,但也不需要太大  
      取样本的时候,一般认为,每组大于等于30个,即可让中心极限定理发挥作用。

    话不多说,我们现在来一步步看到中心极限定理是如何起作用的。

    用实际数据来展示中心极限定理

    注:我们使用python语言以及iPython Notebook来生成和展现数据。不懂的童鞋可以略过代码

    第一步, 生成数据

    假设我们现在观测一个人掷骰子。这个骰子是公平的,也就是说掷出1~6的概率都是相同的:1/6。他掷了一万次。我们用python来模拟投掷的结果:

    import numpy as np 
    random_data = np.random.randint(1, 7, 10000)
    print random_data.mean() # 打印平均值
    print random_data.std() # 打印标准差

    生成出来的平均值:3.4927 (每次重新生成都会略有不同)  
    生成出来的标准差:1.7079

    平均值接近3.5很好理解。 因为每次掷出来的结果是1、2、3、4、5、6。 每个结果的概率是1/6。所以加权平均值就是3.5。

    第二步,画出来看看

    我们把生成的数据用直方图画出来直观地感受一下:

    b556fa4a33e12268c4523625ca666dbb.png

    直方图01

    可以看到1~6分布都比较平均,不错。

    第三步,抽一组抽样来试试

    我们接下来随便先拿一组抽样,手动算一下。例如我们先从生成的数据中随机抽取10个数字:

    sample1 = []
    for i in range(0, 10):
    sample1.append(random_data[int(np.random.random() * len(random_data))])

    print sample1 # 打印出来

    这10个数字的结果是: [3, 4, 3, 6, 1, 6, 6, 3, 4, 4]  
    平均值:4.0  
    标准差:1.54

    可以看到,我们只抽10个的时候,样本的平均值(4.0)会距离总体的平均值(3.5)有所偏差。
    有时候我们运气不好,抽出来的数字可能偏差很大,比如抽出来10个数字都是6。那平均值就是6了。 为什么会出现都是6的情况呢?因为我比较6...哦不是,因为这就是随机的魅力呀!

    不过不要担心,接下去就是见证奇迹的时刻。

    第四步,见证奇迹的时刻

    我们让中心极限定理发挥作用。现在我们抽取1000组,每组50个。
    我们把每组的平均值都算出来。

    samples = []
    samples_mean = []
    samples_std = []

    for i in range(0, 1000):
    sample = []
    for j in range(0, 50):
    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

    这一共1000个平均值大概是这样的:[3.44, 3.42, 3.22, 3.2, 2.94 ... 4.08, 3.74] (我肯定不会把1000个数字都写完,又没有稿费可以骗)

    然后,我们把这1000个数字用直方图画出来:

    14c1f158c304c449980231d12a454d84.png

    直方图02

    TADA! 完美地形成了正态分布。

    结果打印如下:

    平均值:3.48494  
    标准差:0.23506

    实际应用

    在实际生活当中,我们不能知道我们想要研究的对象的平均值,标准差之类的统计参数。中心极限定理在理论上保证了我们可以用只抽样一部分的方法,达到推测研究对象统计参数的目的。
    在上文的例子中,掷骰子这一行为的理论平均值3.5是我们通过数学定理计算出来的。而我们在实际模拟中,计算出来的样本平均值的平均值(3.48494)确实已经和理论值非常接近了。


    作者:朱曦炽
    链接:https://www.jianshu.com/p/cb7145e4c4bd

    历史文章:

    关于基于树的建模的完整教程(从R&Python)

    使用python制作词云:快速获取关键信息

    PySpark之啤酒与尿不湿的故事

    PySpark 之Spark DataFrame入门

    PowerBI搭建自助数据分析平台:数据、指标、可视化

    绘制桑基图(sankey diagram):快速追踪目标变化的可视工具

    PySpark读取Excel

    17个新手常见Python运行时错误

    PySpark 之批量执行SQL语句

    python基础入门教程《python入门经典》

    开源BI Metabase与Spark SQL的碰撞

    为了更好的服务数据圈内同学,我们需要更多的志愿者,主要协助推广转发,寻找更多更好的内容,有兴趣的同学可以联系L23683716,加志愿者群。

    求职招聘,技术交流:

    da3a07d7ad7255c61ea62db21f414fa1.png

    展开全文
  • 中心极限定理是在统计学中除了大数定理的另一块基石,有着极为重要的意义和广泛的应用空间,本文就以通俗的案例来讲解什么是中心极限定理中心极限定理的数据演示以及中心极限定理的应用。什么是中心极限定理中心...

    中心极限定理是在统计学中除了大数定理的另一块基石,有着极为重要的意义和广泛的应用空间,本文就以通俗的案例来讲解什么是中心极限定理,中心极限定理的数据演示以及中心极限定理的应用。

    什么是中心极限定理?

    中心极限定理就是随机样本的均值总是围绕在总体均值周围,且呈正太分布。

    先举个栗子:

    现在要统计燕山大学2015年8000名毕业生三年后的平均薪资情况,把所有的毕业生都调查一遍的话成本太高,现在我们调查25组,每组40人,一共调查1000人,然后求出每一组的平均值,中心极限定理就是说,这些均值呈正太分布,而且随着每组样本的增加,效果会更好。把这些平均值相加再求均值,这个均值就非常接近总体均值了。

    其中有几个点需要注意一下:

    • 不管总体是怎样的分布,最后每组的均值还是呈正太分布
    • 样本每组要足够大,但也不需要太大,取样本的时候,一般认为,每组大于等于30个,即可让中心极限定理发挥作用。

    用实际数据来演示中心极限定理

    注:使用python来模拟数据,不懂的同学可以略过代码

    生成数据:我们用掷骰子这一概率论中经常用到的道具来演示,用python模拟掷100000次骰子,并求总体平均值。

    import numpy as np

    import pandas as pd

    shaizi_data=np.random.randint(1,7,100000) #生成掷骰子随机数据

    print(shaizi_data.mean()) #打印平均值

    print(shaizi_data.std()) #打印标准差

    import matplotlib.pyplot as plt

    var=np.bincount(shaizi_data) #频次统计

    plt.bar([1,2,3,4,5,6],var[1:],0.5) #绘制条形图

    plt.show()

    平均值:3.5049 ,标准差:1.697(每次生成数据都会有细微的差别)

    把生成的数据用条形图图展示出来是这样的:1~6的分布都很均匀,ok~

    65f25021b1a594036916b1ff5a31080d.png

    10万次掷骰子频数分布直方图

    下面就是见证奇迹的时刻,我们要在此数据集上来验证中心极限定理:

    先抽取1000组数据,每组100个样本,结果见下图:

    分组均值的均值:3.498,分组均值的标准差:0.167

    2898e9948ae6690dfc60fb723dd59918.png

    抽样均值的分布规律

    那在不同的组数与组内样本数量的情况下,是不是都是这样的呢,下边就限定组数进行对比,每组100个样本,分别抽取50组,100组,1000组,10000组来观察数据,以下是代码实现:

    for m,k in zip([50,100,1000,10000],[221,222,223,224]): #限定不同的组内样本数

    n=1000

    s=[]

    for i in range(n):

    x_=0

    for i in range(m):

    x=shaizi_data[int(np.random.random()*100000)]

    x_=x_+x

    x_=x_/m

    s.append(x_)

    s=np.array(s)

    print(s.mean())

    print(s.std())

    plt.subplot(k)

    plt.hist(s,40,range=[3,4],edgecolor="black")

    plt.show()

    图见下方:

    ef39a8d8fec69dab2666e7d782e1aa3f.png

    相同样本数,不同组数的抽样结果

    组数 均值 标准差

    50 3.518 0.173

    100 3.488 0.162

    1000 3.495 0.172

    10000 3.490 0.171

    随着组数的增多,样本均值的均值就越来越靠近总体均值,也就是说,在可以的情况下,取样的组数尽可能多,那么样本均值就越能够代表总体均值。

    下边再看一下组数不变的情况下,每组内样本数量不同会发生什么变化。一共取1000组,每组数据的样本数量分别限制在50,个,100个,1000个,10000个,看效果:

    47fc0cf525fd771e61c07ca5bfa69ec9.png

    不同样本数量的随机样本均值分布

    每组内的样本个数 均值 标准差

    50 3.493 0.240

    100 3.499 0.167

    1000 3.494 0.055

    10000 3.492 0.017

    在组数不变,组内样本越来越多的情况下,样本均值的标准差越来越小,样本均值越来越向总体均值靠拢 。

    中心极限定理在实际当中的应用主要有两方面:

    1. 抽样估计:这种情况是我们不能知道我们想要研究的对象的平均值,标准差之类的统计参数。中心极限动力在理论上保证了我们可以只用抽样一部分的方法,达到研究推测对象统计参数的目的。就像上文的例子中,通过调研部分毕业生的薪资水平而推算出整体毕业生的平均薪资。
    2. 假设检验:这种情况下,是我们已知总体的分布,来计算样本的置信区间,或者规定了规定了样本空间反向计算样本容量。典型的应用场景是,计算炮弹的命中几率。

    中心极限定理与大数定理的关系:

    大数定理证明了样本平均值趋近于总体平均值的趋势,但是却没有量化样本平均值趋向于总计平均值的概率,而中心极限定理证明了这一点,具体的说明了,随机样本平均数与总体平均数的差值不差过一定范围的概率大小问题。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,419
精华内容 567
关键字:

中心极限定理