ExcelのGAMMA.INV関数の使い方|ガンマ分布の逆関数で確率から値を逆算する

スポンサーリンク

「90%の確率で何分以内に終わるんだろう?」「保険金請求の95%上限額はいくらに設定すればいいんだろう?」。こんな「確率からx値(しきい値)を逆算したい」場面って、実務では意外と多いですよね。

そんなときに使えるのが、ExcelのGAMMA.INV関数です。GAMMA.DIST関数が「値→確率」を求める関数なら、GAMMA.INV関数はその真逆、「確率→値」を求める逆関数なんですよ。

この記事ではExcelのGAMMA.INV関数の使い方を、構文の基本からGAMMA.DIST関数とのペア活用、実務シナリオまで丁寧に解説します。旧関数GAMMAINV(読み方: ガンマインブ関数)との違いや、CHISQ.INV関数との関係まで、まるごと整理しますよ。

ExcelのGAMMA.INV関数とは

ExcelのGAMMA.INV関数(読み方: ガンマ・インバース関数)は、ガンマ分布の逆関数を返す関数です。

GAMMA.INVは、累積確率(たとえば「90%の確率」)を入力すると、対応するx値(その確率に達するボーダーライン)を返してくれます。つまり、GAMMA.DIST関数(値→確率を返す関数)の逆操作を行う関数ですね。

「INV」は「Inverse(逆)」の略で、累積分布関数(CDF)の逆関数を意味します。「GAMMA」はギリシャ文字のガンマ(Γ)に由来する数学用語ですよ。

たとえば「平均10分に1件の問い合わせが来る窓口で、3件対応するのが90%の確率で何分以内に終わるか」を、たった1つの数式で逆算できます。

ExcelのGAMMA.INV関数にできることをまとめると、次のとおりです。

  • 累積確率からガンマ分布のx値(分位点)を求める
  • VaR(バリュー・アット・リスク)的な上限値を計算する
  • 「90%の信頼水準で〇〇以内に収まる値」を逆算する
  • 保険準備金や安全在庫量のしきい値を設定する

NOTE

GAMMA.INV関数はExcel 2010以降で使えます。Excel 2007以前の環境ではGAMMAINV関数を使ってください。Microsoft 365、Excel 2024、Excel 2021ではどちらも引き続き使用できますよ。

「逆関数」とは何か

逆関数とは、入力と出力の関係を逆向きにした関数のことです。GAMMA.DIST関数とGAMMA.INV関数は、まさに入出力を入れ替えた関係にありますよ。

操作関数入力出力
値→確率GAMMA.DIST(x, alpha, beta, TRUE)x(評価する値)x以下となる確率
確率→値GAMMA.INV(probability, alpha, beta)累積確率対応するx値

「ある値以下になる確率は?」と聞かれたらGAMMA.DIST、「ある確率になるのは何の値?」と聞かれたらGAMMA.INV、と覚えておくとわかりやすいですよ。

基本構文と3つの引数

GAMMA.INV関数の構文はとてもシンプルです。

=GAMMA.INV(probability, alpha, beta)

カッコの中に3つの引数を指定します。すべて必須なので省略できませんよ。

引数必須/任意範囲説明
probability必須0以上1未満ガンマ分布の累積確率
alpha(アルファ)必須正の数値形状パラメータ
beta(ベータ)必須正の数値尺度パラメータ

probabilityには累積確率(0から1の値)を指定します。たとえば95%なら0.95、中央値を求めたいなら0.5を入れますよ。

alphaは「形状パラメータ」と呼ばれ、分布の形を決める値です。イベント回数に相当します。betaは「尺度パラメータ」と呼ばれ、分布の広がりを決める値で、1回あたりの平均時間や金額に相当します。

平均は alpha × beta で計算できます。たとえばalpha=3、beta=10なら平均は30です。

WARNING

probabilityは0以上1未満です。1ちょうどを指定すると#NUM!エラーになります。alphaとbetaも0以下を指定するとエラーになりますので、必ず正の数で指定してくださいね。

中央値を求めてみる

まずは一番シンプルな例として、中央値(probability=0.5)を求めてみましょう。alpha=3、beta=2のガンマ分布で計算します。

=GAMMA.INV(0.5, 3, 2)

結果は約5.3481です。「ちょうど50%の確率でx ≤ 5.35になる」という意味ですよ。平均値(alpha × beta = 6)よりやや小さいことに気づきます。これはガンマ分布が右に裾を引く非対称な分布だからですね。

GAMMA.DIST関数との関係(双方向検証)

GAMMA.INV関数の理解を深めるには、GAMMA.DIST関数との往復関係を確かめるのが一番です。同じパラメータ(alpha=3、beta=2)で双方向検証してみましょう。

GAMMA.DISTで「値→確率」を求める

まずはGAMMA.DIST関数で、x=10の累積確率を求めます。

=GAMMA.DIST(10, 3, 2, TRUE)

結果は約0.8753(87.5%)です。「x ≤ 10となる確率は87.5%」という意味ですね。

GAMMA.INVで「確率→値」を逆算する

次にGAMMA.INV関数で、累積確率0.8753に対応するx値を逆算します。

=GAMMA.INV(0.8753, 3, 2)

結果は約10.0です。GAMMA.DISTで入れたx=10がきちんと戻ってきましたね。これがGAMMA.DIST関数とGAMMA.INV関数が逆関数の関係にある証拠ですよ。

サンプルデータで対比してみる

alpha=3、beta=2の場合で、xと累積確率の対応を双方向で見てみましょう。

xGAMMA.DIST(累積確率)GAMMA.INV(逆算結果)
10.0144約1.0
20.0803約2.0
40.3233約4.0
60.5768約6.0
80.7619約8.0
100.8753約10.0
150.9797約15.0

GAMMA.DISTで得た確率をGAMMA.INVに入れると、もとのxに戻ります。電卓の「逆算ボタン」のようなイメージですね。

TIP

「ある累積確率に対応するx値」のことを統計学では分位点(quantile)と呼びます。GAMMA.INV(0.95, …)なら「95パーセンタイル」を求めていることになりますよ。

GAMMA.INV関数の実務活用3パターン

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

コールセンター――90%が終わる時間の上限

「平均10分間隔で問い合わせが来るコールセンター」を考えましょう。3件の問い合わせ対応が90%の確率で何分以内に終わるかを逆算します。alpha=3(3件分)、beta=10(1件あたり平均10分)と指定しますよ。

=GAMMA.INV(0.9, 3, 10)

結果は約53.32分です。「9割の場合、3件の対応が53分以内に終わる」と読めますね。

「95%が終わる時間」も求めてみましょう。

=GAMMA.INV(0.95, 3, 10)

結果は約62.95分です。SLA(サービスレベル合意)を「3件の処理時間:90%は53分以内、95%は63分以内」のように設定するときの根拠数値になりますよ。

保険金請求――95%が収まる上限額(VaR)

「過去データから形状パラメータalpha=2、尺度パラメータbeta=50万円の分布に従う」保険金請求を考えましょう。請求額の95%が収まる上限額を求めます。

=GAMMA.INV(0.95, 2, 50)

結果は約237.0万円です。「95%の確率で請求は237万円以下に収まる」と読めます。これは金融・保険業界でいうVaR(Value at Risk: バリュー・アット・リスク)的な発想で、準備金の設定や保険料の算出に使えますよ。

「99%上限」も計算してみましょう。

=GAMMA.INV(0.99, 2, 50)

結果は約331.9万円です。99%信頼水準なら準備金は332万円必要、という判断材料になりますね。

品質管理――上位5%の判定境界

「不良品の処理時間がalpha=5、beta=2分の分布に従う」工程を考えましょう。「処理時間の上位5%(外れ値)」を判定するしきい値を求めます。平均は5×2=10分ですね。

=GAMMA.INV(0.95, 5, 2)

結果は約18.31分です。「処理に18.3分以上かかったら異常値(上位5%)として要調査」のように、品質管理ルールのしきい値として使えますよ。

「上位1%」だとどうでしょうか。

=GAMMA.INV(0.99, 5, 2)

結果は約23.21分です。「23分超は明らかに異常」というラインが引けますね。安全在庫量の算定や、リードタイム分布からの欠品確率管理にも応用できます。

CHISQ.INV関数・他の逆関数との関係

GAMMA.INV関数は、特定のパラメータで指定すると他の分布関数の逆関数と一致します。実は統計関数の世界では中心的な存在なんですよ。

CHISQ.INV関数との関係(alpha=n/2、beta=2のとき)

alpha=n/2、beta=2を指定すると、ガンマ分布の逆関数は自由度nのカイ二乗分布の逆関数と一致します。以下の2つは同じ結果を返しますよ。

=GAMMA.INV(0.95, 3, 2)
=CHISQ.INV(0.95, 6)

どちらも約12.59を返します。alpha=3はカイ二乗分布の自由度6(n=2×alpha=6)に対応しますね。

指数分布との関係(alpha=1のとき)

alphaを1にすると、ガンマ分布の逆関数は指数分布の逆関数と一致します。

=GAMMA.INV(0.5, 1, 10)

結果は約6.93で、これは指数分布の中央値(10 × ln(2) ≒ 6.93)と一致しますよ。

TIP

ガンマ分布は「指数分布の一般化」であり、「カイ二乗分布を含む大きな分布族」でもあります。GAMMA.INVを覚えておくと、関連する分布の逆関数も同じ感覚で扱えるようになりますよ。

確率分布逆関数ファミリー

Excelには確率分布の逆関数(.INV系)がいくつかあります。目的に応じて使い分けましょう。

関数用途いつ使うか
GAMMA.INVガンマ分布の逆関数複数イベントの合計時間や右裾データのしきい値を逆算したい場合
BETA.INVベータ分布の逆関数比率や割合のしきい値を逆算したい場合
CHISQ.INVカイ二乗分布の逆関数適合度検定や独立性検定の臨界値を求める場合
NORM.INV正規分布の逆関数連続データのパーセンタイルを求める場合
F.INVF分布の逆関数分散分析の臨界値を求める場合
T.INVt分布の逆関数t検定の臨界値を求める場合

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

  • 複数件の合計待ち時間や右裾データのしきい値 → GAMMA.INV
  • 比率や割合のしきい値 → BETA.INV
  • 連続データ(身長・体重など)のパーセンタイル → NORM.INV
  • 検定の臨界値 → CHISQ.INV / F.INV / T.INV

よくある間違いと注意点

GAMMA.INV関数でつまずきやすいポイントをまとめました。エラーになったときはここをチェックしてみてくださいね。

probabilityが範囲外で#NUM!エラー

probabilityは0以上1未満で指定します。負の値や1以上を入れるとエラーになりますよ。

=GAMMA.INV(-0.1, 3, 2)   --- #NUM! エラー
=GAMMA.INV(1.5, 3, 2)    --- #NUM! エラー
=GAMMA.INV(1, 3, 2)      --- #NUM! エラー

ガンマ分布は無限大に裾を引く分布なので、確率がちょうど1になるx値は存在しません。99.99%(0.9999)くらいまでに留めて指定しましょう。

alphaが0以下で#NUM!エラー

alpha(形状パラメータ)は正の数で指定します。0や負の値はエラーになりますよ。

=GAMMA.INV(0.5, 0, 2)    --- #NUM! エラー
=GAMMA.INV(0.5, -1, 2)   --- #NUM! エラー

イベント回数を表すパラメータなので、最低でも0より大きい値が必要です。

betaが0以下で#NUM!エラー

beta(尺度パラメータ)も正の数で指定します。0以下はエラーですよ。

=GAMMA.INV(0.5, 3, 0)    --- #NUM! エラー
=GAMMA.INV(0.5, 3, -2)   --- #NUM! エラー

1回あたりの平均時間(や金額)を表すパラメータなので、こちらも0より大きい値で指定してください。

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

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

関数名のスペルミスで#NAME?エラー

関数名を「GAMMAINV」「GAMA.INV」のように打ち間違えると#NAME?エラーになります。ピリオド(.)の位置にも注意してくださいね。

なお「GAMMAINV」(ピリオドなし)は旧関数名で、こちらはエラーにならず動作します。詳しくは次のセクションで紹介しますよ。

probabilityとxを混同してしまう

GAMMA.INVに「観測値x」を入れてしまうケースがよくあります。GAMMA.INVの第1引数は「累積確率(0〜1の値)」ですよ。

求めたいもの関数と引数
x以下となる確率=GAMMA.DIST(x, alpha, beta, TRUE)
ある確率に対応するx値=GAMMA.INV(probability, alpha, beta)

「値を入れたら確率が返る」ならGAMMA.DIST、「確率を入れたら値が返る」ならGAMMA.INVと覚えてくださいね。

GAMMAINV関数(互換関数)との違い

ExcelにはGAMMA.INVのほかに、GAMMAINVという関数もあります。これはGAMMA.INVの旧バージョンですよ。

=GAMMAINV(0.95, 3, 2)        --- 旧関数名(動作は同じ)
=GAMMA.INV(0.95, 3, 2)       --- 新関数名(推奨)

引数の数・順番・意味もすべて同じで、計算結果もまったく同じです。Excel 2010以降で「.(ピリオド)入りの新名称」が導入されたタイミングで分かれました。

項目GAMMA.INV(新)GAMMAINV(旧)
導入時期Excel 2010以降Excel 2007以前から存在
推奨こちらを推奨互換目的でのみ使用
計算結果同じ同じ
引数probability, alpha, betaprobability, alpha, beta
廃止予定なし廃止予定のアナウンスなし

新しく数式を書くときはGAMMA.INVを使いましょう。既存のシートでGAMMAINV関数が使われていても、そのまま動作しますよ。急いで書き換える必要はありません。

NOTE

Excel 2007互換ファイル(.xls形式)を使うチームと共有する場合は、GAMMAINV関数のままにしておくと安全です。新しい環境だけならGAMMA.INVで統一しましょう。

まとめ

ExcelのGAMMA.INV関数は、ガンマ分布の累積確率からx値を逆算する関数です。

  • 累積確率(0以上1未満)を入力するとガンマ分布のx値(分位点)が返る
  • GAMMA.DIST関数(値→確率)の逆関数として動作する
  • alphaは形状パラメータ(イベント回数)、betaは尺度パラメータ(1回の平均時間)
  • 平均値は alpha × beta で計算できる
  • コールセンターのSLA設定・保険金請求のVaR・品質管理のしきい値に使える
  • probabilityは0以上1未満で指定(1ちょうどは#NUM!エラー)
  • alpha・betaは正の数で指定(0以下は#NUM!エラー)
  • alpha=1なら指数分布の逆関数と同じ結果
  • alpha=n/2、beta=2ならカイ二乗分布の逆関数(CHISQ.INV)と同じ結果
  • 旧関数GAMMAINVと計算結果は同じ。新規にはGAMMA.INVを推奨
  • 「比率や割合のしきい値」ならBETA.INV関数を使う

確率の話を「x値の上限」に置き換えられると、判断のスピードがぐっと上がります。GAMMA.INV関数を使えば、待ち時間や請求額のような連続データの上限値を客観的な数値で出せるようになりますよ。

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