スプレッドシートのBETA.INV関数の使い方|ベータ分布逆関数

スポンサーリンク

「コンバージョン率の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%」という意味ですよ。

確率を変えて、いくつかの代表的なパーセンタイルを求めてみましょう。

確率pBETA.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.INVF分布分散分析の棄却境界値
LOGNORM.INV対数正規分布株価や所得など右裾データの基準値

迷ったときの判断基準はシンプルです。

  • 割合・確率の区間推定 → BETA.INV
  • 待ち時間のSLA基準GAMMA.INV
  • 連続データの基準値NORM.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.INVNORM.INVも同じ仕組みで使える
タイトルとURLをコピーしました