R - 二項分布:入門者のガイド
こんにちは、将来のRプログラマーさんたち!今日は、Rでの二項分布の魅力あふれる世界に潜り込もうと思います。心配しないでください。これまでにコードを書いたことがない方でも、私はあなたの親切なガイドとしてこの旅を案内します。このチュートリアルの終わりまでに、あなたはプロのように二項分布を操作できるようになるでしょう!
二項分布とは?
コードに飛び込む前に、まず二項分布とは何かを理解しましょう。例えば、コインを10回投げます。二項分布は、特定の数の表がでる確率を計算するのに役立ちます。これは、一定回数の独立試行における成功の確率を計算することについてです。
では、Rが提供する二項分布を扱うための主要な4つの関数を見てみましょう。
Rにおける二項分布の素晴らしい4つの関数
Rは私たちに、二項分布を扱うための4つの強力な関数を提供しています。それ们を紹介します:
関数 | 目的 |
---|---|
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)を使用
例:品質管理
ある工場では電球を生産しています。95%の品質基準を維持するために、100個の電球のbatchの中で不良品が最大何個まで許容できるかを知りたいです。
max_defects <- qbinom(0.05, size = 100, prob = 0.03, lower.tail = FALSE)
print(max_defects)
このコードは以下の結果を表示します:
[1] 6
これは、95%の品質基準を維持するために最大6個の不良品が許容できることを意味します。
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回のコイン投げのセットにおける表の数を表しています。ご覧の通り、毎回ランダムです!
すべてを合わせて
これらの各関数を実際のシナリオに使ってみましょう。例えば、天気予報士として雨の日を予測する場合を考えます。
# 7日間で正確に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