スプレッドシートのGAMMA.INV関数の使い方|ガンマ分布逆関数

スポンサーリンク

「問い合わせ3件分の対応が95%の確率で収まる時間は何分だろう?」。こんな疑問を持ったことはありませんか?

GAMMA.DIST関数を使えば「x分以内に収まる確率」は求められます。でも逆に「確率pに対応する時間」を知りたいときはどうすればよいのでしょうか。

そんなときに使うのがGAMMA.INV関数です。この記事では基本構文から実務活用まで解説します。GAMMA.DISTとの逆関数関係や、GAMMAINV関数との違いもあわせて紹介しますよ。

スプレッドシートのGAMMA.INV関数とは

GAMMA.INV関数(読み方: ガンマ・インバース関数)は、ガンマ分布の累積確率から対応する値を逆算する関数です。「GAMMA」はギリシャ文字のガンマに由来する数学用語です。「INV」は「Inverse(逆関数)」の略です。

GAMMA.DIST関数が「値x → 確率p」を求めるのに対し、GAMMA.INV関数はその逆の「確率p → 値x」を求めます。つまり2つの関数は逆関数の関係にあります。

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

  • 「95%の確率で収まる合計待ち時間」を逆算する
  • 保険金の請求額分布で「上位10%ライン」を求める
  • SLA(サービスレベル合意)の基準値を算出する
  • 在庫管理で安全マージンの目安を計算する

NOTE

GAMMA.INV関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。

GAMMA.INV関数の基本構文と引数

基本構文

=GAMMA.INV(確率, alpha, beta)

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

引数の一覧

引数必須/任意説明
確率(probability)必須ガンマ分布の累積確率。0より大きく1より小さい値
alpha(アルファ)必須形状パラメータ(正の数値)
beta(ベータ)必須尺度パラメータ(正の数値)

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

WARNING

確率は0より大きく1より小さい値(0 < 確率 < 1)で指定します。0や1を指定すると#NUM!エラーになります。alphaとbetaはどちらも正の数です。0以下を指定するとやはり#NUM!エラーです。

GAMMAINV関数(互換関数)との関係

GoogleスプレッドシートにはGAMMAINVという関数もあります。これはGAMMA.INVの旧バージョンです。計算結果はまったく同じです。

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

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

GAMMA.INV関数の基本的な使い方

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

=GAMMA.INV(0.5, 3, 10)

結果は約26.77です。「alpha=3、beta=10のガンマ分布で、値が26.77以下となる確率がちょうど50%」という意味です。

本当に正しいか、GAMMA.DISTで検算してみましょう。

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

結果は約0.5000です。GAMMA.INVで求めた値をGAMMA.DISTに戻すと、元の確率に戻ります。逆関数の関係がきちんと成り立っていますね。

確率を変えて結果を見てみましょう。alpha=3、beta=10(平均30)の場合です。

確率GAMMA.INV の結果意味
0.10約13.39下位10%ライン
0.25約19.34第1四分位
0.50約26.77中央値
0.75約36.78第3四分位
0.90約48.50上位10%ライン
0.95約55.46上位5%ライン
0.99約71.22上位1%ライン

確率が大きくなるほど返る値も大きくなります。ガンマ分布は右裾が長いので、90%以上の確率では値が急激に大きくなるのが特徴です。

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

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

コールセンター――SLAの基準時間を算出する

「平均10分間隔で問い合わせが来るコールセンター」を考えましょう。3件の問い合わせに対応する合計時間について、「95%の確率で収まる上限時間」を求めます。alpha=3(3件)、beta=10(1件あたり平均10分)です。

=GAMMA.INV(0.95, 3, 10)

結果は約55.46分です。95%の確率で3件の対応は55分以内に完了します。この値をSLAの基準として「3件対応は60分以内」と設定すれば、十分な余裕を持たせられますね。

さらに「99%で収まる時間」も見てみましょう。

=GAMMA.INV(0.99, 3, 10)

結果は約71.22分です。99%カバーだと約71分です。シフト計画を立てるときの参考になります。

保険金請求――高額請求の基準額を決める

「過去データからalpha=2、beta=50万円の分布に従う」保険金請求を考えましょう。「上位5%に入る高額請求の境界額」を求めます。

=GAMMA.INV(0.95, 2, 50)

結果は約224.22万円です。請求の95%が約224万円以下に収まります。つまり224万円を超える請求が「高額」と判断できます。

「上位1%ライン」も求めてみましょう。

=GAMMA.INV(0.99, 2, 50)

結果は約329.83万円です。この金額を超える請求は全体の1%未満です。準備金の上限額を設定するときの根拠にできますね。

売上分析――在庫準備の安全マージン

「日次売上がalpha=5、beta=2万円のガンマ分布に従う」ケースを考えましょう。平均は5*2=10万円です。「90%の日をカバーできる在庫額」を求めます。

=GAMMA.INV(0.90, 5, 2)

結果は約14.53万円です。14.5万円分の在庫を準備すれば、90%の日は品切れせずに済みます。

「99%カバー」の場合はどうでしょうか。

=GAMMA.INV(0.99, 5, 2)

結果は約20.52万円です。99%カバーだと約20.5万円分の在庫が必要です。在庫コストとのバランスを見ながら、90%ラインと99%ラインのどちらを採用するか判断してくださいね。

GAMMA.DISTとの逆関数関係

GAMMA.INV関数とGAMMA.DIST関数は、互いに逆の計算をする関係です。この関係を押さえておくと、使い分けで迷わなくなります。

「値→確率」と「確率→値」

=GAMMA.DIST(40, 3, 10, TRUE)   → 約0.7619(40以下の確率)
=GAMMA.INV(0.7619, 3, 10)      → 約40.00(76.19%に対応する値)

GAMMA.DISTに値を入れると確率が返り、その確率をGAMMA.INVに入れると元の値に戻ります。

使い分けの判断基準はシンプルです。

  • 「x分以内に収まる確率は?」GAMMA.DIST関数を使う
  • 「95%で収まる時間は何分?」 → GAMMA.INV関数を使う

「わかっている値」が時間や金額ならGAMMA.DIST、確率ならGAMMA.INVと覚えましょう。

検算テクニック

GAMMA.INVの結果が正しいか不安なときは、次のように検算できます。

=GAMMA.DIST(GAMMA.INV(0.95, 3, 10), 3, 10, TRUE)

結果が0.95に戻れば正しい計算です。逆関数の性質を使った検算ですね。alpha・betaが同じ値であることを確認するのがポイントです。

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

Googleスプレッドシートには、確率から値を逆算する関数がいくつかあります。目的に応じて使い分けましょう。

関数用途いつ使うか
GAMMA.INVガンマ分布の逆関数複数イベントの合計待ち時間や右裾データを逆算する場合
NORM.INV正規分布の逆関数連続データ(身長・体重・気温など)の境界値を求める場合
CHISQ.INVカイ二乗分布の逆関数適合度検定・独立性検定の臨界値を求める場合
F.INVF分布の逆関数F検定・分散分析の臨界値を求める場合

迷ったときの判断基準はこちらです。

  • 複数回の合計待ち時間の上限 → GAMMA.INV
  • 連続データの上下限NORM.INV
  • 検定の臨界値(カイ二乗)CHISQ.INV
  • 検定の臨界値(F検定)F.INV

TIP

各「.INV」関数は、対応する「.DIST」関数の逆関数です。GAMMA.DISTが「値→確率」なら、GAMMA.INVは「確率→値」。このパターンはNORM.DIST/NORM.INV、CHISQ.DIST/CHISQ.INVでも同じですよ。

よくある間違いと注意点

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

確率が0または1で#NUM!エラー

確率は0より大きく1より小さい値で指定します。ちょうど0や1を入れるとエラーになります。

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

「ちょうど0%」や「ちょうど100%」は数学的に定義できないためです。0.001や0.999のように、0と1に近い値を使ってください。

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

alphaは正の数で指定します。0や負の値はエラーになります。

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

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

betaも正の数で指定します。0以下はエラーです。

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

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

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

GAMMA.DISTとalpha・betaを取り違える

GAMMA.INVとGAMMA.DISTで同じalpha・betaを使わないと、逆算の結果がずれます。検算するときは両方の引数が一致しているか確認してくださいね。

Excelとの違い

GAMMA.INV関数は、GoogleスプレッドシートとExcelで構文・動作ともにほぼ同じです。

=GAMMA.INV(0.95, 3, 10)

この数式はどちらの環境でも同じ結果を返します。Excelでも旧関数名GAMMAINVが使えます。ただしMicrosoft公式ではGAMMA.INVが推奨されています。

ExcelとGoogleスプレッドシートを併用している方は、GAMMA.INVで統一しておけば問題ありませんよ。

まとめ

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

  • 引数は3つ: 確率・alpha(形状)・beta(尺度)
  • GAMMA.DIST関数の逆関数。「確率→値」を求めるときに使う
  • コールセンターのSLA設計で「95%で収まる時間」を算出できる
  • 保険金の高額請求ラインや在庫の安全マージンの算出にも活用できる
  • 確率に0や1を指定すると#NUM!エラー。alpha・betaは正の数で指定する
  • GAMMAINV関数と計算結果は同じ。新規にはGAMMA.INVを推奨
  • 検算は=GAMMA.DIST(GAMMA.INV(p, alpha, beta), alpha, beta, TRUE)で確率に戻るか確認
  • NORM.INVCHISQ.INVF.INVとあわせて、確率分布逆関数ファミリーとして使い分ける
タイトルとURLをコピーしました