zoukankan      html  css  js  c++  java
  • 概率统计14——几何分布

      我家小朋友年方1岁半,家里每天上午都要出去遛小孩。现在小朋友有两项爱好,在家翻垃圾桶,出门捡烟头。 

      翻垃圾桶可以有效地限制,捡烟头可是防不胜防。

      也许烟头能散发出特殊的能量波动,小区的绿化带和草坪上的大部分烟头都能被小朋友准确地发现,如果他在不规则的前进路线中突然停下了,那肯定是看到了新的烟头。

    错失奖励概率

      在我的严密监视下,小朋友捡烟头的几率已经从原来的“绝不放过”下降到了现在的20%,如果他直到回家还没有烟头,就能得到一个棒棒糖作为奖励。当然,每个烟头对他来说仍然存在着独特的魅力,在最初遇到的3个烟头中没有经受住考验的概率是多少?

      设随机变量X是小朋友最终捡起烟头时所发现的烟头个数,那么:

      最初遇到的3个烟头中没有抵抗住诱惑的概率可以用P(X ≤ 3)表示:

      每个烟头都是一次考验,我的关注点是,小朋友在第几次考验时会捡起烟头?

    质量函数

      小朋友每次遇到烟头的行为都是一个独立的随机试验,试验只有成功和失败两种结果,且对于每个随机试验来说,成功的概率都是相同的。对于小朋友自己来说,捡起烟头是成功,错过才是失败,只要成功一次就没有棒棒糖,试验结束。现在用p表示成功率(捡起烟头的概率),q = 1 – p表示失败率,随机变量X表示第一次成功时所经历的试验次数,那么在进行了r次试验后才遇到第一次成功的概率(或者说在第r次试验取得成功前,需要经历r-1次失败的概率)可以表示为:

      这个分布就是几何分布(Geometric distribution),X服从几何分布,记为X~GE(p)。

      下面的python代码展示了r取不同值时的P(X=r)。

     1 import numpy as np
     2 import matplotlib.pyplot as plt
     3 from scipy import stats
     4
     5 p = 0.2 # 成功率
     6 print('X ~ GE({0})'.format(p))
     7
     8 rs = np.array(range(1, 11, 1)) # 随机变量的取值
     9 # 几何分布 X ~ GE(0.2)
    10 ps = stats.geom.pmf(rs, p) # 每个随机变量对应的概率
    11 for i, r in enumerate(rs):
    12     print('P(X={0})={1}'.format(r, ps[i]))
    13
    14 plt.bar(left=rs, height=ps, width=0.5)
    15 plt.xlabel('r, X=r表示第r次试验才成功')
    16 plt.ylabel('P(X=r)')
    17 plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
    18 plt.show()

      X ~ GE(0.2)

      P(X=1)=0.2

      P(X=2)=0.16000000000000003

      P(X=3)=0.12800000000000003

      P(X=4)=0.10240000000000003

      P(X=5)=0.08192000000000002

      P(X=6)=0.06553600000000002

      P(X=7)=0.052428800000000025

      P(X=8)=0.041943040000000015

      P(X=9)=0.033554432000000016

      P(X=10)=0.026843545600000015

      对于几何分布来说,r是大于等于1的自然数,并且只有成功的概率处于(0, 1)之间才有意义,因此当r = 1时,P(X = r)达到最大值,随着r的增大,P(X = r)也越来越小。

      几何分布是一个典型的长尾分布,第一次就成功的概率是最高的,这看似有违直觉。这里需要注意的是,“第r次才取得成功”和“在r次之内取得成功”是两回事,后者才是概率越来越大。

      实际中有不少随机变量服从几何分布,例如某产品的不合格率为0.05,则首次查到不合格品的检查次数X~GE(0.05)。

    分布的形状

      现在回到问题的关注点:小朋友在第几次考验时会捡起烟头?这个问题并不能确切地回答,可以回答的是,在r次考验之内捡起烟头的概率。这个概率可以用分布函数表示:

      另一种计算方法是:

      P(X > r)表示在取得第一次成功时,前r次试验都失败的概率。F(r)更为专业的说法是:为得到1次成功而进行r次伯努利试验,r的概率分布。

      

      下面的代码展示了几何分布的形状:

    1 fs = stats.geom.cdf(rs, p) # 每个r对应的分布
    2 for i, r in enumerate(rs):
    3     print('F({0})=P(X<={0})={1}'.format(r, fs[i]))
    4
    5 plt.bar(left=rs, height=fs, width=0.5)
    6 plt.xlabel('r, X<=r表示前r次试验至少有一次成功')
    7 plt.ylabel('F(r) = P(X <= r)')
    8 plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
    9 plt.show()

      F(1)=P(X<=1)=0.19999999999999998)

      F(2)=P(X<=2)=0.36)

      F(3)=P(X<=3)=0.488)

      F(4)=P(X<=4)=0.5904)

      F(5)=P(X<=5)=0.67232)

      F(6)=P(X<=6)=0.7378560000000001)

      F(7)=P(X<=7)=0.7902848)

      F(8)=P(X<=8)=0.83222784)

      F(9)=P(X<=9)=0.865782272)

      F(10)=P(X<=10)=0.8926258176)

      小朋友大约有89%的概率在10次考验内捡起烟头,他也因此很少得到棒棒糖。

    期望和方差

      X ~ GE(p),q=1-p,P(X = r) = pqr-1,当r→∞时:

      来看看是怎么得出的。

    期望

      可以根据几何级数的公式继续计算:

      对于几何分布来说,p=0.2表示单次试验成功的概率是0.2,E[X]=1/p=5是在告诉我们,期望在第5次试验时获得成功,或者说5次试验中就有一次趋向成功。

    方差

      根据Var(X) = E[X2] – E[X]2来计算几何分布的方差:

      将①代入:


      出处:微信公众号 "我是8位的"

      本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途! 

      扫描二维码关注作者公众号“我是8位的”

  • 相关阅读:
    hdu 3790 最短路径问题
    hdu 2112 HDU Today
    最短路问题 以hdu1874为例
    hdu 1690 Bus System Floyd
    hdu 2066 一个人的旅行
    hdu 2680 Choose the best route
    hdu 1596 find the safest road
    hdu 1869 六度分离
    hdu 3339 In Action
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/bigmonkey/p/12202690.html
Copyright © 2011-2022 走看看