こんにちは、えびかずきです。
今回は正規分布の導出について詳しく解説していきます!
こんな人におすすめ:
・正規分布の妥当性を数学的にしっかり理解したい
・正規分布の導出が教科書に載ってないので教えて欲しい
統計をかじったことがある人ならわかってもらえると思いますが、正規分布の導出って意外と教科書に載ってないですよね。
でもどうやって正規分布が導かれたんだろう、天下り的で気持ちが悪い、と感じている人は少なくないはず。
ということでここでは正規分布の導出をしっかりと解説していきます。
実際のところ、正規分布を導出するだけならネット上に記事が溢れている訳ですが、その本質や導出の意図についてきちんと解説した記事はあまり多くありません。
そこでこの記事では、ただ導出するだけではなくてきちんと解説を添えて初学者でも理解できるように心がけて書きました。
正規分布の導出方法はいくつかありますが、
今回はガウスの公理を前提として最尤法を使う王道的な方法を解説します。
正規分布の式
正規分布は以下に示す関数の形をしていて、あらゆる場面で現れる(もしくは説明なしに仮定される)自然な分布です。
\(f(x) = \displaystyle\frac{1}{\sqrt{2\pi \sigma^2}} \exp \left(-\frac{(x – \mu)^2}
{2\sigma^2} \right) \)
ガウス分布とも呼ばれますね。
さらに\(\mu=0,\sigma=1\)とした標準正規分布関数は、
\(f(x) = \displaystyle\frac{1}{\sqrt{2\pi}} \exp{\left(-\frac{x^2}{2}\right)}\)
と表されます。
標準正規分布をグラフ化すると、下のようになります。
ガウスの公理
正規分布を導く前に、ガウスの公理という大事な前提条件について説明しておく必要があります。
公理というのは証明を必要としない決め事のことです。
かの大数学者ガウスは正規分布として採用すべき自然な分布について、経験的に以下の公理が成り立っているものとしました。
つまり正規分布はこれらの公理を満たす分布であるということを大前提とする、
ということです。
内容としては感覚的にも正しく素直に認められるものばかりです。
ガウスの公理:
http://www.eng.niigata-u.ac.jp/~nomoto/7.html
1.大きさの等しい正と負の誤差は等しい確率で生じる。
2.小さい誤差は大きな誤差より起こりやすい。
3.ある限界値より大きな誤差は実際上起こらない。
導出に入る前に
導出のポイント
今回はガウスの公理を前提として最尤法を使う王道的な方法を解説しますが、
導出のポイントは、正規分布の関数形をどうやって定めるかです。
正規分布は一見複雑な形をしていますが、
結局のところは正規分布として指数関数を使うことが妥当であるという、極めて単純なことを導出できさえすれば、あとは規格化して係数を定めて終了なのです。
ここで決して誤解してほしくない事は、正規分布はガウスの公理から一意に導けるわけではないという事。
ここでやりたいことは、あくまでもガウスの公理に矛盾しない妥当な関数を見つけたいということなのです。
そこで導出のために使う前提条件としては、ある条件が必要になります。
それが最尤法を使う条件です。
最尤法とは、尤(もっと)もらしい前提を仮定して方程式を解く問題解決法です。
最尤法で仮定する条件
最尤法で仮定する条件は以下のとおりです。
初見だと言葉だけでは理解しにくいかもしれませんが、導出の数式と一緒に眺めると理解が進みやすいでしょう。
仮定する条件①:
自然な誤差を含むある実験を試行した時の結果として\(x_1,x_2,x_3・・・x_n\)と\(n\)回のデータが得られている時に、これらが全て同時に起こる確率を真値\(X\)を変数とした関数で表すと、\(X\)が実際に得られたデータの平均値\(\overline x\)と等しい時に最大となるということを仮定します。
仮定する条件②:
この実験の真値\(X\)と実験データの平均値\(\overline x\)が等しい
これらは一見自明なようで自明ではありません。
しかしながら仮定すべき前提として尤もらしい(言い換えると大いにありえるということ)とは言えます。
この条件①②をつなぎ合わせることで、正規分布は指数関数が妥当であるということが導けます。
あとは規格化して定数項を定めることで導出完了です。
正規分布の妥当性に関して
この流れには割と無理矢理感があるようにも思いますが、理屈を付けて説明しようとするとこうなったということでしょう。
一方で、正規分布の導出は補足に示す通りこれ以外にも方法があります。
つまり色々な側面から実用的、理論的、そして歴史的な検証を経た結果、指数関数の形をした分布が妥当であると認められているというわけです。
少なくとも私はそう理解しています。
さて導出の流れは理解できましたでしょうか?
抽象的な説明だとわかりにくいかもしれませんが、以下の数式を使った導出に目を通した後でもう一度読むと、理解が深まると思うので一旦次に進みましょう。
導出
まず、自然な誤差を含む実験によって得られるデータ\(x_i\)の真値\(X\)とのずれ\(\epsilon_i\)を、
\(\epsilon_i=x_i-X\hspace{20px}-(1)\)
と表し、\(\epsilon_i\)が従う確率分布を、
\(f(\epsilon_i)\hspace{20px}-(2)\)
と表します(最終的にこの関数が正規分布になる)。
さらに、n回実験を実施した時の同時確率密度関数(複数の事象が同時に起こる確率密度関数)Pは、
\(P=\displaystyle\prod_i^n f(\epsilon_i)=\displaystyle\prod_i^n f(x_i-X)\hspace{20px}-(3)\)
と表すことができます。
ここで最尤法として、\(x_1,x_2,・・・,x_n\)という実験データが得られている時、真値\(X\)を変数とみなした\(P(X)\)は\(X\)がデータの平均値\(\overline x\)と等しい時に最大となるということを仮定します。
つまり、これは\(P(X)\)を\(X\)で微分した関数\(P'(X)\)に\(\overline x\)を代入すると0になるということを仮定していて、
\(P'(\overline x)=0\hspace{20px}-(4)\)
ということになります。
ここで、式(3)の両辺で対数をとると、
\(lnP(X)=\displaystyle\sum_i^n lnf(x_i-X)\hspace{20px}-(5)\)
さらに両辺を\(X\)で微分すると、
\(\dfrac{P'(X)}{P(X)}=\displaystyle-\sum_i^n \dfrac{f'(x_i-X)}{f(x_i-X)}\hspace{20px}-(6)\)
\(X\)に\(\overline x\)を代入すると、式(4)より、
\(\displaystyle\sum_i^n \dfrac{f'(x_i-\overline x)}{f(x_i-\overline x)}=0\hspace{20px}-(7)\)
となる。
ここで、\(\overline x\)について考えると、
\(\overline x=\dfrac{x_1+x_2+・・・x_n}{n}\)
なので、
\(\displaystyle\sum_i^n x_i-\overline x=0\hspace{20px}-(8)\)
が言える。
これで導出の下準備が整いました。
すなわちここから先は式(7)と式(8)から関数fの形を導いていきます。
さてここで、式(7)と式(8)を以下のように簡略化して記す。
\(\displaystyle\sum_i^n \phi(z_i)=0\hspace{20px}-(7′)\)
\(\displaystyle\sum_i^n z_i=0\hspace{20px}-(8′)\)
この時\(z_1,z_2,・・・,z_n\)は束縛条件(8′)の下、自由度\(n-1\)で自由に決めることができるとすれば、\(\phi(z_i)\)は、
\(\phi(z_i)=az_i\hspace{20px}-(9′)\)
ただし\(a\)は定数
しか取り得ない。(ここの証明はガウス分布の導出/新潟大で説明あり)
つまり(9′)を書き換えると、
\(\dfrac{f'(\epsilon_i)}{f(\epsilon_i)}=a\epsilon_i\hspace{20px}-(9)\)
ただし\(a\)は定数
これを積分すると、
\(f(\epsilon_i)=Cexp(\dfrac{a\epsilon_i^2}{2})\)
ただし\(C\)は定数
最初に提示した標準正規分布の式に合わせて、\(\epsilon_i\)を\(x\)と書き換えて、
\(f(x)=Cexp(\dfrac{ax^2}{2})\hspace{20px}-(10)\)
となります。
あとは規格化して積分定数Cを求めれば、最初に提示した標準正規分布関数の形になります。
実はここの規格化は結構難しくて、ガウス積分という特別な手法で解く必要があります。
詳細は、以下の書籍の補足に載っていますので、気になる方は参照してみてください。
ガウスの公理との無矛盾性について
最尤法を使って導かれた式(10)の正規分布が、ガウスの公理と矛盾していないかについて最後に確認しておきます。
まず、「1.大きさの等しい正と負の誤差は等しい確率で生じる。」については、分布の形が左右対称だということを言っているので、下図をみてわかる通りOKですね。
つづいて「2.小さい誤差は大きな誤差より起こりやすい。」についても、下図でxが0から離れるほど、値が小さくなっているのでOKですね。
最後の「3.ある限界値より大きな誤差は実際上起こらない。」は少々曖昧さがありますが、これはxの絶対値が大きくなると極端に分布が小さくなる。つまりあまりにも0から離れたところでは分布を考える必要がないということを言っています。
これについても図を見てわかるとおり、xの絶対値が4を超えたあたりから分布は極めて小さくなり現実的に考える必要がなくなっている事が読み取れます。
関数の形から考えても指数関数を採用しているのでxが0から離れるほど、極端に分布が小さくなることは納得できますね。
という事で以上の考察から、導かれた分布関数はガウスの公理と無矛盾であり、自然な誤差を含む分布として採用することが妥当あると言えます。
まとめ
今回は正規分布の導出について、詳しく説明しました。
数学的にかなりハードな内容ですが、ここまで詳しく書いた記事はあまりないと思うので、本気で勉強したい人は読み込んでみてください。
以下の補足で参考になった記事や書籍を挙げていますので、この記事で物足りない方は参考にしてみてください。
補足
2項分布から導く場合
正規分布の導出には、もう一つ有名なものに二項分布から導く方法があります。そちらに関しては過去記事で紹介していますので、気になる方はどうぞ。
その他参考になった記事・書籍
その他参考になった記事を挙げておきます。
一般的な書籍にはあまり正規分布の導出を扱ったものが少ないですが、以下の書籍には同様の導出が取り上げられているので参考になります。
グラフ化で使ったPythonコード
最後にグラフ化で使ったPythonコードを載せておきます。
あえて関数を実装してグラフ化しました。
自由にお使いください。
#グラフ化の実装コード
import matplotlib.pyplot as plt
import numpy as np
#normal dist.
def N(m,s,x):
return (1/((2*pi*s)**(1/2))) * exp(-((x-m)**2)/(2*s))
x_axis = []
y_axis = []
for i in range(-500,500):
x_axis.append(i/100)
y_axis.append(N(0,1,i/100))
plt.plot(x_axis,y_axis,label="Normal dist.")
#グラフの表示
plt.ylabel('freq.')
plt.xlabel('x')
#範囲指定
plt.ylim(0,0.5)
plt.legend()
plt.show()
(8)式はあってますか
なるほど。(8)は括弧が抜けているのですね。