zoukankan      html  css  js  c++  java
  • 【程序员眼中的统计学(6)】几何分布、二项分布及泊松分布:坚持离散

    几何分布、二项分布及泊松分布:坚持离散

    作者 白宁超
    2015年8月4日13:08:28

    摘要:程序员眼中的统计学系列是作者和团队共同学习笔记的整理。首先提到统计学,很多人认为是经济学或者数学的专利,与计算机并没有交集。诚然在传统学科中,其在以上学科发挥作用很大。然而随着科学技术的发展和机器智能的普及,统计学在机器智能中的作用越来越重要。本系列统计学的学习基于《深入浅出统计学》一书偏向代码实现,需要读者有一定基础,可以参见后面PPT学习)。正如(吴军)先生在《数学之美》一书中阐述的于统计和数学模型对机器智能发挥重大的作用。诸如:语音识别、词性分析、机器翻译等世界级的难题也是从统计中找到开启成功之门钥匙的。尤其是在自然语言处理方面更显得重要,因此,对统计和数学建模的学习是尤为重要的。最后感谢团队所有人的参与。( 本文原创,转载注明出处几何分布、二项分布及泊松分布:坚持离散   )

     目录


    【程序员眼中的统计学(1)】 信息图形化:第一印象

    【程序员眼中的统计学(2)】集中趋势度量:分散性、变异性、强大的距

    【程序员眼中的统计学(3)】概率计算:把握机会

    【程序员眼中的统计学(4)】离散概率分布的运用:善用期望

    【程序员眼中的统计学(5)】排列组合:排序、排位、排

    【程序员眼中的统计学(6)】几何分布、二项分布及泊松分布:坚持离散

    【程序员眼中的统计学(6.1)】原创实现几何分布算法以及应用

    【程序员眼中的统计学(6.2)】原创实现二项分布算法以及应用

    【程序员眼中的统计学(7)】正态分布的运用:正态之美

    【程序员眼中的统计学(8)】统计抽样的运用:抽取样本

    【程序员眼中的统计学(9)】总体和样本的估计:进行预测

    【程序员眼中的统计学(10)】假设检验的运用:研究证据

    【程序员眼中的统计学(11)】卡方分布的应用

    【程序员眼中的统计学(12)】相关与回归:我的线条如何?

    1 回顾题引


    1 问题?

    小明滑雪: 每次(独立事件)试滑成功的概率0.2,不成功的概率0.8.则

    成功失败
    0.2 0.8

    1、试滑两次成功的概率?
    2、试滑一次或两次猜中的概率?
    3、试滑10000次,首次成功的概率?
    4、试滑第10000次以上成功的概率?

    2 概率树:

    3 解答:

    1、概率树求概率

    设X最终试滑成功次数,则:
    P(X=1)=P(第1次试滑成功)=0.2 【:试滑一次成功的概率】
    P(X=2)=P(第1次试滑失败AND第2试滑成功)=0.2 * 0.8=0.16 【:试滑两次成功的概率】
    P(X<=2)=P(X=1)+P(X=2)=0.36 【
    :试滑一次或两次猜中的概率】

    2、试滑10000次,首次成功的概率?

    $$
    P(x=10000)=q^{10000-1}p=0.8^{9999}*0.2
    $$

    3、试滑第10000次以上成功的概率?

    $$
    P(x>10000)=q^{10000}p=0.8^{10000}
    $$

    2  几何分布


    1、概念

    什么是几何分布?

    【百度百科】几何分布是离散型概率分布。在n次伯努利试验中,试验k次才得到第一次成功的机率。详细的说,是:前k-1次皆失败,第k次成功的概率。
    【课本】如果p代表成功概率,则1-p即q代表失败概率使用以下:

    公式叫做概率的几何分布。

    2、条件、众数、公式、方差、期望

    • 几何分布条件
      1、进行一系列相互独立的实验。
      2、每一次实验既有成功,又有失败的可能,且单次实验成功概率相等。
      3、为了取得第一次成功需要进行多少次实验。
    • 众数:
      任何几何分布的众数都是1,因为r=1时,P(X=1)最大
    • 表达式(X符合几何分布,其中成功概率p):
      X ~ G (p) 或者 X ~ Geo (p)

         X表示随机发生的次数,p表示成功的概率。(补) 

    • 计算公式:(成功概率为p,失败概率为q,试验次数为r)
      1、第r次试验第一次成功: P(X=r)=pq^{r-1}
      2、需要试验r次以上才第一次成功: P(X>r)=q^r
      3、试验r次或者不到r次才第一次成功:P(X<=r)=1-q^r
    • 计算方差和期望:
      期望:E(X)=1/p
      期望特点:随着x变大,累计总数和越来越接近一个特定值。
      方差:Var(X)=q/p^2
      方差特点:随着x变大,方差越来越接近特定值

    3、优缺点

    • 优点:
      简化概率、数学期望、方差的计算
    • 缺点: 试验次数一定,求成功次数。或者成功与失败事件非独立。

    4、实例

    • 应用科学:数学以及相关领域
    • 适用领域范围:自然数学,应用数学,高等数学,概率论
    • 射击比赛等

    5、核心代码

        /**
     * 在n次伯努利试验中,试验r次才得到第一次成功的机率 P(X=r)=pq^{r-1}
     * @param p double型保留一位小数,表示成功的概率
     * @param q double型保留一位小数,表示失败的概率即1-p
     * @param r 整型,实验次数
     * @return PX double型保留两位小数,第一次成功的机率
     */
    public static double FirstSuccess(double p,double q,int r)
    {
        double PX=0;
        double k=(double)(r-1);
        PX= p*(Math.pow(q, k));
        return PX;
    }
    
    /**
     * 在n次伯努利试验中,需要试验r次以上才第一次成功: P(X>r)=q^r
     * @param q double型保留一位小数,表示失败的概率即1-p
     * @param r 整型,实验次数
     * @return PX double型保留两位小数,需要试验r次以上才第一次成功
     */
    public static double MoreSuccess(double q,int r)
    {
        double PX=0;
        PX= Math.pow(q, r);
        return PX;
    }
    
    /**
     * 在n次伯努利试验中,试验r次或者不到r次才第一次成功:P(X<=r)=1-q^r
     * @param q double型保留一位小数,表示失败的概率即1-p
     * @param r 整型,实验次数
     * @return MorePX double型保留两位小数,需要试验r次以上才第一次成功
     */
    public static double LessSuccess(double q,int r)
    {
        double MorePX=0;
        MorePX= Math.pow(q, r);
        double PX=Double.valueOf(1.0-MorePX);
        return PX;
    }
    
        /**
     * 在n次伯努利试验中,几何分布的期望E(X)=1/p 
     * @param p double型保留一位小数,表示成功的概率
     * @return EX double型保留两位小数,几何分布的期望
     */
    public static double Expectation(double p)
    {
        double EX=0;
        EX= 1.0/p;
        return EX;
    }
    
    /**
     * 在n次伯努利试验中,几何分布的方差Var(X)=q/p^2
     * @param p double型保留一位小数,表示成功的概率
     * @param q double型保留一位小数,表示失败的概率即1-p
     * @return VX double型保留两位小数,几何分布的方差
     */
    public static double Variance(double p,double q)
    {
        double VX=0;
        VX= q/Math.pow(p, 2);
        return VX;
    }
    

     6 原创实现几何分布算法以及应用

    原创实现几何分布算法以及应用

    3 二项分布


    1、概念

    什么是二项分布?
    【百度百科】二项分布即重复n次独立的伯努利试验。在每次试验中只有两种可能的结果,而且两种结果发生与否互相对立,并且相互独立,与其它各次试验结果无关,事件发生与否的概率在每一次独立试验中都保持不变。

    【课本】在相互独立事件中,每道题答对概率为p,答错概率为q。在n个问题中答对r个问题的概率为: 这类问题称之为二项分布。
    【统计学定义二项分布】 在概率论和统计学中,二项分布是n个独立的是/非试验中成功的次数的离散概率分布,其中每次试验的成功概率为p。这样的单次成功/失败试验又称为伯努利试验。实际上,当n = 1时,二项分布就是伯努利分布,二项分布是显著性差异的二项试验的基础。

    2、条件、表达式、两点分布、公式、方差、期望

    • 条件
      1.正在进行一系列独立试验;
      2.每次试验都存在失败和成功的可能,每一次试验的成功概率相同;
      3.试验次数有限。

    • 表达式(试验次数n,成功概率p):
      ξ~B(n,p)

         ξ表示n次随机变量ξ次成功数,p表示成功的概率(补)

    • 两点分布:
      当n=1时,记住 X ~ B (1,p) 即两点分布。
    • 二项分布形状特点:
      P<0.5时图形向右偏移;当p>0.5时,图形向左偏移。
    • 计算概率公式:
      二项分布公式其中
    • 期望:E(X)=np
    • 方差: Var(X)=npq(其中q=1-p)

      如:4(n)个随机事件成功2(r)次,成功概率是0.4(p),不成功概率0.6(q).则成功选择一次是(0.4^2)*(0.6^(4-2)),随机组合C_r_n(补)

    3、优缺点

    优点:在试验次数一定,求成功次数时,几何分布显示不适合的情况下,给予这类问题二项分布能更好的解决。
    缺点:但是面对试验次数不固定,发生事件概率的情况下,显然几何分布与二项分布都不能解决,这里也体现出泊松分布的优势

    4、实例

    • 某地某一时期内出生35名婴儿,其中女性19名(定Sex=0),男性16名(定Sex=1)。问这个地方出生婴儿的性别比例与通常的 男女性比例(总体概率约为0.5)是否不同?数据如表10-2所示。35名婴儿的性别的二项式检验?(参见SPSS演示)
    • n次试验在相同条件下进行,各个观察单位的结果独立,且只能具有相互对立的一种结果,二项分布常用于医学领域。

    5、核心代码实现

    /**
     * 在n次伯努利试验中,在n次独立的伯努利试验发生r次的概率为 
     * P(X=r)=n-C_r*p^{r}*q^{n-r}且n-C_r=n!/r!*(n-r)!
     * @param n int,表示总的独立事件
     * @param r int,表示发生r次
     * @param p double型保留一位小数,表示成功的概率
     * @param q double型保留一位小数,表示失败的概率即1-p
     * @return PX double型保留两位小数,第一次成功的机率
     */
    public static double RSucess(int n,int r,double p,double q)
    {
        double PX=0;
        double k=(double)(n-r);
        int kk=n-r;
        //ncr即n-C_r=n!/r!*(n-r)!
        double ncr=NumFormat.factorial(n)/(NumFormat.factorial(r)*NumFormat.factorial(kk));
        PX=ncr*(Math.pow(p, r))*(Math.pow(q, k));
        return PX;
    }
    
    
    
    /**
     * 在n次伯努利试验中,二项分布的期望E(X)=np 
     * @param n int型,表示试验的次数
     * @param p double型保留一位小数,表示成功的概率
     * @return EX double型保留两位小数,几何分布的期望
     */
    public static double Expectation(int n,double p)
    {
        double EX=0;
        EX= Double.valueOf(n)*p;
        return EX;
    }
    
    /**
     * 在n次伯努利试验中,二项分布的方差Var(X)=npq
     * @param n int型,表示试验的次数
     * @param p double型保留一位小数,表示成功的概率
     * @param q double型保留一位小数,表示失败的概率即1-p
     * @return VX double型保留两位小数,二项分布的方差
     */
    public static double Variance(int n,double p,double q)
    {
        double VX=0;
        VX= Double.valueOf(n)*p*q;
        return VX;
    }

     6 原创实现几何分布算法以及应用

    原创实现几何分布算法以及应用

    4 泊松分布


    1、概念

    【课本】单独事件在给定区间随机独立发生,已知事件平均发生数且有限次数,通过以下计算: $$ P(X=r) = {e^{-λ}λ^rover r!} $$这样的一类事件叫做泊松分布。
    特点
    1、不需要一系列试验,描述事件特定区间发生次数。
    2、两个独立的泊松分布相加也符合泊松分布。(即n>50且p<0.1时或np近似等于npq时)
    3、特定条件下可以用来近似代替二项分布。

    2、条件、表达式、特点、公式、众数、方差、期望

    • 条件
      1、单独事件在给定区间内随机独立的发生,给定区别可以是时间或者空间。(一周、一英里)
      2、已知该区间内的事件平均发生次数(发生率),且为有限数值。该事件平均发生次数用λ表示。
    • 表达式(区间内平均发生次数为λ):
    • 泊松分布形状特点:λ小时,分布向右偏斜;当λ大时,分布逐渐对称。
    • 计算概率(e常数2.718,平均发生次数为λ,区间内r次事件):
      $$ P(X=r) = {e^{-λ}λ^rover r!} $$
    • 众数:
      λ是一个整数,则有两个众数λ和λ-1,如不是整数,众数λ。
    • 期望: E(X)=λ
    • 方差: Var(X)=λ
    • 独立随机变量进行组合:
    • 泊松分布与二项分布有何关系?
      当二项分布X~B(n,p)的n很大而p很小时,泊松分布可作为二项分布的近似,其中λ为np。通常当n≧10,p≦0.1,np<=5时,就可以用泊松公式近似得计算,X可以近似表示X~Po(np)。

    问题:为什么n要足够大,p要足够小?

    因为在分时间窗口的时候有个假设:每个时间窗口最多只有一个乘客到达。(时间区间乘客问题)

    3、优缺点

    不需要一系列试验,描述事件特定区间发生次数,特别适用。另外一定条件下替换二项分布带来简便的运算。

    4、实例

    • 应用学科:概率论
    • 某一服务设施在一定时间内到达人数,电话交换机接到呼叫的次数,汽车站台的侯客人数,机器出现的故障次数,自然灾害发生次数,一块产品的缺陷,显微镜下单位分区内的细菌分布数等。
    • 在交通工程的应用、非典流行与传播服从泊松分布
    • 自然现象普遍存在泊松分布现象,主要指大量重复实验中稀有事件发生的次数。

    5、核心代码实现

       /**
     * 泊松分布的概率P(X=r) = {e^{-λ}λ^rover r!(e常数2.718,平均发生次数为λ,区间内r次事件)
     * @param e常数2.718
     * @param λ 整型,平均发生次数
     * @param r 整型,区间内r次事件
     * @return PX double型保留两位小数,泊松分布的概率
     */
    public static double BosongSuccess(int λ,int r)
    {
        double PX=0;
        double e=2.718;
        PX= Math.pow(e, -Double.valueOf(λ))*Math.pow(λ, r)/NumFormat.factorial(r);
        return PX;
    }
    
    
    /**
     * 泊松分布的期望E(X)=λ
     * @param λ double型保留两位小数,表示平均发生次数为λ
     * @return VX double型保留两位小数,泊松分布的期望
     */
    public static double Expectation(double λ)
    {
        double EX=0;
        EX= λ;
        return EX;
    }
    
    /**
     * 泊松分布的方差Var(X)=λ
     * @param λ double型保留两位小数,表示平均发生次数为λ
     * @return VX double型保留两位小数,泊松分布的方差
     */
    public static double Variance(double λ)
    {
        double VX=0;
        VX= λ;
        return VX;
    }

     

    5 本章小结


    1 几何分布

    应用条件:
    进行一系列独立试验,每次试验成功或失败且每次成功概率相同。目的:取第一次成功需要进行多少次试验。
    表达式(X符合几何分布,其中成功概率p):
    X ~ Geo (p)
    几何分布概率算式成立:
    1、第r次试验第一次成功: P(X=r)=pq^{r-1}
    2、需要试验r次以上才第一次成功: P(X>r)=q^r
    3、试验r次或者不到r次才第一次成功:P(X<=r)=1-q^r
    期望方差:
    E(X)=1/p 和 Var(X)=q/p^2

    2 二项分布

    应用条件:
    进行一系列次数有限的独立试验,每次试验成功或失败且每次成功概率相同。目的:第N次试验中成功多少次。
    表达式(X符合二项分布,n是试验次数,其中成功概率p):
    X ~ B (n,p)
    两点分布:
    当n=1时,记住 X ~ B (1,p) 即两点分布。
    二项分布概率算式成立:
    二项分布公式其中
    期望方差:
    E(X)=np 和 Var(X)=npq

    3 泊松分布

    应用条件:
    单事件在给定区间内随机、独立的发生,已知给定区间事件平均发生次数且有限。目的:给定区间内事件发生次数。
    表达式(X符合泊松分布,其中成功概率p):
    X ~ Po(λ)
    泊松分布概率算式成立:

    $$ P(X=r) = {e^{-λ}λ^rover r!} $$ 期望方差:E(X)=λ 和 Var(X)=λ 如果X~Po(λx),Y~Po(λy)且X和Y是独立的,则X+Y~Po(λ_x+λ_y) 如果X~B(n,p)的n很大而p很小时,X可以近似表示X~Po(np)。

    4 泊松分布与二项分布、正态分布的关系

    • 泊松分布代替二项分布
      当n很大且p很小时,可以用X~Po(np)近似代替X~B(n,p).(n>50且p<0.1)或者(q近似1且n很大,np近似等于npq)
    • 正态分布代替泊松分布
      如果X~Po(λ)且λ>15,则可用X~N(λλ)进行近似
    • 正态分布代替二项分布
      二项分布X~B(n,p),当np>5且nq>5时,正态分布代替二项分布.(必须进行连续性修订)
      修订
      小于等于:P(X<=a)连续标度a+0.5即P(X<a+0.5)
      大于等于:P(X>=b)连续标度a-0.5即P(X>b-0.5)
      介于:P(a<=X<=b)连续标度即P(a-0.5<=X<=b+0.5)

    总结:小加大减

    6 内容扩展


     

    • 伯努利试验:进行一系列的重复独立试验,每个试验的结果只有二个,一个结果出现的概率总是p,另一个结果总是q,称为贝努利试验。
    • n重伯努利试验:伯努利试验在相同条件下独立重复进行n次。
    • 两点分布:随机变量X只可能是0或1,其中0<p<1,则称X服从参数为p的两点分布记住X~B(1,p)。
    • 分布分类
      连续型随机分布:正态分布、均匀分布、指数分布、对数正态分布、柯西分布、Gamma分布、瑞利分布、韦伯分布
      离散型随机分布:二项分布、几何分布、超几何分布、泊松分布
      三大抽样分布:卡方分布、F分布、t分布

    7 参考文献


     

    1、几何分布随机函数
    2、matlab生成随机数函数
    3、概率论05 离散分布
    4、SPSS中八类常用非参数检验之二:二项分布(Binomial)检验
    5、指数分布与泊松分布的随机值的产生程序原理解析
    6、几种常见的分布
    7、深入浅出统计学

    8 开源共享 


     PPT:http://yunpan.cn/cFjCmJwN7hj6r访问密码 4ae5

    开源代码:http://yunpan.cn/cFjCxReySUdbR访问密码 ed28

  • 相关阅读:
    C# DataGridView的初始化
    DataGridView固定了列名,怎样将数据内容绑定在列上
    struts2 中的 addActionError 、addFieldError、addActionMessage方法的区别添加错误信息
    <s:iterator>标签迭代数据不显示
    org.hibernate.hql.ast.QuerySyntaxException: tb_voteoption is not mapped [from tb_voteoption where voteID=?]
    struts2导入多个xml引入报错<include>
    没有找到<context:component-scan base-package="">标签
    hibernate.hbm.xml配置文件解析
    Struts2 中#、@、%和$符号的用途
    Some projects cannot be imported because they already exist in the workspace
  • 原文地址:https://www.cnblogs.com/baiboy/p/tjx6.html
Copyright © 2011-2022 走看看