R - 二項分布:初學者的指南
你好,未來的R語言編程者!今天,我們將要進入R語言中二項分布的迷人世界。如果你之前從未編過程,也不用擔心——我將成為你這次旅程中的友好指導。在本教程結束時,你將能夠像專業人士一樣操縱二項分布!
二項分布是什麼?
在我們進行代碼編寫之前,讓我們先來了解一下什麼是二項分布。想像一下你拋硬幣10次。二項分布將幫助你計算得到特定數量正面的概率。這就是計算在固定數量的獨立試驗中成功的概率。
現在,讓我們探討R語言為我們提供的四個主要函數,以處理二項分布。
R語言中二項分布的四大函數
R語言為我們提供了四個強大的函數來處理二項分布。讓我們來認識它們:
函數 | 目的 |
---|---|
dbinom() | 計算概率密度 |
pbinom() | 計算累積概率 |
qbinom() | 計算分位數 |
rbinom() | 生成隨機數 |
讓我們詳細探討每一個。
dbinom():概率大師
dbinom()是做什麼的?
dbinom()
函數計算在n次試驗中得到恰好k次成功的概率。這就像在問,“我拋硬幣5次,得到恰好3次正面的機會是多少?”
語法和參數
dbinom(x, size, prob)
- x:我們感興趣的成功次數
- size:試驗的次數
- prob:每次試驗成功的概率
示例:硬幣拋擲
讓我們計算在5次硬幣拋擲中得到恰好3次正面的概率:
probability <- dbinom(3, size = 5, prob = 0.5)
print(probability)
當你運行這段代碼時,你會看到:
[1] 0.3125
這意味著在5次硬幣拋擲中得到恰好3次正面的機會是31.25%。
pbinom():累積概率計算器
pbinom()是做什麼的?
pbinom()
函數計算累積概率——在n次試驗中得到至多k次成功的概率。這就像在問,“我拋硬幣5次,得到3次或更少正面的機會是多少?”
語法和參數
pbinom(q, size, prob, lower.tail = TRUE)
- q:我們感興趣的成功次數
- size:試驗的次數
- prob:每次試驗成功的概率
- lower.tail:如果為TRUE(默認),計算P(X ≤ x);如果為FALSE,計算P(X > x)
示例:考試成績
想像一個有10個問題的選擇題考試,每題有4個選項。猜測的話,得到6個或更少問題正確的概率是多少?
probability <- pbinom(6, size = 10, prob = 0.25)
print(probability)
運行這段代碼會得到:
[1] 0.9803073
這意味著通過純粹猜測得到6個或更少問題正確的概率是98.03%!
qbinom():分位數探索
qbinom()是做什麼的?
qbinom()
函數是pbinom()
的反函數。它為給定的累積概率找到最小的成功次數。
語法和參數
qbinom(p, size, prob, lower.tail = TRUE)
- p:累積概率
- size:試驗的次數
- prob:每次試驗成功的概率
- lower.tail:如果為TRUE(默認),使用P(X ≤ x);如果為FALSE,使用P(X > x)
示例:質量控制
一家製造燈泡的工廠想要知道,在一批100個燈泡中,最多有多少個不合格的燈泡才能保持95%的質量標準。
max_defects <- qbinom(0.05, size = 100, prob = 0.03, lower.tail = FALSE)
print(max_defects)
這段代碼將輸出:
[1] 6
這意味著他們最多可以有6個不合格的燈泡以維持他們95%的質量標準。
rbinom():隨機數生成器
rbinom()是做什麼的?
rbinom()
函數從二項分布中生成隨機數。這就像模擬實際的試驗!
語法和參數
rbinom(n, size, prob)
- n:要生成的隨機值的數量
- size:試驗的次數
- prob:每次試驗成功的概率
示例:模擬硬幣拋擲
讓我們模擬拋硬幣10次,我們將進行5次這樣的實驗:
simulations <- rbinom(5, size = 10, prob = 0.5)
print(simulations)
你可能會得到如下輸出:
[1] 4 6 5 3 7
每個數字代表在一系列10次硬幣拋擲中正面的計數。正如你所見,每次都是隨機的!
結合所有內容
現在,我們已經探討了每個函數,讓我們在實際情況中使用它們。想像你是一個天氣預報員,試圖預測下雨的天數。
# 一周內恰好3天下雨的概率
exactly_three <- dbinom(3, size = 7, prob = 0.3)
# 一周內3天或更少下雨的概率
three_or_fewer <- pbinom(3, size = 7, prob = 0.3)
# 有80%概率的天數
days_with_80_percent <- qbinom(0.8, size = 7, prob = 0.3)
# 模擬10周的降雨
rain_simulations <- rbinom(10, size = 7, prob = 0.3)
print(paste("一周內恰好3天下雨的概率:", exactly_three))
print(paste("一周內3天或更少下雨的概率:", three_or_fewer))
print(paste("有80%概率的天數:", days_with_80_percent))
print("10周的模擬降雨天數:")
print(rain_simulations)
這個綜合示例展示了這些函數如何一起工作來分析和預測降雨模式。
結論
恭喜你!你已經邁出了進入R語言二項分布世界的第一步。記住,熟能生巧。嘗試改變這些示例中的數字,看看會發生什麼。很快,你將會像有經驗的數據科學家一樣使用這些函數!
快樂編程,願概率永遠站在你這一邊!
Credits: Image by storyset