スプレッドシートのHYPGEOMDIST関数の使い方|超幾何分布(互換)

スポンサーリンク

「HYPGEOMDISTって関数を見つけたけど、HYPGEOM.DISTとどう違うの?」。スプレッドシートで統計関数を使おうとして、こんな疑問を持ったことはありませんか?

名前がよく似た関数が2つあると、どちらを使えばいいか迷いますよね。間違えたら計算結果が変わるのでは、と不安にもなります。

結論から言うと、HYPGEOMDIST関数はHYPGEOM.DIST関数の互換バージョンです。この記事ではGoogleスプレッドシートでのHYPGEOMDIST関数の使い方を、構文・引数から実務活用まで解説します。HYPGEOM.DIST関数との関係もはっきりさせますよ。

スプレッドシートのHYPGEOMDIST関数とは

HYPGEOMDIST関数(読み方: ハイパージオムディスト関数)は、超幾何分布(ちょうきかぶんぷ)にもとづいて確率を返す互換関数です。「HYPGEOM」は「Hypergeometric(超幾何)」、「DIST」は「Distribution(分布)」の略です。

超幾何分布とは、非復元抽出にもとづく確率分布のことです。非復元抽出とは、取り出したものを戻さずに次を引く方法です。くじ引きで当たりを引いたら袋に戻さずに次を引く場面をイメージしてください。引くたびに残りの枚数が減るので、毎回の当選確率が変わります。

たとえば次のような場面で使います。

  • 100個の部品から10個を抜き取って不良品を調べる検査
  • 20枚のくじから5枚を引いて当たりが何枚出るかの確率
  • 在庫50個のうち不良品が3個あるとき、8個抜き取って全部良品の確率

NOTE

HYPGEOMDIST関数はHYPGEOM.DIST関数互換関数です。計算結果はHYPGEOM.DISTのFALSE(確率質量)と同じですが、累積確率は求められません。Googleの公式ドキュメントではHYPGEOM.DISTが推奨されています。新しく数式を書くときはHYPGEOM.DISTを使いましょう。

HYPGEOMDIST関数の書き方(構文と引数)

基本構文

=HYPGEOMDIST(成功数, 標本サイズ, 母集団成功数, 母集団サイズ)

カッコの中に4つの引数を指定します。HYPGEOM.DIST関数の5番目の引数(cumulative)がない点が大きな違いです。

引数の説明

引数必須/任意説明
成功数(sample_s)必須標本内の成功数(当たりを何個引いたか)
標本サイズ(number_sample)必須標本のサイズ(何個引くか)
母集団成功数(population_s)必須母集団内の成功数(全体の当たりの数)
母集団サイズ(number_pop)必須母集団のサイズ(全体の個数)

引数の並びは「標本→母集団」の流れです。まず「引いた中の当たり数」「何個引いたか」を指定します。次に「全体の当たり数」「全体の個数」を指定します。

TIP

引数に小数を指定すると、小数部分は切り捨てられます。たとえば2.7は2として処理されますよ。

HYPGEOM.DISTとの引数比較

HYPGEOMDIST関数とHYPGEOM.DIST関数の引数を並べて比較してみましょう。

引数の位置HYPGEOMDISTHYPGEOM.DIST
1番目成功数(sample_s)成功数(sample_s)
2番目標本サイズ(number_sample)標本サイズ(number_sample)
3番目母集団成功数(population_s)母集団成功数(population_s)
4番目母集団サイズ(number_pop)母集団サイズ(number_pop)
5番目なし累積(cumulative)

最初の4つは同じです。HYPGEOM.DISTだけに5番目のcumulative引数があります。HYPGEOMDISTは常に確率質量(HYPGEOM.DISTのFALSE相当)を返します。

HYPGEOMDIST関数の基本的な使い方

実際に数式を入力して確率を求めてみましょう。10枚のくじがあり、そのうち3枚が当たりです。5枚引いたときに、ちょうど2枚が当たる確率を計算します。

=HYPGEOMDIST(2, 5, 3, 10)

結果は約0.4167(41.7%) です。5枚引けばほぼ半分の確率で2枚当たることがわかります。

各当たり枚数の確率も見てみましょう。

当たり枚数数式確率
0枚=HYPGEOMDIST(0, 5, 3, 10)0.0833(8.3%)
1枚=HYPGEOMDIST(1, 5, 3, 10)0.4167(41.7%)
2枚=HYPGEOMDIST(2, 5, 3, 10)0.4167(41.7%)
3枚=HYPGEOMDIST(3, 5, 3, 10)0.0833(8.3%)

1枚当たりと2枚当たりの確率がもっとも高く、同じ値になっています。合計するとちょうど1.0000(100%)になりますよ。

品質検査での活用例

品質管理の現場でも活用できます。100個の部品のうち不良品が5個あるロットから、10個を抜き取り検査する場面を考えましょう。

不良品が1個も含まれない確率を求めます。

=HYPGEOMDIST(0, 10, 5, 100)

結果は約0.5838(58.4%) です。不良品率5%のロットでも、10個の抜き取りでは約58%の確率で不良品がゼロになります。検査の精度を見積もるときに使えますよ。

「k個以上」の確率を求めるには

HYPGEOMDIST関数には累積確率の機能がありません。「k個以上」の確率を求めるには、個別の確率を足し合わせる必要があります。

たとえば「10枚のくじ(当たり3枚)から5枚引いて、2枚以上当たる確率」は次のように計算します。

=HYPGEOMDIST(2, 5, 3, 10) + HYPGEOMDIST(3, 5, 3, 10)

結果は約0.5000(50.0%) です。2枚当たる確率と3枚当たる確率を足しています。

ただし、場合の数が多いと個別に足すのは大変です。そんなときはHYPGEOM.DIST関数のTRUE(累積確率)を使うほうが簡単ですよ。

=1 - HYPGEOM.DIST(1, 5, 3, 10, TRUE)

累積確率を使えるのがHYPGEOM.DISTの大きなメリットです。

HYPGEOM.DIST関数との違い・どちらを使うべき?

HYPGEOMDIST関数とHYPGEOM.DIST関数の関係を整理しましょう。

項目HYPGEOMDISTHYPGEOM.DIST
種類互換関数(旧バージョン)現行関数(推奨)
引数の数4つ5つ
累積確率非対応TRUE/FALSEで選択可能
確率質量の計算結果同じ同じ(FALSEを指定)
Googleの推奨非推奨推奨

結論としては、新しく数式を書くときはHYPGEOM.DISTを使いましょう。理由は次の3つです。

  1. Googleの公式ドキュメントでHYPGEOM.DISTが推奨されている
  2. 累積確率(TRUE)を使えるため、「k個以下」の確率を1つの数式で求められる
  3. ExcelでもHYPGEOM.DISTが標準で、互換性が高い

ただし、既存のスプレッドシートでHYPGEOMDISTが使われている場合は慌てて書き換える必要はありません。確率質量の計算結果は同じなので、そのまま動き続けますよ。

TIP

HYPGEOM.DIST関数の詳しい使い方(累積確率の活用、品質検査への応用、BINOM.DISTとの使い分けなど)はHYPGEOM.DIST関数の解説記事で詳しく紹介しています。

HYPGEOMDISTからHYPGEOM.DISTへの書き換え

既存の数式を書き換えるなら、関数名を変更して5番目にFALSEを追加するだけです。

=HYPGEOMDIST(2, 5, 3, 10)           ← 互換関数
=HYPGEOM.DIST(2, 5, 3, 10, FALSE)   ← 推奨関数(FALSEを追加)

どちらも結果は0.4167です。HYPGEOMDISTは常にFALSE(確率質量)相当の値を返すので、書き換えるときは必ずFALSEを指定してくださいね。

スプレッドシートの「検索と置換」機能(Ctrl+H)を使えばシート内のHYPGEOMDISTをまとめて見つけられます。ただし引数の追加が必要なため、BINOM.DIST関数BINOMDIST関数のように単純な名前の置換だけでは完了しません。1つずつ5番目の引数を追加していきましょう。

よくあるエラーと対処法

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

#NUM! エラー: 成功数が標本サイズを超えている

成功数は標本サイズ以下でなければなりません。「5個引いて6個当たる」は起こりえないのでエラーになります。

=HYPGEOMDIST(6, 5, 3, 10)   ← #NUM! エラー

引数の順番を間違えていないか確認してみてください。

#NUM! エラー: 母集団成功数が母集団サイズを超えている

母集団成功数は母集団サイズ以下でなければなりません。「全体100個のうち当たり120個」は矛盾しています。

=HYPGEOMDIST(2, 5, 120, 100)   ← #NUM! エラー

#NUM! エラー: 成功数が母集団成功数を超えている

当たりが全部で3個しかないのに、5個当てることはできません。

=HYPGEOMDIST(5, 10, 3, 100)   ← #NUM! エラー

#VALUE! エラー: 引数に文字列が入っている

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

累積確率を求めようとしてエラーになるケース

HYPGEOMDIST関数にはcumulative引数がありません。5番目の引数を指定するとエラーになります。累積確率が必要な場合はHYPGEOM.DIST関数を使ってくださいね。

まとめ

HYPGEOMDIST関数は、超幾何分布(非復元抽出の確率分布)にもとづいて確率を求める互換関数です。

  • HYPGEOM.DIST関数の旧バージョンで、確率質量の計算結果は完全に同じ
  • 引数は4つで、HYPGEOM.DISTの5番目のcumulative引数がない
  • 常に確率質量(「ちょうどk個当たる確率」)のみを返す
  • 累積確率(「k個以下の確率」)が必要ならHYPGEOM.DISTを使おう
  • 新しく数式を書くときはHYPGEOM.DISTがおすすめ
  • 既存のHYPGEOMDIST数式はそのまま動くので、急いで書き換えなくてOK
  • 成功数 > 標本サイズなどの矛盾した値を指定すると#NUM!エラー
  • ほかの互換関数(BINOMDIST関数POISSON関数など)も同様に現行関数への移行が推奨されている

HYPGEOMDISTとHYPGEOM.DISTで迷ったら、HYPGEOM.DISTを選んでおけば間違いありません。既存ファイルのHYPGEOMDISTも問題なく動くので、安心してくださいね。

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