「コンバージョン率が本当に10%を超えているのか、確率で知りたい」。そんなとき、ベータ分布の累積確率を1つの数式で求められるのがBETADIST関数です。
Googleスプレッドシートでベータ分布を扱う関数は2つあります。BETADIST関数とBETA.DIST関数です。計算結果は同じですが、引数の構成が異なります。
この記事ではBETADIST関数の使い方を、基本構文から実務活用まで解説します。BETA.DIST関数との違いもあわせて紹介しますよ。
スプレッドシートのBETADIST関数とは
BETADIST関数(読み方: ベータディスト関数)は、ベータ分布にもとづいて累積確率を返す関数です。ベータ分布とは、0から1の範囲(割合や確率)をモデル化する確率分布です。
たとえば「成功8回・失敗2回のデータから、真の成功率が70%以下である確率」を1つの数式で求められます。
BETADIST関数にできることをまとめると、次のとおりです。
- ある値以下となる確率を求める(累積分布)
- 割合や確率(コンバージョン率、合格率など)の不確実性を評価する
- カスタム範囲(0〜1以外)のベータ分布も計算する
- ベイズ推定の事前分布として活用する
WARNING
BETADIST関数は、以前のバージョンとの互換性を維持するための関数です。Googleスプレッドシートでは問題なく使えますが、新しく数式を書くときはBETA.DIST関数を使うことをおすすめします。BETA.DISTには確率密度(FALSE)と累積分布(TRUE)を切り替える引数があり、より柔軟です。
ベータ分布が使える場面とは
ベータ分布は、次のような場面で使えます。
- 割合・確率のモデリング: コンバージョン率、合格率、不良品率など
- ベイズ推定の事前分布: 「成功n回・失敗m回」から真の確率を推定する
- プロジェクト管理: PERT法(楽観・悲観・最頻の3点見積もり)での工数推定
ベータ分布の大きな特徴は、値が0〜1の範囲に収まることです。そのため「割合」や「確率」を扱うのにぴったりの分布ですよ。alphaとbetaの値によって、左寄り・右寄り・釣鐘型など自由に形が変わります。
TIP
alpha=1、beta=1のとき、ベータ分布は一様分布(どの値も同じ確率)と一致します。「事前情報がまったくない状態」を表すベースラインとして使えますよ。
BETADIST関数の書き方(構文と引数)
基本構文
=BETADIST(x, alpha, beta, [A], [B])
カッコの中に3〜5つの引数を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| x | 必須 | 評価する値(AからBの範囲内の数値) |
| alpha(アルファ) | 必須 | 形状パラメータ1(正の数値) |
| beta(ベータ) | 必須 | 形状パラメータ2(正の数値) |
| A | 任意 | 下限(省略時は0) |
| B | 任意 | 上限(省略時は1) |
alphaは分布の左側の形を決めるパラメータです。「成功回数+1」と解釈できます。betaは分布の右側の形を決めるパラメータです。「失敗回数+1」と解釈できます。
AとBを指定すると、0〜1以外の範囲でベータ分布を計算できます。たとえば工数見積もりで「最短3日〜最長15日」の範囲を設定する場合に使いますよ。
WARNING
alphaとbetaはどちらも正の数です。0以下を指定すると
#NUM!エラーになります。xはA以上B以下で指定してください。範囲外だと#NUM!エラーです。
NOTE
BETADIST関数にはBETA.DIST関数のような「累積/確率密度」を切り替える引数がありません。常に累積分布(x以下となる確率)を返します。確率密度を求めたい場合はBETA.DISTのFALSEオプションを使ってください。
BETADIST関数の基本的な使い方
実際にBETADIST関数を使ってみましょう。
例題: 成功8回・失敗2回のデータから、真の成功率が70%以下である確率を求めます。alpha=9(成功+1)、beta=3(失敗+1)です。
セルに次の数式を入力してください。
=BETADIST(0.7, 9, 3)
結果は約0.2680(26.8%)です。真の成功率が70%以下となる確率が約27%ということがわかりました。
次に、「成功率が80%以上である確率」を求めてみましょう。1から累積確率を引きます。
=1 - BETADIST(0.8, 9, 3)
結果は約0.3222(32.2%)です。80%以上の成功率が期待できる確率は約32%ですね。
下限・上限を指定した例も試してみましょう。工数が5日〜20日の範囲で、12日以内に完了する確率を求めます。
=BETADIST(12, 3, 2.5, 5, 20)
結果は約0.3520(35.2%)です。12日以内に完了する確率は約35%です。
xの値ごとの結果を比較する
alpha=9、beta=3の場合で、xの値ごとの累積確率を並べてみましょう。平均値はalpha / (alpha + beta) = 9/12 = 0.75です。
| x | BETADIST(x以下の確率) |
|---|---|
| 0.3 | 0.0000(0.0%) |
| 0.4 | 0.0006(0.1%) |
| 0.5 | 0.0107(1.1%) |
| 0.6 | 0.0705(7.1%) |
| 0.7 | 0.2680(26.8%) |
| 0.8 | 0.5639(56.4%) |
| 0.9 | 0.8801(88.0%) |
| 1.0 | 1.0000(100%) |
xが増えるほど1に近づいていきます。平均値0.75付近で50%を超えるのが特徴です。
BETADIST関数の実践的な使い方
基本がわかったところで、実務で使えるパターンを紹介します。
コンバージョン率の推定で使う
「LPのABテストで、パターンAが100回中12回コンバージョンした」ケースを考えましょう。真のコンバージョン率が15%以下である確率を求めます。alpha=13(成功12+1)、beta=89(失敗88+1)です。
=BETADIST(0.15, 13, 89)
結果は約0.7653(76.5%)です。約77%の可能性で、真のコンバージョン率は15%以下です。
では「コンバージョン率が10%以上である確率」はどうでしょうか。
=1 - BETADIST(0.1, 13, 89)
結果は約0.7919(79.2%)です。約79%の可能性で10%以上のコンバージョン率が期待できます。ABテストの判断材料になりますね。
品質管理で不良品率を評価する
「製造ライン検査で500個中10個が不良だった」場合を考えましょう。真の不良品率が3%以下である確率を求めます。alpha=11(不良10+1)、beta=491(良品490+1)です。
=BETADIST(0.03, 11, 491)
結果は約0.8866(88.7%)です。約89%の可能性で、真の不良品率は3%以下に収まっています。
「不良品率が5%を超える確率」は次のとおりです。
=1 - BETADIST(0.05, 11, 491)
結果は約0.9996(99.96%)です。5%以下にほぼ確実に収まります。品質基準を満たしているかの判断に活用できますね。
プロジェクト工数をPERT法で見積もる
「最短5日、最長20日、最も可能性が高いのは10日」というタスクの工数見積もりを考えましょう。PERT法ではalpha=3、beta=2.5程度を使い、A=5(下限)、B=20(上限)を指定します。
=BETADIST(12, 3, 2.5, 5, 20)
結果は約0.3520(35.2%)です。12日以内に完了する確率は約35%です。
「15日以内に終わる確率」を求めてみましょう。
=BETADIST(15, 3, 2.5, 5, 20)
結果は約0.7042(70.4%)です。バッファを含めて15日で計画すれば、約70%の確率で収まります。スケジュール策定の根拠になりますよ。
BETADIST関数でよくあるエラーと対処法
BETADIST関数でつまずきやすいポイントをまとめました。
xが範囲外で#NUM!エラー
xはA以上B以下の範囲で指定します。範囲外の値を入れるとエラーになります。AとBを省略した場合は0〜1が範囲です。
=BETADIST(1.5, 3, 2) --- #NUM! エラー(0〜1の範囲外)
alphaが0以下で#NUM!エラー
alphaは正の数で指定します。0や負の値はエラーになります。
=BETADIST(0.5, 0, 2) --- #NUM! エラー
betaが0以下で#NUM!エラー
betaも正の数で指定します。0以下はエラーです。
=BETADIST(0.5, 3, 0) --- #NUM! エラー
A >= Bで#NUM!エラー
下限Aが上限B以上だとエラーになります。AはBより小さい値を指定してください。
=BETADIST(5, 3, 2, 10, 5) --- #NUM! エラー(A=10 > B=5)
引数に文字列を渡して#VALUE!エラー
数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値であることを確認しましょう。
BETADIST関数とBETA.DIST関数の違い
Googleスプレッドシートには、BETADIST関数のほかにBETA.DIST関数があります。結論からいうと、累積分布の計算結果は同じです。ただし引数の構成が異なります。
=BETADIST(0.7, 8, 3) --- 0.3828
=BETA.DIST(0.7, 8, 3, TRUE) --- 0.3828(同じ結果)
違いをまとめると次のとおりです。
| 項目 | BETADIST | BETA.DIST |
|---|---|---|
| 構文 | =BETADIST(x, alpha, beta, [A], [B]) | =BETA.DIST(x, alpha, beta, 累積, [A], [B]) |
| 引数の数 | 3〜5 | 4〜6 |
| 累積/密度の切り替え | なし(常に累積分布) | あり(TRUE=累積、FALSE=密度) |
| 確率密度の計算 | 不可 | 可能(FALSEで指定) |
| 計算結果(累積) | 同じ | 同じ |
| 位置づけ | 互換関数(旧バージョン向け) | 推奨関数(新バージョン) |
最大の違いは「累積/確率密度の切り替え」です。BETADISTは常に累積分布を返しますが、BETA.DISTはTRUE/FALSEで切り替えができます。確率密度を求めたい場合はBETA.DISTを使ってください。
BETADIST関数は古いスプレッドシートとの互換性を維持するために残されている関数です。新しく数式を書くときはBETA.DIST関数を使いましょう。既存のシートでBETADIST関数が使われている場合は、そのまま動作するので急いで書き換える必要はありませんよ。
BETADISTからBETA.DISTへの書き換え方
既存のBETADIST関数をBETA.DISTに書き換えるときは、cumulative引数としてTRUEを追加するだけです。
--- 書き換え前
=BETADIST(0.7, 8, 3)
--- 書き換え後
=BETA.DIST(0.7, 8, 3, TRUE)
AとBを指定している場合も同様です。4番目にTRUEを挟みます。
--- 書き換え前
=BETADIST(12, 3, 2.5, 5, 20)
--- 書き換え後
=BETA.DIST(12, 3, 2.5, TRUE, 5, 20)
引数の順序が変わる点に注意してくださいね。BETADISTではAとBが4番目・5番目ですが、BETA.DISTでは5番目・6番目に移動します。
関連する統計関数
ベータ分布以外の確率分布を扱いたいときは、目的に合った関数を選びましょう。
| 関数 | 用途 | いつ使うか |
|---|---|---|
| BETA.DIST | ベータ分布の確率 | BETADISTの推奨版。新規数式はこちら |
| BETA.INV | ベータ分布の逆関数 | 確率から値を逆算したい場合 |
| GAMMA.DIST | ガンマ分布の確率 | 複数イベントの合計時間や右裾データを扱う場合 |
| GAMMADIST | ガンマ分布の確率(互換関数) | 既存のシートで使われている場合 |
| NORM.DIST | 正規分布の確率 | 連続データ(身長・体重・気温など)を扱う場合 |
| NORMDIST | 正規分布の確率(互換関数) | 既存のシートで使われている場合 |
| WEIBULL.DIST | ワイブル分布の確率 | 製品寿命・故障率を分析する場合 |
迷ったときの判断基準はシンプルです。
- 割合・確率をモデル化したい → BETA.DIST(BETADISTでも同じ結果)
- 複数件の合計待ち時間 → GAMMA.DIST
- 連続データの確率 → NORM.DIST
- 製品の寿命分析 → WEIBULL.DIST
まとめ
BETADIST関数は、ベータ分布(割合・確率のモデル化)にもとづいて累積確率を求める互換関数です。
- 常に「x以下となる確率」(累積分布)を返す
- alphaは形状パラメータ1(成功回数+1)、betaは形状パラメータ2(失敗回数+1)
- AとBを指定すれば0〜1以外のカスタム範囲にも対応する
- コンバージョン率の推定・品質管理・プロジェクト見積もりに使える
- 「x以上の確率」を求めるには
=1 - BETADIST(x, alpha, beta)と書く - xが範囲外やalpha・betaが0以下だと
#NUM!エラー - BETA.DIST関数と累積分布の計算結果は同じ。新規にはBETA.DISTを推奨
- BETADISTにはTRUE/FALSEの切り替えがない点がBETA.DISTとの最大の違い
- 「待ち時間の合計」ならGAMMA.DIST関数、「連続データの確率」ならNORM.DIST関数を使う
「真の確率がどのくらいの範囲にありそうか?」を数値で答えられると、意思決定に根拠が持てます。ぜひ実際のデータで試してみてくださいね。
