「コンバージョン率の95%信頼区間の上限って、具体的にいくつなんだろう?」。こんな疑問を持ったことはありませんか?
BETA.DIST関数を使えば「値x以下となる確率」は求められます。でも逆に「確率pに対応する値x」を知りたいときはどうすればよいのでしょうか。
そんなときに使うのがスプレッドシートのBETA.INV関数です。この記事では基本構文から実務活用まで解説します。BETA.DISTとの逆関数関係や、BETAINV関数との違いもあわせて紹介しますよ。
スプレッドシートのBETA.INV関数とは
BETA.INV関数(読み方: ベータ・インバース関数)は、ベータ分布の累積確率から対応する値を逆算する関数です。
「BETA」はギリシャ文字のベータに由来する数学用語です。「INV」は「Inverse(逆関数)」の略です。
BETA.DIST関数が「値x → 確率p」を求めるのに対し、BETA.INV関数はその逆の「確率p → 値x」を求めます。つまり2つの関数は逆関数の関係にあります。
BETA.INV関数にできることをまとめると、次のとおりです。
- 「95%信頼区間の上限・下限」を逆算する
- コンバージョン率や合格率の区間推定を行う
- 不良品率の「これ以下に収まる確率pのライン」を求める
- カスタム範囲(0〜1以外)のベータ分布でも逆算できる
NOTE
BETA.INV関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。
BETA.DISTとの逆関数関係
BETA.DISTとBETA.INVの関係を整理しましょう。
| 方向 | 関数 | 入力 → 出力 |
|---|---|---|
| 順方向 | BETA.DIST(x, alpha, beta, TRUE) | 値x → 確率p |
| 逆方向 | BETA.INV(p, alpha, beta) | 確率p → 値x |
たとえば次の2つの数式は同じことを表しています。
=BETA.DIST(0.7, 8, 3, TRUE) → 約0.3828
=BETA.INV(0.3828, 8, 3) → 約0.7
BETA.DISTで求めた確率0.3828をBETA.INVに入れると、元の0.7が返ります。片方の出力をもう片方に入れると元の値に戻る。これが逆関数の特徴です。
BETA.INV関数の基本構文と引数
基本構文
=BETA.INV(probability, alpha, beta, [A], [B])
カッコの中に3〜5つの引数を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| probability(確率) | 必須 | 求めたい累積確率(0〜1の数値) |
| alpha(アルファ) | 必須 | 形状パラメータ1(正の数値) |
| beta(ベータ) | 必須 | 形状パラメータ2(正の数値) |
| A | 任意 | 下限(省略時は0) |
| B | 任意 | 上限(省略時は1) |
probabilityは「この確率に対応する値はいくつか?」を指定します。0.95と入れれば「95%点」が返ります。
alphaは分布の形を決めるパラメータです。ベイズ推定では「成功回数+1」と解釈できます。betaは「失敗回数+1」です。
AとBを指定すると、0〜1以外の範囲で逆算できます。たとえば工数見積もりで「最短3日〜最長15日」の範囲を指定する場合に使いますよ。
WARNING
probabilityは0より大きく1より小さい値を指定します。0や1を入れると
#NUM!エラーです。alphaとbetaは正の数が必須です。0以下だと#NUM!エラーになります。
BETA.INV関数の基本的な使い方
まずはシンプルな例から見てみましょう。alpha=8、beta=3のベータ分布で、累積確率50%に対応する値を求めます。
=BETA.INV(0.5, 8, 3)
結果は約0.7414です。「ベータ分布(alpha=8, beta=3)で、値が0.7414以下となる確率がちょうど50%」という意味ですよ。
確率を変えて、いくつかの代表的なパーセンタイルを求めてみましょう。
| 確率p | BETA.INV(p, 8, 3) | 意味 |
|---|---|---|
| 0.025 | 約0.4439 | 下位2.5%点 |
| 0.05 | 約0.4931 | 下位5%点 |
| 0.25 | 約0.6446 | 第1四分位 |
| 0.50 | 約0.7414 | 中央値 |
| 0.75 | 約0.8244 | 第3四分位 |
| 0.95 | 約0.9127 | 上位5%点 |
| 0.975 | 約0.9333 | 上位2.5%点 |
この表から、BETA.INV関数を使えばベータ分布の任意のパーセンタイルを簡単に求められることがわかります。
検算してみましょう。BETA.INVの結果をBETA.DISTに入れると、元の確率に戻るはずです。
=BETA.DIST(BETA.INV(0.5, 8, 3), 8, 3, TRUE)
結果は0.5です。ぴったり元の確率に戻りましたね。
BETA.INV関数の実務活用3パターン
基本がわかったところで、実際の業務で使えるパターンを3つ紹介します。
コンバージョン率の信頼区間を求める
「LPのABテストでパターンAが100回中12回コンバージョンした」ケースを考えましょう。真のコンバージョン率の95%信頼区間を求めます。
ベイズ推定では、alpha=成功数+1=13、beta=失敗数+1=89とします。95%信頼区間は下位2.5%点と上位97.5%点です。
=BETA.INV(0.025, 13, 89) → 約0.0704(下限: 7.0%)
=BETA.INV(0.975, 13, 89) → 約0.1983(上限: 19.8%)
真のコンバージョン率は95%の確率で7.0%〜19.8%の範囲にあると推定できます。点推定の12%だけでなく、幅を持った判断ができるようになりますね。
BETA.DIST関数で「15%以下の確率」を求めるのが順方向の計算です。BETA.INV関数で「95%に対応する値」を求めるのが逆方向の計算です。目的に応じて使い分けましょう。
不良品率の管理基準値を算出する
「製造ライン検査で500個中10個が不良だった」場合を考えましょう。不良品率が「95%の確率でこの値以下」となるラインを求めます。
alpha=10+1=11、beta=490+1=491です。
=BETA.INV(0.95, 11, 491)
結果は約0.0336(3.36%)です。95%の確率で、真の不良品率は3.36%以下に収まると推定できます。品質管理の基準として「不良品率3.4%以下」と設定する根拠に使えますよ。
逆に「不良品率の下限」も求められます。
=BETA.INV(0.05, 11, 491)
結果は約0.0124(1.24%)です。まとめると、不良品率の90%信頼区間は1.24%〜3.36%です。
PERT法による工数見積もりの信頼区間
「最短5日、最長20日、最頻値10日」のタスク見積もりを考えましょう。「90%の確率で収まる日数」を求めます。PERT法ではalpha=3、beta=2.5を使います。A=5、B=20を指定しましょう。
=BETA.INV(0.9, 3, 2.5, 5, 20)
結果は約17.05日です。90%の確率で約17日以内に終わると見込めます。
さらに「80%の確率で収まる日数」も計算してみましょう。
=BETA.INV(0.8, 3, 2.5, 5, 20)
結果は約15.90日です。バッファの程度を変えた複数のスケジュール案を作れますね。
BETAINV関数(互換関数)との違い
GoogleスプレッドシートにはBETAINVという関数もあります。これはBETA.INVの旧バージョン(互換関数)です。
=BETAINV(0.5, 8, 3) --- 旧関数名(動作は同じ)
=BETA.INV(0.5, 8, 3) --- 新関数名(推奨)
引数の構成・計算結果はまったく同じです。どちらを使っても結果は変わりません。
新しく数式を書くときはBETA.INVを使いましょう。既存のシートでBETAINV関数が使われていても、そのまま動作します。急いで書き換える必要はありませんよ。
TIP
Excel環境でも同様にBETA.INVが推奨です。BETAINVはExcel 2010以降で「互換性関数」に分類されています。
よくあるエラーと対処法
BETA.INV関数でつまずきやすいポイントをまとめました。
probabilityが範囲外で#NUM!エラー
probabilityは0より大きく1より小さい値で指定します。0や1、負の値はエラーになります。
=BETA.INV(0, 8, 3) --- #NUM! エラー(0は不可)
=BETA.INV(1, 8, 3) --- #NUM! エラー(1は不可)
=BETA.INV(-0.5, 8, 3) --- #NUM! エラー(負の値は不可)
alphaまたはbetaが0以下で#NUM!エラー
alphaとbetaはどちらも正の数が必須です。0や負の値を入れるとエラーです。
=BETA.INV(0.5, 0, 3) --- #NUM! エラー
=BETA.INV(0.5, 8, -1) --- #NUM! エラー
A >= Bで#NUM!エラー
下限Aが上限B以上だとエラーになります。AはBより小さい値を指定してください。
=BETA.INV(0.5, 3, 2, 10, 5) --- #NUM! エラー(A=10 > B=5)
引数に文字列を渡して#VALUE!エラー
数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値であることを確認しましょう。
関連する統計関数との使い分け
BETA.INV関数と同じ「逆関数」の仲間を一覧で比較しましょう。
| 関数 | 分布 | 用途 |
|---|---|---|
| BETA.INV | ベータ分布 | 割合・確率(0〜1)の信頼区間・パーセンタイル |
| GAMMA.INV | ガンマ分布 | 待ち時間合計のSLA基準値・安全マージン |
| NORM.INV | 正規分布 | 連続データ(身長・体重など)の基準値 |
| CHISQ.INV | カイ二乗分布 | 適合度検定の棄却境界値 |
| F.INV | F分布 | 分散分析の棄却境界値 |
| LOGNORM.INV | 対数正規分布 | 株価や所得など右裾データの基準値 |
迷ったときの判断基準はシンプルです。
まとめ
BETA.INV関数は、ベータ分布の累積確率から対応する値を逆算する関数です。
- 引数はprobability、alpha、beta、[A]、[B]の3〜5つ
- BETA.DIST関数の逆関数にあたる
- BETA.DIST(x, alpha, beta, TRUE) = p なら BETA.INV(p, alpha, beta) = x
- 信頼区間の上限・下限を求めるのに最適
- コンバージョン率・不良品率・工数見積もりの区間推定に活用できる
- BETAINV関数と結果は同じ。新規にはBETA.INVを推奨
- probabilityは0〜1の範囲(0と1は含まない)で指定する
- 「逆算」ならGAMMA.INVやNORM.INVも同じ仕組みで使える
