通过上一篇博客的学习,我们知道二项分布X~B(n, p)只由试验次数n和"成功"概率p决定。这篇博客将介绍另一个离散分布:几何分布(Geometric distribution),它只由"成功"概率p决定,记为X~G(p)。
1. 定义
同二项分布一样,几何分布也基于伯努利试验,其自变量的定义有下面两种形式:
-
在伯努利试验中,得到首次成功所需要的试验次数k,k的取值范围为{ 1, 2, 3, ... }
-
在得到首次成功之前所经历的失败次数k,k的取值范围为{ 0, 1, 2, 3, ... }
具体用哪一种,取决于惯例和使用方便。为了避免歧义,最好明确说明自变量的取值范围。
由于R中相关函数都采用第二种形式,因此下面将以第二种形式为例(即自变量定义为首次成功之前所经历的失败次数)。
2. 概率分布
假设伯努利试验的成功概率为p,则失败概率为q=1-p。那么首次成功之前经历k次失败的概率为
其中k=0, 1, 2, 3, ....
3. 性质
对于这种形式的几何分布,它的均值和方差分别为:
具体推导过程可参考https://en.wikipedia.org/wiki/Geometric_distribution。
4. R中的相关函数
类似于二项分布,R中也有四个函数可用于几何分布,分别是:
-
dgeom(x, prob)
:返回首次成功之前经历了x次失败的概率 -
pgeom(q, prob)
:返回累积概率 -
qgeom(p, prob)
:返回相应分位点x,详情见下面的例子 -
rgeom(n, prob)
:返回每组试验经历失败的次数
这四个函数都有prob
参数,对应于伯努利试验的成功概率p。下面通过一个例子来了解如何使用它们:
假设不停地掷骰子,直到得到点数6。投掷失败的次数k是随机分布的,取值范围是无穷集合{ 0, 1, 2, 3, ... },并且是一个p=1/6的几何分布。
首先来看k=0到k=20的概率分布图:

可以看到,几何分布是个长尾分布
绘制上图的R代码:
> p <- 1/6 ##成功概率
> px <- dgeom(0:20, p)
> barplot(px,
+ names=0:20,
+ xlab='首次成功之前失败的次数',
+ ylab='P(x)',
+ col='purple')
然后看一下k=0到k=20的累积概率分布图:

绘制上图的R代码:
> fx <- pgeom(0:20, p)
> barplot(fx,
+ names=0:20,
+ xlab='首次成功之前失败的次数',
+ ylab='F(x)',
+ col='purple')
其次,有时想知道,90%概率下我们至多要失败多少次就会成功?(即求F(x)≥0.9对应的最小x值)
> p <- 1/6
> qgeom(0.9, p)
[1] 12
计算结果显示,90%概率下我们至多要失败12次就会成功
最后,重复10000组,每组成功前要失败多少次呢?
> set.seed(12) ##设置随机数种子,使下面随机结果可重复
> p <- 1/6 ##成功概率
> n <- 10000 ##试验组数
> ns <- rgeom(n, p) ##每组失败的次数
> mean(ns) ##失败次数的平均值
[1] 5.0812
> (1-p)/p ##几何分布的失败次数的期望值
[1] 5
> var(ns) ##失败次数的方差
[1] 30.9565
> (1-p)/p^2 ##几何分布的失败次数的方差
[1] 30
计算结果显示,当组数足够大,每组失败次数的平均值和方差与理论值很接近。
几何分布的介绍就到此结束,希望对大家的学习有所帮助,也希望大家多多支持本公众号。
感谢您的阅读!想了解更多有关技巧,请关注我的微信公众号“R语言和Python学堂”,我将定期更新相关文章。

网友评论