R - 二項分布:初學者的指南

你好,未來的R語言編程者!今天,我們將要進入R語言中二項分布的迷人世界。如果你之前從未編過程,也不用擔心——我將成為你這次旅程中的友好指導。在本教程結束時,你將能夠像專業人士一樣操縱二項分布!

R - Binomial Distribution

二項分布是什麼?

在我們進行代碼編寫之前,讓我們先來了解一下什麼是二項分布。想像一下你拋硬幣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