「1時間に平均5件の問い合わせが来るコールセンターで、8件以上になる確率はどのくらい?」。こんな疑問を感じたことはありませんか?
過去の平均はわかっていても、実際に何件来るかの確率は感覚でしか語れません。手計算で求めようとすると、指数や階乗が出てきて大変ですよね。
そんなときに使うのがPOISSON.DIST関数です。この記事ではGoogleスプレッドシートでのPOISSON.DIST関数の使い方を、基本構文から実務活用まで解説します。TRUE/FALSEの違いや、POISSON関数との関係もあわせて紹介しますよ。
POISSON.DIST関数とは
POISSON.DIST関数(読み方: ポアソン・ディスト関数)は、ポアソン分布にもとづいて確率を返す関数です。ポアソン分布とは、一定の期間や範囲のなかでイベントが何回起きるかの確率分布です。「POISSON」はフランスの数学者「ポアソン」に由来し、「DIST」は「Distribution(分布)」の略です。
たとえば「1時間に平均4件の電話が来るとき、6件以上になる確率」を1つの数式で求められます。
POISSON.DIST関数にできることをまとめると、次のとおりです。
- ちょうどx回イベントが起きる確率を求める(確率質量)
- x回以下イベントが起きる確率を求める(累積確率)
- コールセンターの着信予測やWebサイトのアクセス数を確率で計算する
- 在庫管理での欠品確率や品質管理での不良品発生予測に使う
NOTE
POISSON.DIST関数はGoogleスプレッドシートの全バージョンで使えます。Excelにも同名の関数があり、動作は同じです。
ポアソン分布が成り立つ3つの条件
POISSON.DIST関数を使うには、データがポアソン分布の前提を満たしている必要があります。
- イベントがランダムに発生する: いつ起きるかは予測できない
- 平均発生率が一定: 一定期間あたりの平均回数が変わらない
- 各イベントが独立: あるイベントの発生が、次のイベントの発生に影響しない
コールセンターへの着信、Webサイトへのアクセス、不良品の発生などは、この3条件を満たす典型的な場面です。
WARNING
「成功か失敗かの2択を繰り返す」場面はポアソン分布ではなく二項分布です。その場合はBINOM.DIST関数を使いましょう。
基本構文と3つの引数
=POISSON.DIST(x, 平均, 累積)
カッコの中に3つの引数を指定します。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| x | 必須 | イベントの発生回数(0以上の整数) |
| 平均(mean) | 必須 | 一定期間あたりの平均発生回数(正の数) |
| 累積(cumulative) | 必須 | TRUEで累積確率、FALSEで確率質量 |
TIP
xに小数を指定すると、小数部分は切り捨てられます。たとえば3.7は3として処理されます。
POISSON関数(互換関数)との関係
GoogleスプレッドシートにはPOISSONという関数もあります。これはPOISSON.DISTの旧バージョンで、計算結果はまったく同じです。
=POISSON(3, 4, TRUE) --- 旧関数名(動作は同じ)
=POISSON.DIST(3, 4, TRUE) --- 新関数名(推奨)
引数の数・順番・意味もすべて同じです。新しく数式を書くときはPOISSON.DISTを使いましょう。既存のシートでPOISSON関数が使われている場合は、そのまま動作するので急いで書き換える必要はありません。
NOTE
POISSON関数の詳しい使い方は、別の記事で解説しています。
POISSON.DIST関数のTRUE/FALSEの違い
POISSON.DIST関数の3番目の引数「累積」は、TRUEかFALSEで結果がまったく変わります。この違いを押さえておくことが、POISSON.DIST関数を使いこなすポイントです。
FALSE(確率質量関数)——ちょうどx回起きる確率
FALSEを指定すると確率質量関数(PMF: ちょうどx回イベントが起きる確率)の値を返します。
=POISSON.DIST(3, 4, FALSE)
この数式は「平均4件のとき、ちょうど3件起きる確率」を返します。結果は約0.1954(19.5%) です。
数学的には、次の式で計算されています。
P(X = x) = (e^(-mean) * mean^x) / x!
手計算だと指数と階乗が必要ですが、POISSON.DIST関数なら1つの数式で済みますよ。
TRUE(累積分布関数)——x回以下の確率
TRUEを指定すると累積分布関数(CDF: x回以下イベントが起きる確率の合計)の値を返します。
=POISSON.DIST(3, 4, TRUE)
この数式は「平均4件のとき、3件以下に収まる確率」を返します。結果は約0.4335(43.4%) です。
つまり0回+1回+2回+3回の確率を合計した値ですね。
2つを比較してみる(サンプルデータつき)
平均4件の場合で、発生回数ごとの結果を比べてみましょう。
| 発生回数 | FALSE(ちょうどx回) | TRUE(x回以下) |
|---|---|---|
| 0 | 0.0183(1.8%) | 0.0183(1.8%) |
| 1 | 0.0733(7.3%) | 0.0916(9.2%) |
| 2 | 0.1465(14.7%) | 0.2381(23.8%) |
| 3 | 0.1954(19.5%) | 0.4335(43.4%) |
| 4 | 0.1954(19.5%) | 0.6289(62.9%) |
| 5 | 0.1563(15.6%) | 0.7851(78.5%) |
| 6 | 0.1042(10.4%) | 0.8893(88.9%) |
FALSE列は発生回数3〜4回(平均付近)で最大になります。TRUE列は発生回数が増えるほど1に近づいていきます。
「x回以上の確率」を求めたいときは、=1 - POISSON.DIST(x-1, mean, TRUE) と書きます。たとえば「5回以上起きる確率」なら =1 - POISSON.DIST(4, 4, TRUE) で、結果は約0.3711(37.1%)です。
POISSON.DIST関数の実務活用3パターン
基本がわかったところで、実際の業務で使えるパターンを3つ紹介します。
コールセンターの着信予測
「1時間あたり平均8件の着信があるコールセンターで、12件以上になる確率」を求めてみましょう。
=1 - POISSON.DIST(11, 8, TRUE)
結果は約0.1121(11.2%) です。約11%の確率で12件以上の着信が来ることがわかります。
この情報をもとにオペレーターの配置を決められます。「12件以上にも対応できるようにしたい」なら、12件をさばけるだけの人員を確保しておけばよいわけです。
もう少し余裕を持って「15件以上」の確率も出してみましょう。
=1 - POISSON.DIST(14, 8, TRUE)
結果は約0.0109(1.1%) です。15件以上はほぼ起きないので、そこまでの備えは不要だと判断できますね。
在庫管理——欠品確率を見積もる
「1日あたり平均3個売れる商品の在庫が5個のとき、当日中に欠品する確率」を考えてみましょう。欠品するのは6個以上売れた場合です。
=1 - POISSON.DIST(5, 3, TRUE)
結果は約0.0839(8.4%) です。約8%の確率で在庫切れが起きることがわかります。
では在庫を7個に増やすとどうでしょうか。
=1 - POISSON.DIST(7, 3, TRUE)
結果は約0.0119(1.2%) です。在庫を2個増やすだけで欠品確率が8.4%から1.2%に下がりました。在庫数と欠品リスクのバランスを数字で判断できるのがPOISSON.DIST関数の強みです。
Webサイトのアクセス予測
「1時間あたり平均20件のアクセスがあるWebサイトで、30件以上になる確率」を求めてみましょう。サーバーの負荷対策を検討する場面です。
=1 - POISSON.DIST(29, 20, TRUE)
結果は約0.0218(2.2%) です。30件以上のアクセスが来る確率は約2%です。
一方で「25件以上」の確率を見ると、
=1 - POISSON.DIST(24, 20, TRUE)
結果は約0.1568(15.7%) です。25件以上は約16%の確率で起きるので、この水準には対応しておきたいところですね。
ポアソン分布とBINOM.DIST関数の関係
ポアソン分布は、実は二項分布の特殊なケースです。試行回数がとても大きく、1回あたりの発生確率がとても小さいとき、二項分布はポアソン分布に近づきます。
具体的に比較してみましょう。「1,000人中、ある病気にかかる確率が0.3%のとき、5人以上かかる確率」を両方の関数で計算します。
=1 - BINOM.DIST(4, 1000, 0.003, TRUE)
結果は約0.1847 です。
=1 - POISSON.DIST(4, 3, TRUE)
結果は約0.1847 です。ほぼ同じ値になりましたね(mean = 1000 x 0.003 = 3)。
使い分けの目安はシンプルです。
- 試行回数が決まっている → BINOM.DIST関数
- 一定期間のイベント回数を扱う → POISSON.DIST関数
迷ったときは「決まった回数の試行か、決まった期間の観察か」で判断してください。
確率分布関数ファミリー
Googleスプレッドシートには、確率分布に関連する関数がいくつかあります。目的に応じて使い分けましょう。
| 関数 | 用途 | いつ使うか |
|---|---|---|
| POISSON.DIST | ポアソン分布の確率 | 一定期間のイベント発生回数を扱う場合 |
| POISSON | ポアソン分布の確率(互換関数) | 既存のシートで使われている場合 |
| BINOM.DIST | 二項分布の確率 | 「成功/失敗」の2択を繰り返す場合 |
| NORM.DIST | 正規分布の確率 | 連続データ(身長・体重・気温など)を扱う場合 |
| NEGBINOM.DIST | 負の二項分布の確率 | 「x回目の成功までに何回失敗するか」を求める場合 |
迷ったときの判断基準はシンプルです。
- 一定期間にイベントが何回起きるか → POISSON.DIST
- 成功/失敗の2択を繰り返す → BINOM.DIST
- 連続データの確率 → NORM.DIST
よくある間違いと注意点
POISSON.DIST関数でつまずきやすいポイントをまとめました。
イベント回数xが負の値で#NUM!エラー
xは0以上の整数で指定します。負の値を入れるとエラーになります。
=POISSON.DIST(-1, 4, TRUE) --- #NUM! エラー
平均(mean)が負の値で#NUM!エラー
平均発生回数は正の数で指定します。0以下の値を入れるとエラーになります。
=POISSON.DIST(3, -2, TRUE) --- #NUM! エラー
引数に文字列を渡して#VALUE!エラー
数値であるべき引数にテキストが入ると#VALUE!エラーになります。セル参照を使うときは、参照先が数値であることを確認しましょう。
TRUE/FALSEの指定を間違える
3番目の引数を省略することはできません。TRUEとFALSEでは結果がまったく異なります。「ちょうどx回の確率」を求めたいのにTRUEを指定すると、累積値が返ってきてしまいます。目的に合った値を選んでくださいね。
「x回以上」の確率を求めるときの計算
POISSON.DIST関数のTRUEは「x回以下」の確率を返します。「x回以上」の確率が欲しいときは、次のように書きます。
=1 - POISSON.DIST(x-1, 平均, TRUE)
「x-1」にする点がポイントです。「x回以上」には「ちょうどx回」も含まれるため、x-1回以下の累積確率を1から引きます。
Excelとの違い
POISSON.DIST関数は、GoogleスプレッドシートとExcelで構文・動作ともにほぼ同じです。
=POISSON.DIST(3, 4, TRUE)
この数式はどちらの環境でも同じ結果を返します。Excelでも旧関数名POISSONが使えます。ただしMicrosoftの公式ドキュメントではPOISSON.DISTが推奨されています。
ExcelとGoogleスプレッドシートを併用している方は、POISSON.DISTで統一しておけば問題ありませんよ。
まとめ
POISSON.DIST関数は、ポアソン分布(一定期間にイベントが何回起きるか)にもとづいて確率を求める関数です。
- 3番目の引数にFALSEで「ちょうどx回起きる確率」が返る
- TRUEで「x回以下に収まる確率」が返る
- コールセンターの着信予測・在庫管理の欠品確率・Webアクセス予測に使える
- 「x回以上」を求めるには
=1 - POISSON.DIST(x-1, 平均, TRUE)と書く - イベント回数や平均が負の値だと
#NUM!エラー - POISSON関数と計算結果は同じ。新規にはPOISSON.DISTを推奨
- 二項分布にはBINOM.DIST関数、正規分布にはNORM.DIST関数を使う
「平均はわかっているけど、実際にどのくらいの確率でその回数になるの?」を数字で答えられるようになると、意思決定の精度がぐっと上がります。ぜひ実際のデータで試してみてくださいね。
