「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
違いをまとめると次の表のとおりです。
| 項目 | BETAINV | BETA.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だけでなく、統計関数は多くが「ピリオドなし→ピリオドあり」に移行しています。
どの関数も「旧名で書いた数式はそのまま動く。新しく書くなら新名を使う」が基本の考え方です。
よくあるエラーと対処法
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に切り替えていくのがおすすめですよ。
