統計学や機械学習で使われるさまざまな確率分布のうち、連続分布の例として正規分布とベータ分布について見ていく。また、最近主流になりつつあるベイズ統計の関係についても簡単に紹介する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
前回は、「確率の分布とはどのようなものか」について説明し、離散分布の例としてベルヌーイ分布と二項分布を学びました。今回は、連続分布の例として正規分布とベータ分布を紹介します。併せて、ごく簡単にではありますが、事前分布や事後分布など、ベイズ統計に関する話題についても触れます。具体的には、前回と次回で以下のようなトピックを扱っています。
前回の内容を読んでいない場合は、先に一読することをお勧めします。セットでまとめて読みやすいように、今回は各節や図、脚注などの番号は、前回の番号からの続きとなっています。
正規分布とは、以下のような式で表される分布です(ガウス分布とも呼ばれます)。正規分布は身長の分布や誤差の分布など、平均値のところが山の「頂上」で、左右対象に「裾野」が広がっている分布です(後で示すグラフを見れば一目瞭然です)。
べき乗の部分が小さく、見づらいので、enをexp(n)のように表して、以下のように書くこともあります。
この式の中のμは平均、σは標準偏差を表します。μは「ミュー」と読み、σは「シグマ」と読みます。これはギリシア文字Σの小文字です。また、πは円周率(3.141592...)で、eは自然対数の底と呼ばれる値(2.718281...)です。πやeは定数なので、正規分布の母数はμとσであることが分かります。
なお、μ=0,σ=1である正規分布を標準正規分布と呼びます。
正規分布を表す式はかなり複雑ですね。取りあえず、どういった式かを確認しておきましよう。例によって指さし確認をしながら意味を確認していくといいでしょう。また、動画の解説も用意してあるので、式の意味を丁寧に追いかけたい方はぜひ視聴してください。
この式では、標準偏差を表すσという文字が新しく登場しました。標準偏差とは、分布のばらつきを表す値です(後で掲載するグラフを見れば一目瞭然です)。分布のばらつきを表す値としては分散も使われますが、一般に、標準偏差=√分散となっているので、分散はσ2と表されます*4。
正規分布の式は一見複雑ですが、ざっくりと捉えると意味が分かりやすくなります。要するに定数のべき乗の形になっています。そこで、定数は気にせず、べき乗の部分に注目しましょう。
穴埋めでイメージを確認してみましょう。オレンジ色の部分をタップまたはクリックすると答えが表示されます(最初の2つは数字が入り、後ろの4つは「大きく」または「小さく」のいずれかが入ります)。
というわけで、図8のアミカケの部分を見ると、xの値が平均値μに等しいと、x−μ= 0 なので、eのべき乗の部分が 0 になります。一方、xの値が平均値μから離れるほど、x−μの絶対値が 大きく なり、eのべき乗の部分が0よりも 小さく なることが分かります(絶対値は大きくなりますが、マイナスが付いているので)。ということは、xの値が平均値に近ければこの関数の値が 大きく 、平均値から離れるほど関数の値が 小さく なることが分かります。
では、実際そうなっているかどうか、正規分布のグラフを見てみましょう(図9)。ここでは、「平均μ=0、標準偏差σ=1.5」と、「平均μ=0、標準偏差σ=3」の正規分布を考えてみます。
確かに、平均値が山の「頂上」になっており、左右対称に「裾野」が広がっていることが分かりますね。また、標準偏差が大きいと「裾野」の方にも値が散らばっている(ばらつきが大きい)ことが分かります。確率変数を意味する横軸の目盛り(……、0、1、2、……)は飛び飛びになっていますが、確率変数の値は連続した値になってつながっていることにも注意してください。例えば、横軸の0と1の間はいくらでも細かく分けられます。つまり、「すき間」なく値が存在するということです。身長などもそういった値ですね。測定機器に精度の限界があるので、170.0cm、170.1cm……という飛び飛びの値が得られますが、精度が限りなく上げられるなら、170cmと171cmの間はいくらでも細かく分けられます。
「連続」の定義を数学的に表現すると話が難しくなるのでこれ以上は触れませんが、二項分布(前回の図6を参照)のような棒グラフと図9のスムーズなグラフの違いからも直感的に理解できると思います。このように確率変数の値が連続した値になっている分布を連続分布と呼びます。
正規分布に限らず、連続分布には扱いに気をつけないといけない点が幾つかあります。具体例で見てみましょう。ちょっと値を変えて、平均μが60、標準偏差σが10の正規分布を考えてみます。
このグラフを描くと以下のようになります。グラフの横軸(確率変数の値)は20〜100までしか表示していませんが、正規分布の確率変数は-∞〜∞の値を取ることに注意してください(従って、試験の成績のように0〜100の値を取るような分布は、厳密には正規分布に従っているとはいえません)。
x=68のとき、f(x)の値は0.029になります。この値は、【目標】のところに示した式に値を代入すれば求められますが、さすがに手計算は面倒ですね。Excelで「=NORM.DIST(68,60,10,FALSE)」と入力すれば簡単に求められます。また、Pythonなら、
from scipy import stats
stats.norm.pdf(x=68,loc=60,scale=10)
# 出力例: 0.028969155276148274
で求められます(pdfは確率密度関数を意味する「probability density function」の略です)。
ここでは、ExcelやPythonの詳細については説明しませんが、手計算での練習問題がこの後は出てこないので、ExcelやPythonが使える環境にある方は、練習問題代わりに上の例を試してみてください(空のGoogle Colaboratoryノートブックを使えば無料かつWeb上でPythonコードを実行して試すことができます)。
さて、上で述べましたが、x=68のとき、f(x)の値は0.029になりました。前掲した図10のグラフを見てみると、xが68であるときの正規分布の確率が0.029であるように思われるかもしれません。しかし、この0.029という値は、確率変数がちょうど68である確率ではないということに注意してください。この値は確率そのものではなく、確率密度と呼ばれる値で、いわばその確率変数が現れるもっともらしさを表しています(実際、統計学では「尤度」として扱われます)。そういうわけで、目標のところに掲載した正規分布の式(関数)は確率密度関数と呼ばれます*5。
*5 ベイズ統計では、離散分布の場合と同様(前回の「コラム 尤度について」を参照)、確率密度関数の値が尤度として扱われるので、θを母数とし、確率変数をxとすると、尤度は、
で表されます。ちなみに、最頻値(確率密度関数の山の最も高い位置)は、母数としていちばん「それらしい値」であると考えられます。このように、尤度の最も高い値を母数の推定値とすることを最尤推定法と言います。正規分布の場合、平均値が最尤推定値となります(ただし、ベイズ統計では最尤推定法は使いません)。
連続分布での確率を求めるには、確率変数が何らかの値から何らかの値までを取る場合を考えます。例えば、xが68までである確率は、図11に示すオレンジ色部分の面積にあたります。
面積を求めるには積分という計算を行います。高校の数学で微分の次に登場する単元ですが、今のところ計算方法を詳しく知らなくても問題ありません。が、書き方と意味だけは確認しておきましょう。例えば、正規分布の確率密度関数f(x)をx=−∞〜aまでを積分することを、以下のように表します。
∫は「インテグラル」と読みます。これは合計(Sum)を表す「S」を縦に引き伸ばしたような形になっています。上の式の右辺なら「インテグラル、マイナス無限大からaまでのエフエックス、ディーエックス」のような読み方になります。ここでは、関数を積分するとx軸とグラフで囲まれた部分(図12のオレンジ色の部分)の面積が求められ、それが確率になっているということだけ理解しておいてください。
確率密度関数を積分すると、その上限(上の例ではa)までの累積確率P(x≤ a)が求められます。では、x=68までを積分して面積(=確率)を求めてみましょう。以下のように、f(x)のところに正規分布の確率密度関数を書いてチョチョイと積分すればいいですね……などと言うのは簡単ですが、手計算でやるのは現実的ではありません(そもそも積分の計算方法を本連載ではまだ説明していませんし、高校数学の知識では正規分布の確率密度関数を積分するのは無理なので)。
というわけで、ここはパソコンを使いましょう。Excelなら「NORM.DIST(68,60,10,TRUE)」と入力すれば求められます。この関数はすでに紹介しましたが、最後の引数が「FALSE」なら確率密度を求め、「TRUE」なら累積確率を求めることになります。Pythonなら、
from scipy import stats
stats.norm.cdf(x=68,loc=60,scale=10)
# 出力例: 0.7881446014166034
で求められます(cdfは後述する累積分布関数を意味する「cumulative distribution function」の略です)。結果は、0.788になるはずです。つまり、x=-∞からx=68までの確率は0.788であるというわけです。
ところで、確率密度関数を積分した式も、やはり関数になっていることに気付くと思います。前掲の図12ではFx(a)と表しました。このような累積確率の関数を累積分布関数と呼びます。
正規分布の累積確率関数のグラフは図13のようになります。これは、x=aまでの累積確率(面積)の値をグラフにしたものです。x=68に対するグラフの値が0.788になっていることが確認できますね。
統計学で正規分布がよく使われる背景には中心極限定理と呼ばれる定理があります。これは、元の分布がどのような分布であっても、そこからサンプルを取り出して合計を求めることを何度も繰り返すと、それらの合計の分布が正規分布に近づくという定理です。もとの分布の平均をμ、分散をσ2とすると、合計の分布は平均がnμ、分散がnσ2の正規分布に近づきます。
以下の例は、簡単なシミュレーションで試してみた結果です。プログラムの詳細については省略しますが、0から2の範囲の一様分布(μ=1,σ2=4/12)から12個のサンプルを取り出して合計したものを1000個作り、その平均と分散を求めたものです。併せてヒストグラムも描いてあります。
得られた結果の平均値は12.00となり、12(nμ)に近い値になっていることが分かります。また、分散も4.01となり、4(nσ2)に近い値になっていることが分かります(これらの数値は実行のたびに変わりますので、読者が実行しても全く同じ数値とはなりません)。ヒストグラムも正規分布に近い形になっていますね。
連続分布の例として、ベイズ統計でよく使われるベータ分布についても紹介しておきましょう。ベータ分布の確率密度関数は、以下のような式で表されます。
Copyright© Digital Advantage Corp. All Rights Reserved.