前回までの「AIのしくみ入門」シリーズでは、ニューラルネットワークやCNNの仕組みを扱ってきましたが、今回からは新しいシリーズとして、大学の「データサイエンス入門」講義資料をもとに、データサイエンスの土台になっている数学的な考え方を整理していきます。第1回のテーマは「確率」です。AIやデータ分析のあらゆる場面で顔を出す考え方なので、少し時間をかけてでもしっかり押さえておきたい分野です。数式もそれなりに出てきますが、一つひとつ丁寧に追っていきます。
・そもそも「確率変数」とは何か
サイコロを振ったときに出る目や、ストップウォッチで測った反応時間のように、「実際にやってみるまで値が決まらないが、どんな値が出やすいかには一定の規則がある」量のことを、確率論では「確率変数」と呼びます。
確率変数には大きく2つの種類があります。
離散的な確率変数は、飛び飛びの値しか取らない確率変数です。サイコロの目(1〜6の整数)や、コインを10回投げたときの表の出た回数などがこれにあたります。
連続的な確率変数は、ある範囲の中の任意の値を(理論上は無限に細かく)取りうる確率変数です。ストップウォッチで測った時間や、身長・体重といった量がこれにあたります。
この「離散か連続か」という区別は、この後に出てくる確率分布の性質を考えるうえで、地味に効いてくる大事なポイントです。
・確率分布とその性質
確率変数がどの値をどれくらいの確率で取るかをまとめたものが「確率分布」です。サイコロの目Xのように、離散的な確率変数の場合、それぞれの目が出る確率は1/6ずつで、横軸に目の数、縦軸に確率を取ったグラフを描くと、6本の同じ高さの棒(正確には線)が並ぶ形になります。
離散的な確率分布 f(x) には、次の性質があります。
(1) f(xᵢ) ≥ 0 (i = 1, 2, ..., n) ―― どの値についても、確率がマイナスになることはない
(2) f(x₁) + f(x₂) + ... + f(xₙ) = 1 ―― すべての値についての確率を足すと必ず1になる
(3) P(a < X ≤ b) = f(xₐ₊₁) + f(xₐ₊₂) + ... + f(xᵦ) ―― ある範囲に入る確率は、その範囲に含まれる値の確率を足せばよい
一方、連続的な確率変数の場合は少し事情が違います。連続的な確率変数Xがある「1点」を取る確率、たとえばストップウォッチの値がぴったり10.000...秒になる確率は、理論上は0になってしまいます(無限に細かい値の中の1点だけを狙い撃ちする確率、とイメージすると納得しやすいかもしれません)。そこで連続的な確率変数を扱うときは、常に「a < X ≤ b」のような「範囲」で確率を考えることにします。
連続的な確率分布の性質は次の通りです。
(1) f(x) ≥ 0 ―― 確率密度関数(連続分布での確率分布のこと)は常に0以上
(2) P(X = c) = 0 ―― 1点だけを取る確率は0
(3) P(a < X ≤ b) = P(a ≤ X ≤ b) = P(a ≤ X < b) = P(a < X < b) ―― 端点を含むか含まないかで確率は変わらない
(3)がやや不思議に見えるかもしれませんが、これは(2)の「1点の確率は0」という性質があるおかげです。端点1点を含めても含めなくても、その1点自体の確率が0なので、範囲全体の確率には影響しないというわけです。
・平均・分散・標準偏差
確率分布の「代表値」としてもっともよく使われるのが、平均(期待値)と分散です。
離散的な確率分布の場合、Xの平均(期待値)は次のように定義されます。
E[X] = μ = x₁f(x₁) + x₂f(x₂) + ... + xₙf(xₙ)
つまり、「それぞれの値に、その値が出る確率を掛けて、全部足し合わせたもの」です。サイコロの目で計算してみると、
E[X] = 1×(1/6) + 2×(1/6) + 3×(1/6) + 4×(1/6) + 5×(1/6) + 6×(1/6) = 21/6 = 3.5
となり、サイコロの目の平均は3.5(実際にはどの目も出ないのに平均は3.5、というのが確率変数の平均のおもしろいところです)。
分散は、平均からどれくらいバラついているかを表す指標で、
V[X] = σ² = (x₁ − μ)²f(x₁) + ... + (xₙ − μ)²f(xₙ)
と定義されます。それぞれの値と平均との差(ズレ)を2乗してから確率で重み付けして足し合わせたものです。サイコロの場合、V[X] = 35/12 ≈ 2.92 になります。
そして分散の平方根を取ったものが標準偏差です。
SD[X] = σ = √V[X]
連続的な確率分布の場合も考え方は同じで、和(Σ)が積分(∫)に置き換わるだけです。
E[X] = μ = ∫ x f(x) dx
V[X] = σ² = ∫ (x − μ)² f(x) dx
「分散は何を表しているのか」というと、データや分布の「散らばり具合(バラつきの程度)」です。たとえば期末試験の得点分布を科目ごとに比べたとき、山がなだらかに広がっている科目ほど分散が大きく、山が尖って集中している科目ほど分散が小さい、ということになります。
・偏差値のからくり
日本の受験でおなじみの「偏差値」も、実はこの平均と標準偏差を使って計算されています。偏差値は次の式で定義されます。
偏差値 = 50 + 10 × (x − μ) / σ
平均点を取った人の偏差値がちょうど50になり、平均より標準偏差1つ分(1σ)高い点を取ると偏差値は60、逆に1σ分低いと偏差値は40になる、という仕組みです。
ここで威力を発揮するのが、正規分布(次の章で説明します)の性質です。多くのテストの得点分布は正規分布に近い形をしていることが知られており、正規分布には「平均から±1σの範囲に全体の約68%が収まる」「±2σの範囲に全体の約95%が収まる」というよく知られた性質(経験則)があります。つまり偏差値60というのは「上位から数えておよそ16%(100%の残り32%の半分)以内」に位置する、という具合に、偏差値の数字から大まかな順位のイメージがつかめるようになっているわけです。
・一様分布と正規分布
確率分布の中でも特によく登場する2つの分布を紹介します。
一様分布は、「どの値も同じ確率で出る」という、もっともシンプルな分布です。離散一様分布の場合、
f(x) = 1/n (x = x₁, x₂, ..., xₙ のとき)、それ以外は0
という形になり、サイコロの目の分布(6つの目がすべて1/6ずつ)がまさにこれにあたります。連続一様分布の場合は、
f(x) = 1/(b − a) (a ≤ x ≤ b のとき)、それ以外は0
となり、ある範囲の中のどの値も等しい確率密度を持つ、という分布になります。
正規分布は、平均μを中心に左右対称な、おなじみの釣鐘型(ベルカーブ)の分布です。連続的な確率変数Xが、ある特定の形をした確率密度関数を持つとき、Xは平均μ、分散σ²の正規分布 N(μ, σ²) に従うといいます。身長・体重・テストの得点など、自然界や社会に現れる多くの量が、この正規分布に近い形の分布をすることが経験的に知られています。ちょうど前の章で説明した偏差値の計算も、この正規分布の性質を前提にしたものです。
・同時確率と「和の法則」「積の法則」
ここからは、2つ以上の確率変数を同時に扱う場合の考え方に入ります。
2つの離散的な確率変数X, Yを考えるとき、「Xがある値であり、かつYがある値である」確率のことを「同時確率」と呼びます。たとえば、2つのサイコロを同時に振ったとき、片方が3、もう片方が5になる確率は、それぞれの目の出方が独立(後述)であれば 1/6 × 1/6 = 1/36 となり、6×6=36通りの組み合わせすべてが同じ1/36の確率で起こります。
この同時確率の表から、Xだけの確率分布(Yの値を無視して、Xの値ごとに確率を全部足し合わせたもの)を求める操作を「周辺化(marginalization)」と呼び、これが確率の「和の法則」にあたります。
p(X) = Σ_Y p(X, Y) (Yが離散の場合)
p(X) = ∫ p(X, Y) dY (Yが連続の場合)
たとえば、あるXとYの同時確率の表があったとき、X=1の行の確率をすべて横に足し合わせれば、それがそのままP(X=1)になる、という具合です。
もう一つの基本法則が「積の法則」です。
p(X, Y) = p(X|Y) p(Y)
ここで p(X|Y) は「条件付き確率」と呼ばれるもので、「事象Yが起こった(起こる)という条件のもとで、事象Xが起こる確率」のことです。式を整理すると、
p(X|Y) = p(X, Y) / p(Y)
となり、これが条件付き確率の定義そのものになります。「YとXが同時に起こる確率を、Yが起こる確率で割ったもの」というのが直感的な意味です。
・「独立」ということ
XとYが「独立」であるとは、一方の値を知っても、もう一方の確率分布がまったく変わらないことを意味します。これは数式で書くと、
P(X, Y) = P(X) P(Y)
という関係が成り立つことと同じです(同時確率が、それぞれの確率の単純な掛け算になる)。2つのサイコロをそれぞれ振ったときの目は、独立な確率変数の典型例です。一方のサイコロが何の目を出そうと、もう一方のサイコロの出目の確率には一切影響しません。
逆に、独立でない確率変数の例としては、ある人の「身長」と「体重」が挙げられます。身長が高いという情報を知ると、体重の確率分布(高めの値が出やすくなる)が変わってくるので、これらは独立ではありません。
ここで一つ、統計を学ぶうえで陥りやすい誤解に触れておきます。「無相関(相関係数が0)であること」と「独立であること」は、実はイコールではありません。独立であれば必ず無相関になりますが、逆は必ずしも成り立たないのです。
たとえば、XY平面上に、原点を中心としたひし形(正方形を45度回転させたような形)に沿って点が並ぶようなデータを考えます。この場合、対称性のために相関係数を計算すると0になり、「無相関」と判定されます。しかし、X=3という情報を知ると、Yが取りうる値の範囲はかなり絞り込まれてしまいます(実際、P(X=3, Y=3)=0のように、特定の組み合わせは全く起こらなかったりします)。つまりXとYの間には明らかに関係があるのに、その関係が「直線的」ではないために、相関係数という直線的な関係だけを捉える指標では見つけられない、というわけです。「相関がない」という言葉を聞いたときは、「本当に無関係」なのか「直線的な関係がないだけ」なのかを区別して考える必要があります。
モンティ・ホール問題 ― 直感が裏切られる確率パズル
確率の話でしばしば引き合いに出される、有名なパズルを紹介します。1990年に大きな話題になった「モンティ・ホール問題」です。
あなたの前に3つのドアがあります。
1つのドアの向こうには賞金があり、残り2つのドアの向こうには何もありません。
あなたがドアを1つ選んだあと、司会者は、あなたが選ばなかったドアのうち、はずれである1つを開けて見せてくれます。そして、選んだドアを変えたいか尋ねます。
さて、ドアを変えるべきでしょうか?
直感的には「残り2つのドアになったのだから、確率は五分五分では?」と思ってしまいがちですが、正解は「ドアを変えたほうが得(当たる確率が2倍になる)」です。
最初にドアを選んだ時点で、それが当たりである確率は1/3、外れである確率は2/3です。ここで重要なのは、司会者は「当たりを知ったうえで、必ずはずれのドアを開ける」という点です。もし最初に選んだドアが外れだった場合(確率2/3)、残る1つの未開封のドアが必ず当たりになります。逆に最初に選んだドアが当たりだった場合(確率1/3)だけ、ドアを変えると外れてしまいます。つまり「ドアを変える」という戦略を取ると、最初に外れを引いていた2/3の確率でそのまま当たりを引き当てられる、という理屈です。
直感的に納得しづらい場合のヒントとして、講義資料では「もしドアが100枚あって、司会者が98枚のドアを開けてくれるなら、ドアを変えたくなりませんか?」という例え話が紹介されていました。100枚のうち最初に選んだ1枚が当たっている確率はわずか1/100。司会者が残り99枚のうち98枚(すべて外れ)を開けてくれた後に残る1枚は、当たっている確率が99/100にまで跳ね上がっている、と考えると直感的にも納得しやすくなります。
・シンプソンのパラドックス ― 全体と部分で結論が逆転する
次に紹介するのは「シンプソンのパラドックス」と呼ばれる現象です。次のような架空の新薬の臨床試験データを考えます。
この表をよく見ると、女性だけで見ても、男性だけで見ても、旧薬Bのほうが有効率が高いのに、男女を合わせた「合計」で見ると、なぜか新薬Aのほうが有効率が高くなってしまっています。
これは計算ミスではなく、「新薬Aを投与されたグループは女性の割合が多く(女性はもともと薬の効きが良い)、旧薬Bを投与されたグループは男性の割合が多かった(男性はもともと薬の効きが悪い)」という、グループごとの人数比の偏りが原因で起こる現象です。部分(男女別)で見た傾向と、全体(合計)で見た傾向が逆転してしまうことがある、というのがこのパラドックスの怖いところです。データを集計する際には、「合計だけを見て結論を出す」ことの危うさを教えてくれる、実務上もとても重要な教訓です。
・平均への回帰 ― 「幸運」は長続きしない
もう一つ、統計学的に有名な現象として「平均への回帰」を紹介します。これは、「1回めの測定値が、その集団の中で高め、あるいは低めの人たちだけを選び出して2回めの測定を行った場合、2回めの測定値は、1回めの測定値よりも、集団全体の平均値に近い値をとりやすい」という統計学的現象です。ちなみにこの「回帰」という言葉が、後の章で紹介する「回帰分析」の語源になったといわれていますが、両者は概念としては別物です。
たとえば、遺伝学者フランシス・ゴルトンの研究では、「背が非常に高い人の子供は、背が高い傾向はあるものの、親ほどの高さにはならない」ことが観察されました。もう一つの例として、中間試験で特別に高得点だった生徒たちに注目して期末試験の結果を追跡すると、(もちろん期末試験でも高得点な生徒が多いでしょうが)一般に、中間試験のときほどには飛び抜けておらず、集団の平均に近い結果になりやすい、ということが知られています。これは、中間試験の高得点には実力に加えて「たまたま調子が良かった」という偶然の要素が乗っていることが多く、その「幸運」が期末試験では必ずしも再現されないためだと説明されています。
「一度すごい結果が出た」ものが、次はやや平凡な結果に戻ることを、実力の低下だと早合点してしまうのは、この平均への回帰を見誤った典型的な失敗パターンです。スポーツ選手の「2年目のジンクス」なども、この現象が関係していると言われることがあります。
・ベイズの定理 ― 「検査で陽性」は思ったより信用できない
積の法則から導かれる、確率論の中でも特に応用範囲の広い定理が「ベイズの定理」です。
積の法則より、P(A, B₁) = P(A|B₁)P(B₁) が成り立つので、これを条件付き確率の定義に当てはめると、
P(B₁|A) = P(A|B₁)P(B₁) / P(A)
という形が得られます。ここで分母のP(A)は、和の法則と積の法則を組み合わせて、
P(A) = Σᵢ P(A, Bᵢ) = Σᵢ P(A|Bᵢ)P(Bᵢ)
と展開できます。これがベイズの定理です。「Bが起きたという事前の情報(事前確率)」に、「Aという新しい観測結果」を加味することで、「Aが観測されたという条件のもとでのBの確率(事後確率)」を計算できる、というのがこの定理の意味です。
具体例で確認してみましょう。ある難病「V病」は1/3000の割合で発症するとします。この病気に対する第一次血液検査の信頼率(正しく判定される確率、つまり感度も特異度も同じ値とします)は97%です。Aさんがこの検査を受けた結果、「V病である」と判定されました。Aさんが本当にV病にかかっている確率はどれくらいでしょうか?
B₁を「V病である」、B₂を「V病でない」、Aを「検査でV病と判定された」とすると、
P(B₁|A) = P(A|B₁)P(B₁) / [P(A|B₁)P(B₁) + P(A|B₂)P(B₂)]
= [0.97 × (1/3000)] / [0.97 × (1/3000) + (1 − 0.97) × (2999/3000)]
= 0.97 / (0.97 + 0.03 × 2999)
= 0.97 / (0.97 + 89.97)
= 0.97 / 90.94
≈ 0.0107(約1.1%)
97%も信頼できる検査で「陽性」と判定されたにもかかわらず、実際にV病にかかっている確率はわずか約1.1%しかない、という直感に反する結果になります。これは、V病そのものがそもそも非常に稀な病気(3000人に1人)であるため、「検査の誤判定によってたまたま陽性になった健康な人の数」が、「本当に病気で正しく陽性と判定された人の数」を大きく上回ってしまうからです。「検査の精度が高い」ということと、「検査結果を鵜呑みにしてよい」ということは、まったく別の話だという、医療統計における非常に重要な教訓です。
感度・特異度・正確度・適合率
先ほどの例に出てきた「検査の信頼率」という言葉を、もう少し厳密に整理しておきます。検査結果には次の4パターンがあります。
真陽性(TP):病気であり、検査でも陽性と判定された
偽陰性(FN):病気であるのに、検査では陰性と判定された(見逃し)
真陰性(TN):病気でなく、検査でも陰性と判定された
偽陽性(FP):病気でないのに、検査では陽性と判定された(誤検知)
これらを使って、検査の性能を表す指標がいくつか定義されます。
感度(sensitivity, 再現率)= TP / (TP + FN) ―― 本当に病気の人のうち、正しく陽性と判定できた割合。「病気を見逃さない率」
特異度(specificity)= TN / (TN + FP) ―― 本当に病気でない人のうち、正しく陰性と判定できた割合
先ほどの例で「検査の信頼率97%」と言っていたのは、実はこの感度と特異度がどちらも97%である、という意味でした。感度・特異度は、検査対象の集団(母集団)がどんな集団であっても変わらない、検査そのものが持つ固有の性能を表す指標です。
これに対して、次の2つの指標は、検査対象の母集団(病気の人がどれくらいの割合いるか)によって値が変わってきます。
正確度(accuracy)= (TP + TN) / (TP + FN + TN + FP) ―― 検査結果全体のうち、正しく判定できた割合
適合率(precision, 陽性的中率)= TP / (TP + FP) ―― 検査で陽性と判定された人のうち、本当に病気だった人の割合。これはベイズの定理でいう「事後確率」そのものであり、先ほど計算した「約1.1%」はまさにこの適合率にあたります。
適合率が母集団に依存するというのは、まさに先ほどのV病の例が示す通りです。病気の人がもともと少ない(事前確率が低い)集団では、検査で陽性が出ても、それが本当に病気である確率(適合率)は低くなりがちなのです。
ROC曲線とAUC ― 検査の「性能」をグラフで見る
感度と特異度は、検査で「陽性・陰性を判定するライン(カットオフ値)」をどこに引くかによってトレードオフの関係になります。カットオフラインを緩めれば感度は上がりますが誤検知(偽陽性)も増え、特異度は下がります。逆にラインを厳しくすれば特異度は上がりますが、見逃し(偽陰性)も増えて感度が下がります。
このトレードオフの関係を、カットオフ値をずらしながらグラフにしたものが「ROC曲線(Receiver Operating Characteristic:受信者操作特性)」です。横軸に「偽陽性率(1−特異度)」、縦軸に「感度」を取り、カットオフ値を変化させたときの軌跡を描きます。
理想的な検査(病気の人とそうでない人の検査値の分布がまったく重ならない)では、ROC曲線は左上の角(偽陽性率0、感度1)に張り付くような形になり、このとき「曲線の下の面積(AUC: Area Under the Curve)」は1になります。逆に、病気の人とそうでない人の検査値の分布がほとんど重なっている(検査にほとんど判別能力がない)場合、ROC曲線は対角線に近くなり、AUCは0.5に近づきます。前立腺がんの検査で例えるなら、PSA検査のように分布がある程度重なっている場合はAUCが0.5〜1の間の値になり、AUCの値そのものが「その検査がどれくらい病気を判別する力を持っているか」を表す指標として使われます。
実際にカットオフ値を決める際には、ROC曲線上で「左上隅にもっとも近い点を選ぶ」方法や、「Youden Index(感度+特異度−1の値がもっとも大きくなる点を選ぶ)」といった方法が使われます。
まとめ:確率の考え方は、データサイエンスの土台
今回は、確率変数の基本的な定義から、平均・分散、一様分布・正規分布、同時確率と独立性、モンティ・ホール問題やシンプソンのパラドックスといった直感が裏切られやすいトピック、そしてベイズの定理や医療統計でおなじみの感度・特異度・ROC曲線まで、駆け足で見てきました。
「確率変数」「確率分布」「独立性」といった基本概念は地味に見えるかもしれませんが、これらはこの後のデータ分析やAIの手法すべての土台になっています。特に、モンティ・ホール問題やシンプソンのパラドックス、ベイズの定理の例のように、「直感」と「計算結果」がしばしば食い違うというのは、確率を学ぶうえでとても大事な気づきだと感じます。人間の直感はしばしば頼りにならないからこそ、きちんと数式で確認する習慣が大切なのだと、あらためて実感させられました。
次回は、こうして得られたデータを「見る」技術として、グラフによるデータの可視化の方法と、集めたデータから何かを判断する「仮説検定」の考え方について紹介していきます。
追記
いつもブログをご覧いただきありがとうございます。おかげさまで、閲覧回数が約400回に達しました。9/8のTOEICの勉強にむけて、夏休み期間の投稿頻度は落ちてしまうかもしれませんが、週に1回は投稿をしていくよう努めていこうと思います。