スプレッドシートのGAMMADIST関数の使い方|ガンマ分布(互換)

スポンサーリンク

「複数のイベントにかかる合計時間を、確率で知りたい」。そんな場面で使うのがガンマ分布です。

Googleスプレッドシートでガンマ分布を扱う関数は2つあります。GAMMADIST関数とGAMMA.DIST関数です。名前は違いますが、計算結果はまったく同じです。

この記事ではGAMMADIST関数の使い方を、基本構文から実務活用まで解説します。GAMMA.DIST関数との違いもあわせて紹介しますよ。

GAMMADIST関数とは

GAMMADIST関数(読み方: ガンマディスト関数)は、ガンマ分布にもとづいて確率を返す関数です。ガンマ分布とは、複数のイベントが起こるまでの「合計待ち時間」を表す確率分布です。

たとえば「平均10分に1件の問い合わせが来る窓口で、3件対応するまでの合計時間が40分以内に収まる確率」を1つの数式で求められます。

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

  • ある値以下となる確率を求める(累積分布)
  • 特定の値での確率密度を求める
  • 複数回のイベント発生にかかる合計時間の確率を計算する
  • 保険金の請求額分布や売上データの分析に使う

WARNING

GAMMADIST関数は、以前のバージョンとの互換性を維持するための関数です。Googleスプレッドシートでは問題なく使えますが、新しく数式を書くときはGAMMA.DIST関数を使うことをおすすめします。計算結果は同じです。

ガンマ分布が使える場面とは

ガンマ分布は、次のような場面で使えます。

  1. 複数イベントの合計待ち時間: 問い合わせ3件分の処理時間の合計
  2. 右に裾が長いデータの分析: 保険金の請求額、故障修理費用など
  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です。

xFALSE(確率密度)TRUE(x以下の確率)
10.07580.0144(1.4%)
20.13530.0803(8.0%)
40.14650.3233(32.3%)
60.11160.5768(57.7%)
80.07100.7619(76.2%)
100.02700.8753(87.5%)
150.00370.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

違いは名前だけで、引数の数・順番・意味もすべて同じです。

項目GAMMADISTGAMMA.DIST
構文=GAMMADIST(x, alpha, beta, cumulative)=GAMMA.DIST(x, alpha, beta, cumulative)
引数の数44
計算結果同じ同じ
位置づけ互換関数(旧バージョン向け)推奨関数(新バージョン)

GAMMADIST関数は古いスプレッドシートとの互換性を維持するために残されている関数です。新しく数式を書くときはGAMMA.DIST関数を使いましょう。既存のシートでGAMMADIST関数が使われている場合は、そのまま動作するので急いで書き換える必要はありません。

関連する統計関数

ガンマ分布以外の確率分布を扱いたいときは、目的に合った関数を選びましょう。

関数用途いつ使うか
GAMMA.DISTガンマ分布の確率GAMMADIST関数の推奨版。新規数式はこちら
GAMMA.INVガンマ分布の逆関数確率から値を逆算したい場合
EXPON.DIST指数分布の確率1件分の待ち時間を扱う場合
EXPONDIST指数分布の確率(互換関数)既存のシートで使われている場合
NORM.DIST正規分布の確率連続データ(身長・体重・気温など)を扱う場合
WEIBULL.DISTワイブル分布の確率製品寿命・故障率を分析する場合
GAMMAガンマ関数(数値)ガンマ関数の値そのものを計算する場合

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

まとめ

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関数を使う

「合計の対応時間がどのくらいかかりそうか?」を確率で答えられると、シフト計画や準備金の見積もりに根拠が持てます。ぜひ実際のデータで試してみてくださいね。

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