スプレッドシートのBETADIST関数の使い方|ベータ分布(互換)

スポンサーリンク

「コンバージョン率が本当に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)を切り替える引数があり、より柔軟です。

ベータ分布が使える場面とは

ベータ分布は、次のような場面で使えます。

  1. 割合・確率のモデリング: コンバージョン率、合格率、不良品率など
  2. ベイズ推定の事前分布: 「成功n回・失敗m回」から真の確率を推定する
  3. プロジェクト管理: 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です。

xBETADIST(x以下の確率)
0.30.0000(0.0%)
0.40.0006(0.1%)
0.50.0107(1.1%)
0.60.0705(7.1%)
0.70.2680(26.8%)
0.80.5639(56.4%)
0.90.8801(88.0%)
1.01.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(同じ結果)

違いをまとめると次のとおりです。

項目BETADISTBETA.DIST
構文=BETADIST(x, alpha, beta, [A], [B])=BETA.DIST(x, alpha, beta, 累積, [A], [B])
引数の数3〜54〜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関数を使う

「真の確率がどのくらいの範囲にありそうか?」を数値で答えられると、意思決定に根拠が持てます。ぜひ実際のデータで試してみてくださいね。

タイトルとURLをコピーしました