包除原理
3つ以上の「または」を、重なりを正しく処理して数える
できるようになること
- 3つの事象の「または」の確率を、包除原理を使って計算できる
- ベン図を使って「足して引いて足し戻す」パターンを説明できる
- 包除原理と余事象アプローチを場面に応じて使い分けられる
全体で何人にリーチできたのか?
あなたはWebマーケティングの担当者で、新商品のキャンペーンを3つの広告チャネルで展開しました。
- SNS広告():3,000人にリーチ
- 検索広告():2,500人にリーチ
- 動画広告():2,000人にリーチ
「合計7,500人にリーチできた!」と報告したくなりますが、本当にそうでしょうか?
実際には、同じユーザーが複数のチャネルで広告を目にしていることがあります。重複を無視して足すだけでは、リーチ数を水増しすることになってしまいます。
この「重複のある数え上げ」を正確に処理する方法が、包除原理(inclusion-exclusion principle)です。
加法定理の振り返り
「加法定理」の単元で、2つの事象の「または」を次のように計算しました。
とそのまま足すと、共通部分 が二重に数えられてしまいます。だから を1回引いて修正する、という考え方でした。
では、事象が3つになるとどうなるでしょうか?
3事象の包除原理
3つの事象 、、 の「いずれかが起きる確率」は、次の式で計算します。
なぜ「2つずつの重なりを引く」だけでなく、最後に を足し戻すのでしょうか?3つの円が重なるベン図をイメージしながら、ステップごとに確認してみましょう。
ステップ1:全部足す
と足すと、ちょうど2つの事象だけに属する部分は2回、3つすべてに属する部分は3回数えられてしまいます。
ステップ2:2つずつの重なりを引く
を引きます。ちょうど2つだけに属する部分は、この3つの項のうち1つだけに含まれるため、二重計上が解消されて正しく1回になります。
しかし、3つすべてが重なる部分は 、、 の3か所すべてに含まれているため、ステップ1で3回足されたものがここで3回引かれ、差し引き0回になってしまいます。
ステップ3:3つの重なりを足し戻す
3つすべてが重なる部分が消えてしまったので、 を1回足し戻して修正します。
この「足す → 引く → 足し戻す」のパターンが、包除原理の核心です。
Web広告の例を計算する
ここまでは確率 の式として包除原理を説明しましたが、「足して引いて足し戻す」ルールは人数(集合の要素数)を数えるときにもまったく同じ形で成り立ちます。
先ほどのキャンペーンで、チャネル間の重複について以下のデータが得られたとします。対象ユーザーは全体で10,000人です。
| 項目 | 人数 |
|---|---|
| SNS広告() | 3,000人 |
| 検索広告() | 2,500人 |
| 動画広告() | 2,000人 |
| SNS ∩ 検索() | 800人 |
| SNS ∩ 動画() | 500人 |
| 検索 ∩ 動画() | 400人 |
| 3チャネルすべて() | 100人 |
包除原理を適用すると、少なくとも1つのチャネルに接触した人数は、
となります。最初の「7,500人」は重複込みの数字であり、重なりを正しく処理すると5,900人が実際のリーチ数です。
確率で表すと、ランダムに選んだ1人のユーザーが少なくとも1つのチャネルに接触している確率は、
です。つまり、4,100人(41%)はどの広告にも接触していなかったことが分かります。
余事象アプローチとの使い分け
「少なくとも1つが起きる確率」を求めたいとき、包除原理のほかに余事象を使う方法があります。
先ほどのWeb広告の例では、各チャネルの重複データがすべて揃っていたので、包除原理で直接計算できました。一方、重複が分からなくても「どれにも接触しなかった人数」が分かっていれば、余事象の方がずっと簡単です。
余事象が特に有効な場面
3つのサイコロを同時に振って、少なくとも1つが6になる確率を求めてみましょう。1個目のサイコロが6になる事象を 、2個目を 、3個目を とします。
包除原理で計算してみます。サイコロの出目は互いに影響しないので、、、 は独立です(詳しくは「事象の独立」の単元を参照)。独立な事象では のように掛け算で求められます。単独の事象は3つ、2つの重なりは3通り(、、)あるので、
余事象で計算すると、
どちらも同じ答えですが、余事象の方が計算がずっと簡潔です。
「少なくとも1つ」という問いが出たら、まず余事象を検討しましょう。特に事象が独立で数が多いとき、「すべて起きない確率」を掛け算で求められるので、包除原理より手早く計算できます。
一般のn事象への拡張
包除原理は、任意の 個の事象に拡張できます。
は「異なる2つの組み合わせをすべて足す」という意味です。たとえば なら となります。
パターンは同じです。1つずつの確率を全部足す → 2つずつの重なりを全部引く → 3つずつの重なりを全部足す → …と、足す・引くの符号が交互に入れ替わります。
事象の数が増えると、1つずつ、2つずつ、3つずつ…と考えるべき項の総数が 個に達するため、実務で4事象以上の包除原理を直接使うことは稀です。多くの場合、余事象アプローチや独立性の仮定を活用して計算を簡略化します。
よくある誤解
「2つずつの重なりを引けば十分」
3事象の場合、、、 を引いただけでは不十分です。3つすべてが重なる部分はステップ1で3回足され、ステップ2で3回引かれて消えてしまいます。 の足し戻しを忘れると、答えが小さくなってしまいます。「引く」だけでなく「足し戻す」がセットであることを意識してください。
「独立だから で計算すればよい」
包除原理を使うには各重なりの確率が必要ですが、データが手元にないとき「独立を仮定して掛け算で求めよう」と安易に進めてしまうことがあります。しかし、実際には事象が独立でないケースは多いです(例:SNS広告を見る人は動画広告も見やすい、など)。独立の仮定が大きな誤差を生むこともあるため、重なりのデータが揃っていないときは、その仮定が妥当かを慎重に検討するか、余事象アプローチで回避できないかを考えましょう。
まとめ
包除原理は、「加法定理」を3つ以上の事象に拡張したものです。2事象では「足して引く」だけで済みましたが、3事象では「足して引いて足し戻す」必要があります。これは、2つずつの重なりを引くと3つすべてが重なる部分まで消えてしまうことを修正するためです。「少なくとも1つ」の確率を求めるときは余事象アプローチも有力な選択肢で、特に事象が独立な場合は掛け算で簡潔に計算できます。問題を見て「包除原理で直接計算するか、余事象で回り道するか」を判断できるようになることが、この単元のゴールです。