概率論與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)

待更。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章