高斯正态分布

作者: 寻松点点 | 来源:发表于2019-12-04 09:54 被阅读0次

    正态分布,一般都只会讲公式,怎么证明的就不提了。我遇到这家伙有两个地方:一个是高中数学课上;一个是本科《误差理论和测量平差》课上。找点资料,想自己推到一下如何得到高斯正态分布的公式。

    正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian Distribution)。我习惯合起来叫高斯正态分布。(刚好和Linux Distribution:linux发行版的英文单词一样)

    image.png

    文献阅读摘要

    1809 年,高斯发表了其数学和天体力学的名著《绕日天体运动的理论》。在此书末尾,他写了一节有关“数据结合”(data combination )的问题,实际涉及的就是误差分布规律的确定问题。

    19 世纪数理统计学

    确定最大似然估计值的问题就归结为微分学中的求最大值问题了

    高斯分布数学公式

    f(x)=\frac{1}{ \sqrt{2\pi\sigma} } \cdot e^{ \frac{-(x-\mu)^2}{2\sigma^2}}
    期望(平均数):μ
    标准差:σ
    方差σ^2为。
    \mu=0\sigma=1时候称为:标准正态分布

    f(x)=\frac{1}{ \sqrt{2\pi} } \cdot e^{ \frac{-(x)^2}{2 }}

    绘制Gaussian Distribution曲线的三种方式

    GGB绘制

    image.png

    Python绘制

    Figure_1.png
    import numpy as np
    import matplotlib.pyplot as plt
    import math
    # Python实现正态分布
    # 绘制正态分布概率密度函数
    u = 0   # 均值μ
    sig = math.sqrt(2)  # 标准差δ
    
    x = np.linspace(u - 3*sig, u + 3*sig, 50)
    x_01 = np.linspace(u - 6 * sig, u + 6 * sig, 50)
    y_sig = np.exp(-(x - u) ** 2 /(2* sig **2))/(math.sqrt(2*math.pi)*sig)
    
    
    plt.plot(x, y_sig, "r-", linewidth=2)
    plt.grid(True)
    plt.show()
    
    

    Matlab

    matlab绘制正态分布概率密度函数图像的命令为normpdf,normpdf函数的调用格式为normpdf(x,mu,sigma),其中mu为0,sigma为1时,为标准正态分布。

    image.png
    x=-3:0.1:3;
    y=normpdf(x,0,1);
    plot(x,y,'r')
    

    在高斯分布中有三个数学符号,先来解释这个三个数学符号的含义,然后再说明这个公式的推导思路和推导方法。
    三个符号\mu,\sigma,e在数学上分别叫做平均值(又称数学期望),标准差,自然数。即:
    平均值(又称数学期望):\mu
    标准差:\sigma
    自然数:e

    1.平均值\mu;方差\sigma^2;标准差\sigma数学公式

    平均数(又叫数学期望)

    对于数据:
    x_1 \ x_2\ x_3\ x_4\cdots \ x_n

    平均数:

    \mu= \frac{1}{n} \cdot \sum_{i=1}^{n}{x_i}

    语言解释:平均数就是所有数加起来的和除以数据个数n。
    数学的含义是:数据中间位置的具体数值。

    方差和标准差

    详细说明方差方差和标准差之前,先复习一下关于勾股定理(在西方又称毕达哥拉斯定理)和平面两点间距离公式
    在直角三角形中,对于边长a,b,c有如下关系:
    c^2=a^2+b^2
    c=\sqrt{a^2+b^2 };a=\sqrt{c^2 -b^2 }

    在平面坐标系x-o-y下对任意两点P(x_1,y_1)Q(x_2,y_2)间的距离D有:
    D=\sqrt{(x_1-x_2)^2-(y_1-y_2)^2}

    通过勾股定理和平面两点间距离公式可以看出,型如a=\sqrt{c^2 -b^2 }
    D=\sqrt{(x_1-x_2)^2-(y_1-y_2)^2}表示的含义为两个之间的距离。数值越小,证明两个之间越近。

    一组数据,平均数是这个数据的中心,那么就可以用其他数据到平均数的距离来衡量数据和平均数的远近关系。即这组数据是聚拢一些呢,还是分散一些呢。
    方差\sigma^2
    \sigma^2=\frac{ 1 }{ n} \cdot { \sum_{i=1}^n (x_i-\mu)^2 }

    因为距离D是需要开方的,所以方差的含义是距离的平方。对开方后的方差称为标准差\sigma
    \sigma=\sqrt{\sigma^2}=\sqrt{ \frac{ 1 }{ n} \cdot { \sum_{i=1}^n (x_i-\mu)^2 } }

    2.案例计算——以Matlab为工具

    假设有两组数据:
    A=-3 ;-2; -1; 0; 1; 2; 3
    B=-6; -4; -2; 0; 2; 4; 6

    计算平均数:

    \mu_A=0
    \mu_B=0

    计算标准差和方差

    \sigma_A=2.1602 ;\sigma_A^2=4.6667
    \sigma_B=4.3205;\sigma_B^2=18.667

    >>  A=[-3 -2 -1 0 1 2 3];
    >> B=[-6 -4 -2 0 2 4 6];
    #计算平均值
    >> mean(A)
    ans = 0
    >> mean(B)
    ans = 0
    #计算标准差
    >> ua=std(A)
    ua =  2.1602
    >> ub=std(B)
    ub =  4.3205
    #计算方差
    >> ua**2
    ans =  4.6667
    >> ub**2
    ans =  18.667
    

    3.信息提取

    平均数

    \mu_A=\mu_B=0
    说明两组数据的中间值数值一样,且都为零。平均值可以谅解为此数组中的中心位置。

    标准差

    \sigma_A=2.1602 ;\sigma_A^2=4.6667
    \sigma_B=4.3205;\sigma_B^2=18.667
    \sigma_A<\sigma_B说明:
    A组数据之间的距离较小,数据较聚拢;
    B组数据之间的距离较大,数据较分散;

    image

    关于自然数e

    已知的第一次用到常数e,是莱布尼茨于1690年和1691年给惠更斯的通信,以b表示。1727年欧拉开始用e来表示这常数;而e第一次在出版物用到,是1736年欧拉的《力学》(Mechanica)。虽然以后也有研究者用字母c表示,但e较常用,终于成为标准。
    用e表示的确实原因不明,但可能因为e是“指数”(exponential)一字的首字母。另一看法则称a,b,c和d有其他经常用途,而e是第一个可用字母。不过,欧拉选这个字母的原因,不太可能是因为这是他自己名字Euler的首字母,因为他是个很谦虚的人,总是恰当地肯定他人的工作。

    e^{i \pi}+1=0欧拉公式看出,把字母e定义成自然数,和欧拉是有直接关系的。倒不太相信百科里说的欧拉选这个字母的原因,不太可能是因为这是他自己名字Euler的首字母,因为他是个很谦虚的人,总是恰当地肯定他人的工作。

    e=\lim\limits_{x \to \infty }(1+\frac{1}{x})^x

    其实从这个公式还是不太能看出来e=2.71828,一开始谁会想到这个式子就极限就是自然数e呢。

    但我们可以从对数和指数的关系来联系e是怎么来的。

    f(x)^{g(x)}=e^{g(x)lnf(x)} \quad 转化为 A\cdot B型函数相乘形式
    利用对数运算性质中的化平方为相乘的特性,我们知道自然数在对数运算中是最常用的底数。

    对于对数运算:log_ab=N
    对于指数求导(a^x)'=a^x \cdot lna
    那么如果lna=1就好了,a等于多少,才会使得lna=1呢?
    恰巧a等于自然数e的时候,lne=1.
    于是,可以将a=e带入指数求导公式:
    (e^x)'=e^x
    对函数求导后依旧是其本身,这是一个很好的性质。

    е主要出现在涉及增长的地方,比如说经济增长、人口增长、放射性衰变等,可以说е代表了自然率之美。
    比如某个市人口为120万人,每年的人口增长率为20%:
    一年后人口:100万+100万x20%=100万(1+20%)=120万
    两年后人口:120万+120万x20%=120万(1+20%)=100万(1+20%)(1+20%)=
    =100万(1+20\%)^2;指数2对应进过2年的人口增长
    三年后人口:==100万(1+20\%)^3
    四年后人口:==100万(1+20\%)^4
    X年后人口:==100万(1+20\%)^X

    当人口增长率不可能一直保持20%,因为生存空间有限,增长率应该是随着时间而降低的。假设增长率和时间X成反比,即增长率为\frac{1}{X}

    那么上述人口增长的数学模型可以抽象为:
    f(x)=(1+\frac{1}{X})^X
    当我们想知道很多年后的人口增长,即时间X趋向无穷\infty的人口时候即可得极限:

    \lim\limits_{x \to \infty}(1+\frac{1}{x})^x=e

    Reference

    为什么正态分布如此常见
    为什么数据科学家都钟情于最常见的正态分布?

    相关文章

      网友评论

        本文标题:高斯正态分布

        本文链接:https://www.haomeiwen.com/subject/qraawctx.html