「ExcelのBETAINVをスプレッドシートでもそのまま使いたいけど、関数名が変わって動かないんじゃないか?」
ExcelからGoogleスプレッドシートに移行すると、互換性が気になるところですよね。特にBETAINVはExcel 2010で新名(BETA.INV)に切り替わった経緯があるため、スプレッドシートで本当に動くのか不安になります。
結論から言うと、BETAINV関数はスプレッドシートでもそのまま動きます。ただし、新しく数式を書くならBETA.INV関数を使うのが推奨です。
この記事では、スプレッドシートのBETAINV関数の書き方から、BETA.INVとの違い、信頼区間・品質管理での実務例、Excel移行のコツまでをまとめて解説します。
スプレッドシートのBETAINV関数とは?ベータ分布の逆関数
スプレッドシートのBETAINV関数(読み方: ベータ・インバース関数)は、ベータ分布の逆関数を返す統計関数です。累積確率を入力すると、その確率に対応する値を返してくれます。
関数名は次の英単語を組み合わせたものです。
- BETA = ベータ分布(ギリシャ文字 β に由来する数学用語)
- INV = Inverse(逆)
ひとことで言えば、「累積確率からベータ分布の値を逆算する関数」ですね。ベータ分布表をいちいち逆引きしなくても、1つの式で値を求められます。
BETAINV関数にできることをまとめると、次のとおりです。
- 累積確率から対応するベータ分布の値を瞬時に逆算する
- コンバージョン率や合格率の信頼区間(上限・下限)を算出する
- 不良品率の管理基準値を設定する
- BETADIST関数やBETA.DIST関数と組み合わせて結果を往復検証する
NOTE
BETAINVはExcel 2007以前から使われている旧関数名です。Excel 2010で新関数名BETA.INVに切り替わりましたが、互換性のためスプレッドシートでも両方使えます。新しく書く数式はBETA.INVを使うのが推奨です。
BETAINV関数の書き方(構文と引数)
基本構文
=BETAINV(確率, alpha, beta, [A], [B])
カッコの中に3〜5つの引数を指定します。AとBは省略可能で、省略すると0〜1の範囲が使われます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 確率(probability) | 必須 | ベータ分布の累積確率。0より大きく1より小さい数値 |
| alpha(アルファ) | 必須 | 形状パラメータ1(正の数値) |
| beta(ベータ) | 必須 | 形状パラメータ2(正の数値) |
| A | 任意 | 下限(省略時は0) |
| B | 任意 | 上限(省略時は1) |
確率には「この確率に対応する値はいくつか?」を指定します。0.95と入れれば「累積95%点」が返ります。
alphaは分布の形を決めるパラメータです。ベイズ推定(データから確率を更新する手法)では「成功回数+1」と解釈できます。betaは「失敗回数+1」に対応する形状パラメータです。
AとBを指定すると、0〜1以外の範囲で逆算できます。たとえば工数見積もりで「最短5日〜最長20日」の範囲を設定する場合に便利ですよ。
TIP
確率に0.95を指定すると「累積95%の境界値」が返ります。「95%の確率で収まる上限値」という意味で、信頼区間の算出でよく使われる考え方ですね。
ベータ分布の逆関数とは
ベータ分布は「0〜1の値を取る確率変数」を扱うのに向いた分布です。コンバージョン率・合格率・不良品率のように「割合」を表現するのに使われます。
BETAINVが返すのは、「累積確率がちょうどpになる地点の値x」です。たとえば =BETAINV(0.95, 8, 3) が返す約0.9127は、「ベータ分布(alpha=8, beta=3)で、値が0.9127以下になる確率がちょうど95%」という意味になります。
「95%の確率でこの値以下に収まる」という言い方ができるので、信頼区間の上限・下限を求めるのにそのまま使えますよ。
BETAINVの基本的な使い方
BETAINV関数の基本を、3つのパターンで見ていきましょう。
中央値(50%点)を求める
まずはシンプルに、alpha=8、beta=3のベータ分布で累積確率50%に対応する値を求めます。
=BETAINV(0.5, 8, 3)
結果は約0.7414です。「alpha=8、beta=3のベータ分布で、値が0.7414以下となる確率がちょうど50%」という意味ですね。
ベータ分布はalphaとbetaの大小で形が変わります。alpha>betaのときは右寄りになるため、中央値も0.5より大きい0.7414になっています。
代表的なパーセンタイルをまとめて求める
確率を変えながら、代表的なパーセンタイルを並べてみます。alpha=8、beta=3で固定したケースです。
| 確率 | 数式 | 結果 | 意味 |
|---|---|---|---|
| 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%点 |
| 0.975 | =BETAINV(0.975, 8, 3) | 約0.9333 | 上位2.5%点 |
確率が大きくなるほど、返される値も大きくなります。下位2.5%点と上位97.5%点を組み合わせれば、95%信頼区間がそのまま作れますよ。
BETA.DISTで往復検証する
BETAINVの結果が正しいか確認するには、BETA.DIST関数やBETADIST関数で逆向きに計算します。
=BETAINV(0.95, 8, 3) → 約0.9127
=BETA.DIST(0.9127, 8, 3, TRUE) → 約0.9500
BETAINVで求めた値をBETA.DISTに入れると、元の確率に戻ります。これが逆関数の関係ですね。自分の数式が正しく書けているかを確認するときに便利な検算方法です。
BETAINVを実務で活用する3つのパターン
基本がわかったところで、実務で役立つパターンを3つ紹介します。
コンバージョン率の信頼区間を求める
「LPのABテストでパターンAが100回中12回コンバージョンした」ケースを考えましょう。点推定では12%ですが、サンプル数が少ないので「真のコンバージョン率」の95%信頼区間を出したい場面ですね。
ベイズ推定ではalpha=成功数+1=13、beta=失敗数+1=89とします。95%信頼区間は下位2.5%点と上位97.5%点です。
=BETAINV(0.025, 13, 89) → 約0.0704(下限: 7.0%)
=BETAINV(0.975, 13, 89) → 約0.1983(上限: 19.8%)
真のコンバージョン率は95%の確率で7.0%〜19.8%の範囲にあると推定できます。点推定の12%だけで「Aの方が良い」と判断するより、幅を持って評価できるようになりますね。
不良品率の管理基準値を算出する
「製造ライン検査で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%以下を許容ライン」と設定する根拠に使えますよ。
下限もあわせて求めるなら、次のように書きます。
=BETAINV(0.05, 11, 491) → 約0.0124(1.24%)
90%信頼区間は1.24%〜3.36%となります。社内の基準書に「3.4%以下に収まる確率は95%」と数値の根拠つきで書けるので、説明が楽になりますね。
PERT法による工数見積もりの信頼区間
「最短5日、最長20日、最頻値10日」のタスク見積もりを考えましょう。PERT法(Program Evaluation and Review Technique)ではベータ分布で工数を表現します。alpha=3、beta=2.5を使い、AとBを指定するのがポイントです。
=BETAINV(0.9, 3, 2.5, 5, 20)
結果は約17.05日です。「90%の確率で17日以内に終わる」という見積もりが立ちます。
確率を変えるとバッファの強さも調整できます。
=BETAINV(0.5, 3, 2.5, 5, 20) → 約13.18日(半々の見積もり)
=BETAINV(0.8, 3, 2.5, 5, 20) → 約15.90日(強めのバッファ)
=BETAINV(0.95, 3, 2.5, 5, 20) → 約18.07日(最も保守的)
「攻めの13日」「現実的な16日」「安全な18日」と複数の案を一気に作れます。スケジュール会議で「なぜその日数なのか」を数字で説明する材料になりますよ。
BETAINVとBETA.INVの違いと使い分け
冒頭で触れたとおり、BETAINVには新関数名BETA.INVがあります。どちらを使えばいいのかを整理しておきましょう。
計算結果はまったく同じ
結論から言うと、2つの関数の計算結果はまったく同じです。
=BETAINV(0.5, 8, 3) → 約 0.7414
=BETA.INV(0.5, 8, 3) → 約 0.7414
BETAINVは「互換性のために残されている旧関数名」という位置づけです。Googleスプレッドシートの公式ヘルプでも、BETA.INVのページにBETAINVが旧名として記載されています。
比較早見表
| 比較項目 | BETAINV | BETA.INV |
|---|---|---|
| 関数名の形式 | ピリオドなし(旧形式) | ピリオドあり(新形式) |
| 導入時期 | Excel 2007以前 | Excel 2010以降 |
| 構文 | =BETAINV(確率, alpha, beta, [A], [B]) | =BETA.INV(確率, alpha, beta, [A], [B]) |
| 引数の数 | 3〜5個 | 3〜5個 |
| 計算結果 | 同じ | 同じ |
| Googleスプレッドシート | 使用可能 | 使用可能(推奨) |
| 将来性 | 互換用・将来廃止の可能性あり | 現行の標準 |
新しくシートを作るときはBETA.INVを使いましょう。既存のシートでBETAINVが使われていても、そのままで問題なく動作します。
Excelから移行するときの3つの注意点
ExcelでBETAINVを使っていたシートをスプレッドシートに移行する場合、知っておきたいポイントを3つにまとめます。
1. そのままコピーしても動く
BETAINVはスプレッドシートでも互換サポートされています。ExcelファイルをGoogleドライブにアップロードしても、数式はそのまま動作します。慌てて書き直す必要はありません。
2. 新しい数式はBETA.INVで書く
既存シートのBETAINVは放置でOKです。ただし、新しくセルに数式を追加するときはBETA.INV関数を使いましょう。理由は将来性(旧関数は廃止される可能性あり)と一貫性(新旧混在はメンテしにくい)の2つです。
3. 一括置換で移行する手順
シート内のBETAINVをまとめてBETA.INVに置き換えたい場合は、次の手順で対応できます。
- Ctrl + H(Mac: Cmd + H)で「検索と置換」を開く
- 検索欄に
BETAINV(と入力する - 置換欄に
BETA.INV(と入力する - 「すべて置換」をクリックする
引数の構造がまったく同じなので、カッコの中身を変える必要はありません。置換後に数式エラーが出ていないかだけ確認すれば完了です。
他の統計関数も同じルールで一括置換できます。BETADIST→BETA.DIST、GAMMAINV→GAMMA.INV、NORMINV→NORM.INVなどです。
BETAINVとあわせて覚えておきたい関連関数
BETAINVの周辺にある統計関数を整理しておきます。「確率 → 値」「値 → 確率」のどちら向きの計算をしたいかで使い分けます。
| やりたいこと | 使う関数 | 記事リンク |
|---|---|---|
| 確率 → 値(ベータ分布の逆算) | BETAINV / BETA.INV | BETA.INV関数 |
| 値 → 確率(ベータ分布) | BETADIST / BETA.DIST | BETADIST関数 / BETA.DIST関数 |
| 確率 → 値(ガンマ分布の逆算) | GAMMAINV / GAMMA.INV | GAMMAINV関数 / GAMMA.INV関数 |
| 確率 → 値(正規分布の逆算) | NORMINV / NORM.INV | NORMINV関数 / NORM.INV関数 |
| 確率 → 値(カイ二乗分布の逆算) | CHISQ.INV | CHISQ.INV関数 |
| 確率 → 値(F分布の逆算) | F.INV | F.INV関数 |
| 確率 → 値(対数正規分布の逆算) | LOGNORM.INV | LOGNORM.INV関数 |
迷ったときの判断基準はシンプルです。
「逆関数」は出力の意味が同じ仲間なので、どれか1つを使いこなせれば残りもすぐ理解できますよ。
BETAINVでよく見るエラーと対処法
BETAINV関数を使っているときに出やすいエラーを4つ紹介します。
確率が範囲外で #NUM! エラー
確率は「0より大きく1より小さい値」でなければなりません。0や1ちょうど、または負の数を指定するとエラーになります。
=BETAINV(0, 8, 3) ← #NUM! エラー(0は不可)
=BETAINV(1, 8, 3) ← #NUM! エラー(1は不可)
=BETAINV(-0.5, 8, 3) ← #NUM! エラー(負の値は不可)
=BETAINV(1.2, 8, 3) ← #NUM! エラー(1超は不可)
特にハマりやすいのが、パーセント表記との取り違えです。「95%」を入れたいとき =BETAINV(95, 8, 3) と書いてしまうと一発でエラーです。正しくは =BETAINV(0.95, 8, 3) ですね。
他のセルの計算結果を確率として渡すときも、値が0〜1の範囲内か確認しておきましょう。
alphaまたはbetaが0以下で #NUM! エラー
alphaとbetaはどちらも正の数値が必須です。0や負の値を入れるとエラーになります。
=BETAINV(0.5, 0, 3) ← #NUM! エラー(alpha=0)
=BETAINV(0.5, 8, -1) ← #NUM! エラー(beta=-1)
「成功回数+1」や「失敗回数+1」で計算しているなら自然に正の値になりますが、セル参照で渡すときは0や負の値が混ざっていないか確認しましょう。
A >= B で #NUM! エラー
下限Aが上限B以上だとエラーになります。AはBより小さい値を指定してください。
=BETAINV(0.5, 3, 2, 10, 5) ← #NUM! エラー(A=10 > B=5)
工数見積もりのように手動で範囲を指定するときは、「最短日数」と「最長日数」を入れ違えないよう気をつけたいところです。
引数に文字列を渡して #VALUE! エラー
数値であるべき引数にテキストが入ると #VALUE! エラーになります。
=BETAINV("0.95", 8, 3) ← #VALUE! エラー
セル参照を使うときは、参照先が数値かどうかを確認しましょう。空白や文字列が混じっている可能性があるなら、IFERROR関数で包んでエラーを丸める方法もあります。
=IFERROR(BETAINV(A1, 8, 3), "確率は0〜1で入力")
集計シートでエラーセルが目立つと見栄えが悪いので、こうしておくとレポートをそのまま共有しやすくなりますね。
まとめ|BETAINVは「確率からベータ分布の値を逆算する」旧関数
BETAINV関数は、スプレッドシートでベータ分布の逆関数を計算する旧名の関数です。記事の要点を振り返ります。
- 構文は
=BETAINV(確率, alpha, beta, [A], [B])で、引数は3〜5個 - 累積確率から対応する値を逆算する逆関数の役割を持つ
- BETA.INV関数と計算結果はまったく同じ。違いは関数名だけ
- Excel 2010以降は新関数名が標準だが、スプレッドシートでも旧関数名がそのまま動く
- コンバージョン率の信頼区間・不良品率の管理基準値・PERT法の工数見積もりなどに活用できる
- 新しく数式を書くならBETA.INVがおすすめ。既存シートは「検索と置換」で一括移行できる
- 確率に0や1を指定すると
#NUM!エラー。alphaとbetaは正の数で指定する
ExcelからスプレッドシートにBETAINVを含むシートを移行しても、数式はそのまま動きます。慌てて書き直す必要はありませんよ。ただ、これから新しく入力する数式はBETA.INV関数に統一しておくと、シート全体のメンテナンスがラクになります。
