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

スポンサーリンク

「Excelで使っていたBETAINV関数、スプレッドシートでも同じように使えるのかな?」。ExcelからGoogleスプレッドシートへ移行したときに気になるポイントですよね。

結論から言うと、BETAINV関数はGoogleスプレッドシートでもそのまま使えます。ただし、現在はBETA.INVという新しい名前の関数が推奨されています。この記事ではスプレッドシートのBETAINV関数の使い方を、BETA.INVとの違いや移行時のポイントとあわせて解説します。

BETAINV関数とは

BETAINV関数(読み方: ベータ・インバース関数)は、ベータ分布の逆関数を求める互換関数です。累積確率を指定すると、その確率に対応する値を返してくれます。「BETA」はギリシャ文字のベータに由来する数学用語です。「INV」は「Inverse(逆)」の略です。

たとえば「コンバージョン率が95%の確率で収まる上限値」を1つの数式で求められます。

BETAINV関数にできることをまとめると、次のとおりです。

  • 累積確率から対応するベータ分布の値を逆算する
  • コンバージョン率の信頼区間(上限・下限)を算出する
  • 不良品率の管理基準値を設定する
  • 合格率や歩留まりの区間推定を行う

NOTE

BETAINV関数はGoogleスプレッドシートの全バージョンで使えます。ただしGoogleの公式ドキュメントではピリオド付きのBETA.INV関数が推奨されています。新しく数式を書くときはBETA.INVを使いましょう。

BETAINV関数の基本構文と引数

基本構文

=BETAINV(確率, alpha, beta, A, B)

カッコの中に3〜5つの引数を指定します。

引数の意味

引数必須/任意説明
確率(probability)必須ベータ分布の累積確率。0より大きく1より小さい値
alpha(アルファ)必須形状パラメータ1(正の数値)
beta(ベータ)必須形状パラメータ2(正の数値)
A任意下限(省略時は0)
B任意上限(省略時は1)

alphaは「形状パラメータ1」で、分布の形を決めます。ベイズ推定(データから確率を更新する手法)では「成功回数+1」に対応します。betaは「形状パラメータ2」で、「失敗回数+1」に対応します。

AとBを指定すると、0〜1以外の範囲で逆算できます。たとえば工数見積もりで「最短5日〜最長20日」の範囲を設定する場合に便利ですよ。

TIP

確率に0.95を指定すると「累積95%の境界値」が返ります。「95%の確率で収まる上限値」という意味です。信頼区間の算出でよく使われる考え方ですよ。

BETA.INVとの違い

BETAINVとBETA.INVの違いは「関数名のみ」です。引数の順番も計算結果も完全に同じです。

=BETAINV(0.5, 8, 3)      → 約0.7414
=BETA.INV(0.5, 8, 3)     → 約0.7414

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

項目BETAINVBETA.INV
関数名の形式ピリオドなし(旧形式)ピリオドあり(新形式)
Googleスプレッドシート使える使える(推奨)
Excel 2007以前使える使えない
Excel 2010以降使える(互換用)使える(推奨)
引数・戻り値同じ同じ
公式ドキュメントでの扱い互換関数推奨関数

Excelでは2007年までBETAINVが標準でした。2010以降でピリオド付きのBETA.INVに名称が変更されています。Googleスプレッドシートもこの命名規則に合わせています。

既存のシートにBETAINVで書いた数式がある場合、わざわざ書き換える必要はありません。動作に違いはないので、そのまま使い続けて大丈夫ですよ。

スプレッドシートでのBETAINV関数の使い方

BETAINV関数で累積確率からベータ分布の値を逆算する方法を見ていきましょう。

確率から値を逆算する(基本例)

まずはシンプルな例で動きを確認します。alpha=8、beta=3のベータ分布で、累積確率50%に対応する値を求めます。

=BETAINV(0.5, 8, 3)

結果は約0.7414です。「alpha=8、beta=3のベータ分布で、値が0.7414以下となる確率がちょうど50%」という意味です。

確率を変えて、いくつかの値を見てみましょう。

確率数式結果意味
0.025=BETAINV(0.025, 8, 3)約0.4439下位2.5%の境界値
0.05=BETAINV(0.05, 8, 3)約0.4931下位5%の境界値
0.25=BETAINV(0.25, 8, 3)約0.6446第1四分位
0.50=BETAINV(0.50, 8, 3)約0.7414中央値
0.75=BETAINV(0.75, 8, 3)約0.8244第3四分位
0.95=BETAINV(0.95, 8, 3)約0.9127上位5%のボーダー

確率が大きくなるほど、返される値も大きくなります。ベータ分布はalpha>betaのとき右寄りの形になるため、中央値(0.7414)も0.5より大きくなるのが特徴ですよ。

BETA.DISTとの検算

BETAINV関数の結果が正しいか確認するには、BETA.DIST関数で検算します。

=BETAINV(0.95, 8, 3)                        → 約0.9127
=BETA.DIST(0.9127, 8, 3, TRUE)              → 約0.9500

BETAINVで求めた値をBETA.DISTに入れると、元の確率に戻ります。逆関数の関係がきちんと成り立っていますね。

BETAINV関数の実務活用例

基本がわかったところで、実務で使えるパターンを紹介します。

コンバージョン率の信頼区間を求める

「LPのABテストでパターンAが100回中12回コンバージョンした」ケースを考えましょう。真のコンバージョン率の95%信頼区間を求めます。

ベイズ推定ではalpha=成功数+1=13、beta=失敗数+1=89とします。

=BETAINV(0.025, 13, 89)  → 約0.0704(下限: 7.0%)
=BETAINV(0.975, 13, 89)  → 約0.1983(上限: 19.8%)

真のコンバージョン率は95%の確率で7.0%〜19.8%の範囲にあると推定できます。点推定の12%だけでなく、幅を持った判断ができるようになりますね。

不良品率の管理基準値を算出する

「製造ライン検査で500個中10個が不良だった」場合を考えましょう。不良品率が「95%の確率でこの値以下」となるラインを求めます。

alpha=10+1=11、beta=490+1=491です。

=BETAINV(0.95, 11, 491)

結果は約0.0336(3.36%)です。95%の確率で真の不良品率は3.36%以下に収まると推定できます。品質管理の基準として「不良品率3.4%以下」と設定する根拠に使えますよ。

BETADISTとの関係(順方向と逆方向)

BETAINV関数は、BETADIST関数逆関数です。2つの関数は「入力と出力が逆」の関係にあります。

関数入力出力方向
BETADIST値(x)確率(p)値 → 確率
BETAINV確率(p)値(x)確率 → 値

具体例で確認してみましょう。alpha=8、beta=3の場合です。

=BETADIST(0.7, 8, 3)     → 約0.3828(0.7以下の確率)
=BETAINV(0.3828, 8, 3)   → 約0.7000

BETADISTに0.7を入れると確率0.3828が返り、BETAINVに0.3828を入れると0.7が返ります。お互いの結果を入れ替えても元に戻るということですね。

使い分けのポイントは次のとおりです。

  • 「コンバージョン率が10%以下の確率は?」 → BETADIST関数(値がわかっていて確率を知りたい)
  • 「95%で収まるコンバージョン率は?」 → BETAINV関数(確率がわかっていて値を知りたい)

新しい関数名を使う場合はBETA.INV関数BETA.DIST関数の組み合わせになります。

ExcelからスプレッドシートへのBETAINV移行ガイド

ExcelからGoogleスプレッドシートに移行するとき、BETAINVまわりで知っておくべきポイントをまとめました。

移行時に確認すべき3つのポイント

1. 既存のBETAINV数式はそのまま動く

ExcelファイルをGoogleスプレッドシートにインポートしたとき、BETAINVの数式はそのまま正常に動作します。自動変換や手動書き換えは不要です。

2. 新規作成時はBETA.INVを推奨

既存の数式はそのままで問題ありませんが、新しく数式を書く場合はBETA.INV関数を使いましょう。将来的な互換性を考えると、推奨関数を使っておくのが安心です。

3. 他の旧関数名も同じルール

BETAINVだけでなく、統計関数は多くが「ピリオドなし→ピリオドあり」に移行しています。

旧関数名新関数名(推奨)
BETADISTBETA.DIST
BETAINVBETA.INV
GAMMAINVGAMMA.INV
NORMINVNORM.INV

どの関数も「旧名で書いた数式はそのまま動く。新しく書くなら新名を使う」が基本の考え方です。

よくあるエラーと対処法

BETAINV関数でつまずきやすいポイントをまとめました。

確率に0以下や1以上を指定して#NUM!エラー

確率は「0より大きく1より小さい値」でなければなりません。0や1、負の数を指定すると#NUM!エラーになります。

=BETAINV(0, 8, 3)      ← #NUM! エラー
=BETAINV(1, 8, 3)      ← #NUM! エラー
=BETAINV(-0.5, 8, 3)   ← #NUM! エラー

他のセルの計算結果を確率として渡すときは、値が0〜1の範囲内か確認しておきましょう。

alphaまたはbetaに0以下を指定して#NUM!エラー

alphaとbetaはどちらも正の数値が必要です。0や負の値を指定するとエラーになります。

=BETAINV(0.5, 0, 3)    ← #NUM! エラー
=BETAINV(0.5, 8, -1)   ← #NUM! エラー

A >= Bで#NUM!エラー

下限Aが上限B以上だとエラーになります。AはBより小さい値を指定してください。

=BETAINV(0.5, 3, 2, 10, 5)   ← #NUM! エラー(A=10 > B=5)

引数に文字列を渡して#VALUE!エラー

数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値になっているか確認してくださいね。

まとめ

BETAINV関数は、ベータ分布で累積確率から値を逆算する互換関数です。

  • BETA.INV関数と引数・計算結果は完全に同じ。違いは関数名だけ
  • Excelの旧バージョン(2007以前)で標準だった関数名で、Googleスプレッドシートでも使える
  • 既存シートのBETAINV数式は書き換え不要。そのまま動く
  • 新しく数式を書くときはBETA.INV関数を推奨
  • コンバージョン率の信頼区間を算出したり、不良品率の管理基準値を設定したりできる
  • 確率に0や1を指定すると#NUM!エラー。alphaとbetaは正の数で指定する

ExcelからGoogleスプレッドシートへ移行した方は、まず既存の数式がそのまま動くことを確認してみてください。その上で、新しく書く数式から少しずつBETA.INVに切り替えていくのがおすすめですよ。

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