python-几何分布(scipy.stats.geom)

一、摘要

几何分布很简单,描述的是重复进行伯努利试验,直到成功一次时进行的试验次数n的概率分布。例如掷骰子直到1点向上时所进行的试验次数。几何分布是离散型概率分布,要么就试验1次时成功,要么2次时成功,...。没有1.5次时成功的说法 。

 

二、几何分布公式

几何分布概率分布列为:

P(X=k)=(1-p)^{k-1}p,\, \, \, \, \, \, \, k=1,2,3,...

其中p表示一次试验成功的概率。

期望:\frac{1}{p},  方差:\frac{1-p}{p^{2}}

 

三、概率直方图(python计算):

from scipy import stats
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False#用来正常显示负号

p=0.1
X = []
Y=[]
for x in np.linspace(1, 100, 100):
    X.append(x)
  #  Y.append((1-p)**(x-1)*p) #公式计算
    Y.append(stats.geom.pmf(x, p)) #stats.geom工具计算
plt.bar(X, Y, color="red")
plt.xlabel("第一次成功所需的试验次数")
plt.ylabel("概率")
plt.show()

python-几何分布(scipy.stats.geom)_第1张图片

 

四、累积概率分布

用scipy.stats.geom.cdf(k, p)计算k之前(包括k)的累积概率

from scipy import stats
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False#用来正常显示负号

p=0.1
X = []
Y=[]
for x in np.linspace(1, 100, 100):
    X.append(x)
    Y.append(stats.geom.cdf(x, p)) #stats.geom工具计算
plt.bar(X, Y, color="red")
plt.xlabel("试验次数")
plt.ylabel("累积概率")
plt.show()

python-几何分布(scipy.stats.geom)_第2张图片

五、对p的延伸

如果p并不是每次都一样,也就是每次试验成功的概率并不完全相等,可以对公式进行改造。

P(X=k)=\left ( \prod_{i=1}^{i=k-1}(1-p_{i}) \right )p_{k},\, \, \, \, \, \, \, k=1,2,3,...

相应的也可以计算期望

E=\sum_{k=0}^{k=\infty }\left (k\left ( \prod_{i=1}^{i=k-1}(1-p_{i}) \right )p_{k} \right)

根据期望计算公式,现实中由于样本有限,我们可能并没有k 接近无穷时的概率。假设我们只有n个概率样本

\left ( p_{1},p_{2},...,p_{n} \right ),这里有2种方法估计期望:

(1)、取p=(p_{1}+p_{1}+...+p_{n})/n作为平均每次发生的概率,由此计算期望

E=1/p=n/(p_{1}+p_{2}+...+p_{n})

(2)、由于我们没有更多的样本,不妨假设未来一直按样本重复着\left ( p_{1},p_{2},...,p_{n} \right )\left ( p_{1},p_{2},...,p_{n} \right )\left ( p_{1},p_{2},...,p_{n} \right ),...,由此计算期望

E=\frac{1*p_{1}+2*q_{1}p_{2}+3*q_{1}q_{2}p_{3}+...+(n-1)*q_{1}q_{2}...q_{n-2}p_{n-1}+n*q_{1}q_{2}...q_{n-1}}{1-q_{1}q_{2}...q_{n}}(注意看分子最后2项,最后一项没有p)

公式推导过程可以看:几何分布每次概率不同期望公式推导(多个不同p的几何分布期望)

 

问题:

1、某摇号系统,每月摇号一次,由于摇号人数不固定,每个月摇号的中签率不固定。现收集到历史连续24个月摇号中签概率分别为:

0.0023, 0.0030, 0.0031, 0.0035, 0.0029, 0.0022, 0.0024, 0.0040, 0.0026, 0.0035, 0.0028, 0.0029,

0.0038, 0.0033, 0.0027, 0.0042, 0.0058, 0.0035, 0.0025, 0.0028, 0.0035, 0.0033, 0.0032, 0.0041

问:一个人从现在开始摇号直到中签的期望月数是多少?

方法(1):E=1/p=n/(p_{1}+p_{2}+...+p_{n}),p=0.0032458, E=308.087。

方法(2):E=\frac{1*p_{1}+2*q_{1}p_{2}+3*q_{1}q_{2}p_{3}+...+(n-1)*q_{1}q_{2}...q_{n-2}p_{n-1}+n*q_{1}q_{2}...q_{n-1}}{1-q_{1}q_{2}...q_{n}}

结果E=308.638

 到这里,我终于知道为何摇号我总是没有中签。

 

 

author:蓝何忠

email:[email protected]

你可能感兴趣的:(python,数据统计)