はじめに
実験データの解析などで正規分布を仮定した見積もりや議論によく出くわします。
よく分からないからとりあえず正規分布としておこう、ってしたことありませんか?
僕は何度も数えきれないほどあります。そしてあまり人からつっこまれないし、経験的にそこそこ上手くいくことが多い気がします。
なぜこんなにも正規分布が使われるのでしょうか?
この記事でなぜみんな正規分布を使われるのかと見落とされがちな正規分布を使ってはいけないケースについて理解できます。
復習 : 正規分布ってなんだっけ?
正規分布は以下の式で表される確率密度分布関数です。
$$
f(x) =\frac{1}{\sqrt{2\pi \sigma^2}}exp(-\frac{(x-\mu)^2}{2\sigma^2})
$$
正規分布を決めるには、平均$\mu$と分散$\sigma^2$の2つの値が決まれば分布が決まります。
特に、$N(\mu,\sigma^2)$のように書くこともあります。
例えば$N(3,4^2)$と書けば、平均が$3$、分散が$4^2$の正規分布の意味です。
なぜ正規分布を適用していいか?
これはひとえに中心極限定理があるからです。
wikipediaによると、中心極限定理は以下のようなものです。
標本の算術平均と母平均との誤差の確率分布が、定理の条件が満たされれば、標本の大きさを大きくすると近似的に期待値ゼロの「正規分布」になることをいう。
標本は取得したデータをさします。
取得した標本の平均値の分布は、データ数が十分大きければ正規分布に近づきます。
これがどれだけ凄いことを言っているかを見ていきます。
中心極限定理がすごい理由1
標本が従う分布を考えなくていいことです。
標本そのものが従う確率密度分布関数は、任意です。
ものすごく複雑な分布だったり、解析式では表現できない分布関数かもしれません。
標本自体を扱うのはとても難しいのですが、標本の平均を取れば正規分布で扱えるとなれば見通しが非常によいのです。
中心極限定理がすごい理由2
正規分布を使ってよいとなると、平均と分散の2つの値だけで分布を議論できます。
そして2つの値の意味合いは、平均と分散であり意味も明確で理解しやすいです。
中心極限定理がすごい理由3
誤差を扱いやすいことです。
測定には誤差がつきもので、その原因は多種多様です。
温度変動、気圧の変化、測定器の特性等、要因は無数にあり、そのすべてを抑えることは不可能です。
最終的な誤差はこれらの影響を足し合わせたものです。
誤差要因の中には独立なものも多く、中心極限定理から全体の誤差分布が正規分布に近づくと考えられます。
よって、個別の議論に立ち入らず誤差全体を正規分布として扱えるのです。
当然ですが状況によって誤差の特性が正規分布から外れるケースもあり盲信はできませんが、大きな指針になることは間違いありません。
中心極限定理を実際に見てみる
Pythonを使った数値実験で中心極限定理を可視化してみます。
一様分布
一様分布は、区間(a,b)の値がすべて同じ確率密度のことです。
$$
f(x) = \frac{1}{b-a}
$$
平均が1となるように(0,2)区間の一様分布を考え、10万点サンプリングします。
サンプリングそのものと10点ごとに平均値を取ったときのヒストグラムを計算してみます。
import numpy as np
import matplotlib.pyplot as plt
rng = np.random.default_rng(42)
# 一様分布から100,000点サンプリング
N = 100_000
x = rng.uniform(0, 2, N)
# 10点ずつに分けて平均
means = x.reshape(-1, 10).mean(axis=1)
fig, ax = plt.subplots(1, 2, figsize=(10, 4))
# 元の一様分布
ax[0].hist(x, bins=50, density=True)
ax[0].set_title("Uniform samples")
ax[0].set_xlabel("x")
# 10点平均
ax[1].hist(means, bins=50, density=True)
ax[1].set_title("Mean of 10 samples")
ax[1].set_xlabel("mean")
plt.tight_layout()
plt.show()
左側が一様分布のヒストグラムです。10sampleごとに平均をとった右側は1を中心に正規分布のような釣り鐘型の分布なっていることが分かります。
これは、10点ごとに標本平均を取った場合なので、平均する数を2,5,10,20と変えていってみます。

平均値は、どこも1のようですが、サンプル数を増やしていくと、正規分布に近づき更にばらつきが減っていくことが分かります。
タイトルに分散の値を記載しているとおり、サンプル数を増やすと分散が小さくなっていきます。
中心極限定理では、元の分布の分散を$\sigma^2$とするとnサンプル平均を取ると、分散は$\frac{\sigma^2}{n}$となります。
このように図示すれば、正規分布として扱いたければ最低でも10サンプル以上で平均を取った方がいいよなぁとか考えることが出来ます。
直感的な判断ですが、説得力がある手法だと思います。
指数分布
次に指数分布を扱ってみます。指数分布は、下式で表せます。
$$
f(x)=\frac{1}{\mu}exp(-\frac{x}{\mu})
$$
$\mu$は平均であり、この値だけで分布が決まります。
平均は1として、コードは先に示したもので一行直せばよいです。
x = rng.exponential(scale=1.0, size=N)
左側が指数分布であり、確かに指数関数のような形をしています。
右側は10点で平均を取ったものです。平均1を中心に正規分布っぽくみえますが、元の分布の影響か右側に若干尾を引いているようにみえます。
つぎにサンプル数を変えてみます。

やはり元の分布の特性を反映して右に尾をひいていますが、サンプル数を増やしていくと徐々に左右対称な分布に近づいているのが分かります。
正規分布としたければ、一様分布の時よりはサンプル数を多めにした方が良さそうです。
コーシー分布
ローレンツ関数などとも呼ばれますが、コーシー分布は下式で表される分布です。
$$
f(x)=\frac{1}{\pi\gamma(1+ (\frac{x-x_0}{\gamma})^2)}
$$
$x_0$が最頻値、$\gamma$が分布の幅を表しています。
$x_0=0$,$\gamma=1$でサンプリングする時は下記とすればよいです。
x = rng.standard_cauchy(N)
左がコーシー分布、右が10点で平均を取った場合です。
なんだか変な見た目になりました。何が起こっているのでしょうか?
xの目盛りをみると、-30000から20000ととても広い範囲にわたっていることが分かります。
分布幅の$\gamma=1$としたので、(-1,1)の間の数値がでることが殆どだろうと推測するのですが、
$\gamma$の1万倍以上の数値が出ているのです。
コーシー分布は$x \to \pm\infty$としたときに0への収束が非常に遅いです。
よく知られている指数分布、正規分布のようなものに比べ、大きい値がでる確率が高いのです。
この特性のため、平均値や分散の値を計算すると発散してしまい計算できません。
コーシー分布の紹介で平均値と分散という言葉を使わなかったのはこのためです。
標本平均をとってみるとどうでしょうか?
サンプル数は多めにした方が良さそうなので50,100,1000,5000としてみます。

1000サンプルで以上でやっとそれっぽい分布になっているようですが、
正規分布としてよいのでしょうか?
実はコーシー分布ではいくらサンプル数を増やしても正規分布に収束しないことが知られています。
中心極限定理は万能ではないのです。
中心極限定理では、元の分布の分散を$\sigma^2$とするとnサンプル平均を取ると、分散は$\frac{\sigma^2}{n}$となると説明しましたが、元の分布で分散を定義できないため標本平均でも分散が定義できないはずで正規分布としては扱えないのです。
本当に正規分布使っていいのか?
中心極限定理に基づいた正規分布の利用はとても便利であり有用な一方で、前節で見たように正規分布に収束しないような状況もあり得ます。
また中心極限定理が適用可能であって誤用しているケースも見かけます。
標本そのものと標本平均を混同するケース
よく見る誤用は、標本平均でなく、標本自体に正規分布を適用してしまう例です。
例えば、10点データを取得して10点のデータが正規分布していると仮定する、といったものです。
これは中心極限定理の範囲外で、正規分布を仮定することの正当性がありません。
やるのであれば、
10点データを取得して平均値を計算する、を10回繰り返します。(データは10×10=100点取得)
このとき10個の平均値が求まり、この10個の値に対して正規分布を適用などとするべきです。
中心極限定理にも条件がある
数値実験でみたように、データ点数を状況に応じて十分多く取る必要がありますし、コーシー分布のような特殊な場合においてはデータ点を増やしても正規分布を適用できません。
そもそも正規分布に収束しないケースを除外するとしても、標本平均を取る際に各事象が独立であれば比較的早く収束するのに対して、相関があると収束に時間がかかります。具体的に何点で平均取ればいいかという点については各ケースで考える必要があり、正規分布を適用していいかという点は自力で確認しておく方がよいです。
以下で、正規分布しているかを判断する方法をまとめておきます。
ヒストグラム
一つ前の節でやったようにヒストグラムを示して、見た目で判断する方法です。
直感的で厳密性はあまりありませんが、手軽で説得力はありますし一番使われる方法と思います。
Q-Qプロット
データを小さい方から順に特殊なプロットをしていく方法です。
正規分布であれば直線にのるため、これも直感的、感覚的に示すことができます。
正規性の検定
得られたデータが正規分布かどうかを検定する方法があります。
シャピロ=ウィルクの正規性の検定、ksテストなどと呼ばれる手法です。
詳細については立ち入りませんが、便利な一方で注意点も多い手法です。
まとめ
本記事では正規分布が、頻繁に理由について解説をしました。
– 中心極限定理から、十分サンプル数を多くすれば標本平均は正規分布に収束することが知られており、このため正規分布が広く使われています。
– 一様分布、指数分布、コーシー分布それぞれからデータをサンプリングし、標本平均の分布を可視化しました。
– 正規分布を適用するのに必要なサンプル数はケースごとに異なり、そもそも正規分布を適用できないケースもあります。
参考文献
ベイズ統計の歴史についての本ですが、一方で中心極限定理を基にした方法がどれだけ有用であったかについても描かれています。そして、後に中心極限定理と正規分布が頻度主義と深く結びついていく経緯も描かれていて興味深いです。
スタンダードな統計の教科書です。永田先生は他にも教科書を執筆されていますが、どれも記述が簡潔でわかりやすい印象があります。この本も他の統計の教科書よりもとっつきやすいと思います。
データ解析をやりはじめるとハマりがちなポイントを統計のモヤモヤシリーズとして記事にしています。





コメント