データ分析の第一歩!コイン投げから学ぶベルヌーイ分布と二項分布の仕組み
こんにちは。ゆうせいです。
新人エンジニアのみなさん、データ分析や機械学習という言葉を聞いて、なんだか難しそうだと身構えていませんか。数式がたくさん出てくると、どうしても頭が痛くなってしまうかもしれませんね。
でも、安心してください。実は、データ分析の基本となる考え方は、とてもシンプルなんです。今回は、その中でも最も基礎的な「ベルヌーイ分布」についてお話しします。これがわかれば、世の中の多くの現象を数学的に捉える第一歩を踏み出せますよ。
さあ、一緒に確率の世界へ飛び込んでみましょう。
すべての始まりは「イエスかノーか」
みなさんの日常には、結果が2つしかない出来事がたくさんありますよね。
たとえば、投げたコインが表か裏か。送信したメールが開封されたか、されなかったか。表示されたWeb広告がクリックされたか、されなかったか。
このように、結果が「成功」か「失敗」のどちらか2通りしかない試行のことを、数学の言葉で「ベルヌーイ試行」と呼びます。そして、この試行の結果が従う確率の分布を「ベルヌーイ分布」と言います。
名前は少し難しそうですが、要するに「0か1かの世界」のことです。
ここでは、成功(たとえばコインの表)を とし、失敗(コインの裏)を
として考えます。
成功する確率を とすると、失敗する確率は全体(つまり100%=1)から
を引いたものになります。つまり、失敗する確率は
ですね。
試行を繰り返すと見えてくる世界
では、この単純なコイン投げを1回だけでなく、何度も繰り返したらどうなるでしょうか。
たとえば、Webサイトの改善を任されたとしましょう。あるボタンがクリックされる確率(CTR)を知りたいとき、たった1人のユーザーの結果だけを見て判断するのは危険ですよね。たくさんのユーザーが訪れたとき、全体としてどれくらいクリックされるのかを知りたくなるはずです。
ベルヌーイ試行を 回繰り返したときに、成功する回数が従う分布のことを「二項分布」と呼びます。
エンジニアの現場では、単発のベルヌーイ分布よりも、この二項分布の形でデータを扱うことが非常に多いです。なぜなら、データというのは通常、たくさんのサンプルの集まりだからです。
データの「中心」と「ばらつき」を知る
データを分析するときに最も重要な指標が2つあります。それは「平均」と「分散」です。
平均は、データの中心がどこにあるかを示します。二項分布の場合、試行回数 に成功確率
を掛けた
が平均になります。これは直感的にもわかりやすいですよね。100回投げて表が出る確率が50%なら、平均して50回は表が出ると期待できるわけです。
では、「分散」はどうでしょうか。これは初心者の方が最初につまずきやすいポイントです。
分散とは、データが平均の周りにどれくらい散らばっているかを表す数値です。
二項分布における分散は、 という式で表されます。ここで、
は失敗する確率、つまり
のことです。
この式はとても面白い性質を持っています。試行回数 、成功確率
、失敗確率
の3つを掛け合わせるだけで、データのばらつき具合がわかってしまうのです。
もし、みなさんがシステムの応答時間を計測したり、エラー発生率を監視したりするとき、単に平均値を見るだけでは不十分です。ばらつき(分散)が大きければ、ユーザーによっては非常に遅い応答を経験しているかもしれません。この分散 を理解することは、サービスの品質を安定させるために欠かせない視点なのです。
練習問題:メールマガジンの開封数を予測せよ
あなたは自社サービスのマーケティング担当エンジニアとして、メールマガジンの配信データを分析することになりました。
過去のデータから、このメールマガジンがユーザーに開封される確率は であることがわかっています。
今回、このメールマガジンをランダムに選んだ 人のユーザーに配信します。このとき、以下の問いに答えてください。
問1
100人に配信したとき、平均して何人がメールを開封すると期待できるでしょうか。
問2
このときの分布の「分散」を求めてください。
問3
問2で求めた分散を算出するために使った公式は、次のうちどれですか。( : 試行回数
: 成功確率
: 失敗確率)
解答と解説
みなさん、答えは出ましたか。電卓を使っても構いませんよ。それでは、一つずつ丁寧に解説していきます。
まずは、問題文からわかっている数字を整理しましょう。
試行回数(メールを送る人数)
成功確率(開封される確率) (20%を小数に直しました)
これさえ整理できれば、あとは公式に当てはめるだけです。
問1の解説:平均(期待値)を求める
正解は 人 です。
二項分布の平均(期待値)を求める式は、とてもシンプルでしたね。試行回数と確率を掛けるだけです。
平均
これに数字を当てはめると、次のようになります。
つまり、100人に送れば、だいたい20人くらいは開いてくれるだろう、と予測できるわけです。これは直感的にもわかりやすいですよね。
問2の解説:分散を求める
正解は です。
ここは少し計算が必要です。まず、開封されない確率(失敗確率)である を求めておきましょう。確率は全体で
になるので、そこから成功確率を引けば求められます。
つまり、80%の人はメールを開かないということですね。
さて、分散を求める準備が整いました。ここで使うのは、試行回数、成功確率、失敗確率の3つをすべて掛け合わせる計算です。
分散
数字を当てはめて計算してみましょう。
先ほど は
だと計算しましたので、
となります。
この「16」という数字が、データのばらつき具合を表しています。もしこの数字がもっと大きければ、開封数が平均の20人から大きくブレる可能性がある、と解釈できます。
問3の解説:公式の確認
正解は 1. です。
これは問2の計算で実際に使いましたね。
(正解:二項分布の分散を表す式です)
(これは今回の文脈では使いません)
(確率の差を表しているだけです)
(これは1回の試行における分散を表しますが、今回は
回繰り返しているので不適切です)
前回の記事で紹介した通り、この という形は、データのばらつきを知るための基本の「き」です。ぜひ覚えておいてください。
エンジニアが学ぶメリットと注意点
ベルヌーイ分布や二項分布を学ぶことには、エンジニアにとって大きなメリットがあります。
まず、A/Bテストの結果を正しく解釈できるようになります。新しいデザインAと従来のデザインB、どちらがユーザーに好まれているかを判断するとき、その背後にはこの確率分布の考え方があります。統計的な有意差があるかどうかを判断できるようになれば、説得力のある提案ができるようになるでしょう。
また、システム障害の予測や、サーバーの負荷分散など、確率的な事象をモデル化する際の基礎体力となります。
一方で、デメリットというか注意点もあります。
それは、現実の世界は単純な「独立した試行」ばかりではないということです。たとえば、あるユーザーが広告をクリックしたという事実は、その次のユーザーの行動に影響を与えるかもしれません(SNSでの拡散など)。ベルヌーイ分布は「それぞれの試行が互いに影響しない(独立している)」ことを前提としています。
この前提を忘れて無理やり数式に当てはめると、現実とはかけ離れた予測をしてしまう危険性があります。モデルの限界を知っておくことも、優秀なエンジニアの条件です。
次のステップへ
いかがでしたか。
0と1の単純な世界から始まって、平均や分散といった統計の入り口まで到達しました。数式 が、単なる記号の羅列ではなく、データの「散らばり」を表す意味のある言葉に見えてきたなら大成功です。
ここから先は、より複雑な事象を扱う「ポアソン分布」や、統計学の王様とも言える「正規分布」へと学習を進めていくのが良いでしょう。特に正規分布は、試行回数 を大きくしていったときに二項分布が近づいていく姿でもあります。
まずは身近なコイン投げや、業務でのクリック率などを題材に、確率の考え方に慣れ親しんでいってくださいね。
応援しています。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。