概率论与R语言

随机试验

定义

在概率论中,把具有以下三个特征的试验称为随机试验.

  1. 可以在相同的条件下重复的进行
  2. 每次试验的可能结果不止一个,并且能事先明确试验的所有可能结果
  3. 进行一次试验之前不能确定那一个结果会出现

R语言编程模拟随机试验

模拟投硬币10000次

> result = sample(0:1,10000,replace = TRUE)
> length(which(result==0))/length(result)
[1] 0.5029
> length(which(result==1))/length(result)
[1] 0.4971

模拟抛骰子10000次


> result=sample(1:6,10000,replace=TRUE)
> length(which(result==1))/length(result)
[1] 0.1658
> length(which(result==2))/length(result)
[1] 0.1654
> length(which(result==3))/length(result)
[1] 0.1707
> length(which(result==4))/length(result)
[1] 0.1714
> length(which(result==5))/length(result)
[1] 0.1609
> length(which(result==6))/length(result)
[1] 0.1658

几何概率(连续)

定义

当随机试验的样本空间是某个区域,并且任意一点落在度量 (长度、 面积、体积) 相同的子区域是等可能的,则事件 A 的概率可定义为
P(A) = S(A)/S
其中S是样本空间的度量,S(A)是构成事件A的子区域的度量,这样借助于几何上的度量来合理规定的概率成为几何概型

说明:当古典概型的实验结果为连续无穷多个时候就归结为几何概型

蒲丰投针实验

1777年,法国科学家蒲丰(Buffon)提出了投针
试验问题.平面上画有等距离为a(a > 0)的一些平行直
线,现向此平面任意投掷一根长为b( b < a )的针,试求
针与某一平行直线相交的概率.

历史上一些学者的计算结果(直线距离a=1)
蒲丰投针实验历史结果

R语言实现蒲丰投针实验

> n=50000
> a=1.0
> b=0.85
> m=0
> for(i in 1:n)
+ {
+ x= runif(1, min = 0, max = a/2)
+ fai= runif(1, min = 0, max = pi)
+ if(x<=b/2*sin(fai)) m=m+1
+ }
> print(m)
[1] 27266
> print((2*b*n)/(a*m))
[1] 3.117436

两点分布

设随机变量X只可能取0与1两个值,它的分布律

X 0 1
P(k) 1-p p

R生成两点分布的随机数:

rbinom(生成次数, 1, p)

模拟抛硬币100次:

> sample(c(0,1), 100, replace = TRUE, prob = c(1/2,1/2))
  [1] 1 0 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 0 1 1 0 0 0
 [27] 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1
 [53] 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 1 0 1 0 0 1
 [79] 0 0 1 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 0 1 1
> 

模拟抛骰子10次

> sample(1:6, 10, replace = TRUE, prob = c(1/6,1/6,1/6,1/6,1/6,1/6))
 [1] 3 6 3 6 1 1 4 4 2 3

二项分布

定义

若X表示n重伯努利试验中事件A发生的次数,X属于{0,1,2,3,…,n},X的分布律为

X 0 1 k n
P(k) qⁿ (n 1)pq(ⁿ﹣¹) (n k)pkq(ⁿ﹣k) pⁿ

称这样的分布为二项分布,记为X ~ b(n,p)

R语言实现二项分布

例1

在相同条件下相互独立地进行 5 次射击,每次射击时击中目标的概率为 0.6 ,则击中目标的次数 X 服从 b (5,0.6) 的二项分布

> x=dbinom(0:5,5,0.6)
> x
[1] 0.01024 0.07680 0.23040 0.34560 0.25920 0.07776

例2

一大批产品中一级品率为0.2,随机抽查20只,问20只产品中恰好有k(k=0,1,2,…,20)只一级品的概率

> x=dbinom(0:20,20,0.2)
> x
 [1] 1.152922e-02 5.764608e-02 1.369094e-01
 [4] 2.053641e-01 2.181994e-01 1.745595e-01
 [7] 1.090997e-01 5.454985e-02 2.216088e-02
[10] 7.386959e-03 2.031414e-03 4.616849e-04
[13] 8.656592e-05 1.331783e-05 1.664729e-06
[16] 1.664729e-07 1.300570e-08 7.650410e-10
[19] 3.187671e-11 8.388608e-13 1.048576e-14

图示概率分布

> plot(x,type="h")

这里写图片描述

例3

某人射击命中率为0.2,独立射击200次,至少击中两次的概率

> sum(dbinom(2:200,200,0.02))
[1] 0.9106245
> dbinom(2:200,200,0.02)
  [1]  1.457727e-01  1.963468e-01  1.973486e-01  1.578789e-01  1.047156e-01
  [6]  5.922689e-02  2.916018e-02  1.269559e-02  4.948688e-03  1.744436e-03
 [11]  5.607115e-04  1.654847e-04  4.511026e-05  1.141566e-05  2.693746e-06
......

泊松分布

二项分布 — (np->入(n->+8) —> 泊松分布

R语言:

dpois(x, lambda)
plot(dpois(0:10 , 2))
这里写图片描述

例1

在一天的某段时间内出事故的概率
为0.0001,在每天的该段时间内有1000 辆汽车通
过,问出事故的次数不小于2的概率是多少?

> sum(dbinom(2:1000,1000,0.0001))
[1] 0.004674768
> sum(dpois(2:1000,0.1))
[1] 0.00467884
> plot(dpois(0:10 ,  2))

例2

R语言 二项分布 泊松分布 循环语句 对比

> qbinom(0.99, 300, 0.01)
[1] 8
> qpois(0.99, 300*0.01)
[1] 8
> for(i in 0:300) { if(sum(dpois(0:i,3))<0.99) next else {print(i);break}}
[1] 8

例3

例6 设有80台同类型设备,各台工作是相互独立的发生故障的概率都是 0.01,且一台设备的故障能由一个人处理. 考虑两种配备维修工人的方法 , 其一是由四人维护,每人负责20台; 其二是由3人共同维护台80.试比较这两种方法在设备发生故障时不能及时维修的概率的大小.

> ppois(3, 0.8, lower.tail = FALSE)
[1] 0.009079858
> 1-ppois(3, 0.8)
[1] 0.009079858
> 1-sum(dpois(c(0,1,2,3), 0.8)) 
[1] 0.009079858

几何分布

若随机变量X的分布律为

X 1 2 k
P(k) p qp pq(k﹣¹)

,p + q = 1
则称X服从几何分布

R语言:dgeom(x,p)

待更。。。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页