「複数のイベントにかかる合計時間を、確率で知りたい」。そんな場面で使うのがガンマ分布です。
Googleスプレッドシートでガンマ分布を扱う関数は2つあります。GAMMADIST関数とGAMMA.DIST関数です。名前は違いますが、計算結果はまったく同じです。
この記事ではGAMMADIST関数の使い方を、基本構文から実務活用まで解説します。GAMMA.DIST関数との違いもあわせて紹介しますよ。
GAMMADIST関数とは
GAMMADIST関数(読み方: ガンマディスト関数)は、ガンマ分布にもとづいて確率を返す関数です。ガンマ分布とは、複数のイベントが起こるまでの「合計待ち時間」を表す確率分布です。
たとえば「平均10分に1件の問い合わせが来る窓口で、3件対応するまでの合計時間が40分以内に収まる確率」を1つの数式で求められます。
GAMMADIST関数にできることをまとめると、次のとおりです。
- ある値以下となる確率を求める(累積分布)
- 特定の値での確率密度を求める
- 複数回のイベント発生にかかる合計時間の確率を計算する
- 保険金の請求額分布や売上データの分析に使う
WARNING
GAMMADIST関数は、以前のバージョンとの互換性を維持するための関数です。Googleスプレッドシートでは問題なく使えますが、新しく数式を書くときはGAMMA.DIST関数を使うことをおすすめします。計算結果は同じです。
ガンマ分布が使える場面とは
ガンマ分布は、次のような場面で使えます。
- 複数イベントの合計待ち時間: 問い合わせ3件分の処理時間の合計
- 右に裾が長いデータの分析: 保険金の請求額、故障修理費用など
- 正の値のみを取る連続データ: 降水量、年間売上高など
1件あたりの待ち時間が指数分布に従うとき、n件分の合計待ち時間はガンマ分布に従います。つまりEXPON.DIST関数の「複数回バージョン」がGAMMADIST関数です。
TIP
ガンマ分布の形状パラメータ(alpha)が1のとき、ガンマ分布は指数分布と一致します。alpha=1ならEXPONDIST関数と同じ結果が得られますよ。
GAMMADIST関数の書き方(構文と引数)
基本構文
=GAMMADIST(x, alpha, beta, 累積)
カッコの中に4つの引数を指定します。すべて必須です。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| x | 必須 | 評価する値(0以上の数値) |
| alpha(アルファ) | 必須 | 形状パラメータ(正の数値) |
| beta(ベータ) | 必須 | 尺度パラメータ(正の数値) |
| 累積(cumulative) | 必須 | TRUEで累積分布、FALSEで確率密度 |
alphaは「形状パラメータ」と呼ばれます。分布の形を決めるパラメータで、イベント回数に相当します。betaは「尺度パラメータ」と呼ばれます。分布の広がりを決めるパラメータで、1回あたりの平均時間に相当します。
WARNING
alphaとbetaはどちらも正の数です。0以下を指定すると
#NUM!エラーになります。xは0以上で指定してください。
GAMMADIST関数の基本的な使い方
実際にGAMMADIST関数を使ってみましょう。
例題: 問い合わせが平均10分間隔で来る窓口で、3件対応する合計時間が10分以内に収まる確率を求めます。alpha=3(3件)、beta=2(便宜上の尺度パラメータ)です。
セルに次の数式を入力してください。
=GAMMADIST(10, 3, 2, TRUE)
結果は約0.8753(87.5%) です。alpha=3、beta=2のガンマ分布で、x=10以下となる確率が87.5%ということがわかりました。
次に、同じ条件で確率密度を求めてみましょう。
=GAMMADIST(10, 3, 2, FALSE)
結果は約0.0270 です。これはx=10での確率の密度を表す値です。「ちょうど10の確率」ではない点に注意してくださいね。
「10以上となる確率」を知りたいときは、1から累積確率を引きます。
=1 - GAMMADIST(10, 3, 2, TRUE)
結果は約0.1247(12.5%) です。10以上となる確率は約12%ですね。
TRUE/FALSEの結果を比較する
alpha=3、beta=2の場合で、xの値ごとの結果を並べてみましょう。平均値はalpha * beta = 6です。
| x | FALSE(確率密度) | TRUE(x以下の確率) |
|---|---|---|
| 1 | 0.0758 | 0.0144(1.4%) |
| 2 | 0.1353 | 0.0803(8.0%) |
| 4 | 0.1465 | 0.3233(32.3%) |
| 6 | 0.1116 | 0.5768(57.7%) |
| 8 | 0.0710 | 0.7619(76.2%) |
| 10 | 0.0270 | 0.8753(87.5%) |
| 15 | 0.0037 | 0.9797(98.0%) |
FALSE列はx=4付近で最大値を取り、その前後で小さくなります。TRUE列はxが増えるほど1に近づいていきます。
GAMMADIST関数の実践的な使い方
基本がわかったところで、実務で使えるパターンを紹介します。
コールセンターで3件対応にかかる合計時間を予測する
「平均10分間隔で問い合わせが来るコールセンター」を考えましょう。3件の問い合わせに対応する合計時間が40分以内に収まる確率を求めます。alpha=3(3件)、beta=10(1件あたり平均10分)です。
=GAMMADIST(40, 3, 10, TRUE)
結果は約0.7619(76.2%) です。約76%の確率で40分以内に3件の対応が完了します。
では「50分以上かかる確率」はどうでしょうか。
=1 - GAMMADIST(50, 3, 10, TRUE)
結果は約0.1247(12.5%) です。3件で50分を超える確率は約12%です。シフト計画を立てるときの参考になりますね。
保険金請求額の分布を予測する
「過去データから形状パラメータalpha=2、尺度パラメータbeta=50万円の分布に従う」保険金請求を考えましょう。請求額が150万円以下となる確率を求めます。
=GAMMADIST(150, 2, 50, TRUE)
結果は約0.8009(80.1%) です。請求の約80%が150万円以下に収まります。
「200万円を超える大口請求の確率」は次のとおりです。
=1 - GAMMADIST(200, 2, 50, TRUE)
結果は約0.0916(9.2%) です。約9%の確率で200万円超の請求が来ます。準備金の設定や保険料の算出に活用できますね。
日次売上の確率を計算する
「日次売上がalpha=5、beta=2万円のガンマ分布に従う」ケースを考えましょう。平均はalpha * beta = 10万円です。日次売上が8万円以上になる確率を求めます。
=1 - GAMMADIST(8, 5, 2, TRUE)
結果は約0.7149(71.5%) です。約71%の日で8万円以上の売上が見込めます。
「15万円以上の好調日」の確率を見てみましょう。
=1 - GAMMADIST(15, 5, 2, TRUE)
結果は約0.1321(13.2%) です。好調日は約13%です。人員配置や在庫計画の判断材料になりますね。
GAMMADIST関数でよくあるエラーと対処法
GAMMADIST関数でつまずきやすいポイントをまとめました。
xが負の値で#NUM!エラー
xは0以上の数値で指定します。負の値を入れるとエラーになります。
=GAMMADIST(-1, 3, 2, TRUE) ← #NUM! エラー
alphaが0以下で#NUM!エラー
alphaは正の数で指定します。0や負の値はエラーになります。
=GAMMADIST(5, 0, 2, TRUE) ← #NUM! エラー
betaが0以下で#NUM!エラー
betaも正の数で指定します。0以下はエラーです。
=GAMMADIST(5, 3, 0, TRUE) ← #NUM! エラー
引数に文字列を渡して#VALUE!エラー
数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値であることを確認しましょう。
TRUE/FALSEの指定を間違える
4番目の引数を省略することはできません。TRUEとFALSEでは結果がまったく異なります。「x以下の確率」を求めたいのにFALSEを指定すると、確率密度が返ってしまいます。目的に合った値を選んでくださいね。
GAMMADIST関数とGAMMA.DIST関数の違い
Googleスプレッドシートには、GAMMADIST関数のほかにGAMMA.DIST関数があります。結論からいうと、計算結果はまったく同じです。
=GAMMADIST(10, 3, 2, TRUE) → 0.8753
=GAMMA.DIST(10, 3, 2, TRUE) → 0.8753
違いは名前だけで、引数の数・順番・意味もすべて同じです。
| 項目 | GAMMADIST | GAMMA.DIST |
|---|---|---|
| 構文 | =GAMMADIST(x, alpha, beta, cumulative) | =GAMMA.DIST(x, alpha, beta, cumulative) |
| 引数の数 | 4 | 4 |
| 計算結果 | 同じ | 同じ |
| 位置づけ | 互換関数(旧バージョン向け) | 推奨関数(新バージョン) |
GAMMADIST関数は古いスプレッドシートとの互換性を維持するために残されている関数です。新しく数式を書くときはGAMMA.DIST関数を使いましょう。既存のシートでGAMMADIST関数が使われている場合は、そのまま動作するので急いで書き換える必要はありません。
関連する統計関数
ガンマ分布以外の確率分布を扱いたいときは、目的に合った関数を選びましょう。
| 関数 | 用途 | いつ使うか |
|---|---|---|
| GAMMA.DIST | ガンマ分布の確率 | GAMMADIST関数の推奨版。新規数式はこちら |
| GAMMA.INV | ガンマ分布の逆関数 | 確率から値を逆算したい場合 |
| EXPON.DIST | 指数分布の確率 | 1件分の待ち時間を扱う場合 |
| EXPONDIST | 指数分布の確率(互換関数) | 既存のシートで使われている場合 |
| NORM.DIST | 正規分布の確率 | 連続データ(身長・体重・気温など)を扱う場合 |
| WEIBULL.DIST | ワイブル分布の確率 | 製品寿命・故障率を分析する場合 |
| GAMMA | ガンマ関数(数値) | ガンマ関数の値そのものを計算する場合 |
迷ったときの判断基準はシンプルです。
- 1件分の待ち時間 → EXPON.DIST(EXPONDISTでも同じ結果)
- 複数件の合計待ち時間 → GAMMA.DIST(GAMMADISTでも同じ結果)
- 連続データの確率 → NORM.DIST
- 製品の寿命分析 → WEIBULL.DIST
まとめ
GAMMADIST関数は、ガンマ分布(複数イベントの合計待ち時間)にもとづいて確率を求める互換関数です。
- 4番目の引数にTRUEで「x以下となる確率」が返る
- FALSEで「値xでの確率密度」が返る
- alphaは形状パラメータ(イベント回数)、betaは尺度パラメータ(1回の平均時間)
- コールセンターの合計対応時間・保険金請求額・売上分析に使える
- 「x以上の確率」を求めるには
=1 - GAMMADIST(x, alpha, beta, TRUE)と書く - xが負の値やalpha・betaが0以下だと
#NUM!エラー - GAMMA.DIST関数と計算結果は同じ。新規にはGAMMA.DISTを推奨
- 「1件分の待ち時間」ならEXPON.DIST関数、「連続データの確率」ならNORM.DIST関数を使う
「合計の対応時間がどのくらいかかりそうか?」を確率で答えられると、シフト計画や準備金の見積もりに根拠が持てます。ぜひ実際のデータで試してみてくださいね。
