
「標本サイズ30あれば正規分布とみなしてよい」を7つの分布で実測したら、合格したのは1つだけだった
アンケートを30人に取って平均を出す。A/Bテストを30回まわして勝ち負けを判定する。このとき、たいてい同じ一文が根拠になっている。
標本サイズが30以上あれば、標本平均は正規分布に従うとみなしてよい。
統計の教科書にも、社内の分析ガイドラインにも書いてある。中心極限定理という後ろ盾があるので、この一文は強い。
ただ、中心極限定理が言っているのは「無限に増やせば」の話だ。30は無限ではない。では30で何が起きているのか。
7種類のデータで実際に測ったら、合格したのは1つだけだった。実験に使ったコードの全文はGitHubに置いています。
そもそも、何が正規分布に近づく話なのか
まずここを揃えておきたい。近づくのはデータそのものではない。
サイコロを30回振って、出た目の平均を出したとする。3.4だった。もう一度30回振って平均を出すと、今度は3.6かもしれない。3.1かもしれない。この「平均」自体が、やるたびに違う値になる。
この平均を2万回ぶん集めてヒストグラムを描くと、3.5あたりを山にした釣鐘型の分布ができる。中心極限定理が言っているのは、この「平均たちの分布」が正規分布(釣鐘型)に近づくということだ。サイコロの目そのものは1〜6が平らに出るだけで、いくら振っても釣鐘型にはならない。
言葉を3つだけ決めておく。
- 母集団 … 元のデータが従う分布(サイコロなら「1〜6が等確率」)
- 標本サイズ n … 1回の平均を作るのに使う個数(30回振るなら n=30)
- 標本平均 … その n 個の平均
なぜ釣鐘型かどうかを気にするのかというと、t検定も信頼区間も「標本平均が正規分布に従うこと」を前提に計算しているからだ。前提が崩れていると、「有意差あり」の判定も「95%信頼区間」の95%も、名乗っているとおりの意味を持たなくなる。
測り方
母集団を7種類用意した。左右対称なものから、極端に歪んだものまで。
そこから n 個を取り出して平均する、を2万回繰り返す。集まった2万個の標本平均が、正規分布からどれだけ離れているかを測る。
ズレの尺度にはコルモゴロフ・スミルノフ統計量(KS統計量)を使った。名前は物々しいが、やっていることは単純だ。2つの分布について「x以下になる確率」のグラフを描いて重ね、いちばん離れている場所での差を取る。それだけ。
- KS = 0 … 完全に一致
- KS = 0.05 … どこかで「x以下になる確率」が5ポイントずれている
合格ラインは KS < 0.01 に置いた。ズレが1ポイント未満、という実用的な線だ。参考までに、2万件でKS検定を5%水準でやったときの棄却点が0.0096なので、これはほぼ「2万回試しても正規分布と見分けがつかない」水準にあたる。
比較の前に、位置と広がりは揃えてある(標準化という)。そうしないと「平均が3.5か0か」のような、形と関係ない違いを拾ってしまう。揃えたあとに残るのは形の違いだけになる。
n = 30 で何が起きているか

青い線が正規分布、ピンクの棒が実測した標本平均の分布だ。ぴたりと重なっているのは左上の一様分布だけで、あとはどれも形が違う。
| 母集団 | どんなデータか | n=30 の KS | 判定 |
|---|---|---|---|
| 一様分布 U(0,1) | 0〜1が平らに出る | 0.004 | 合格 |
| 指数分布 Exp(1) | 待ち時間。短いことが多く、たまに長い | 0.027 | |
| カイ二乗分布 df=1 | 指数分布よりさらに右に尾を引く | 0.034 | |
| 対数正規 σ=1 | 年収や売上。掛け算で増えるもの | 0.061 | |
| コイン投げ p=0.5 | 表か裏か、2つの値しか取らない | 0.073 | |
| コーシー分布 | 極端な外れ値が頻繁に出る | 0.081 | |
| まれな事象 p=0.01 | 100回に1回だけ起きる出来事 | 0.449 |
7つのうち、合格は1つ。
「まれな事象」の0.449は桁が違う。図の右下を見ると、棒が3本しか立っていない。100回に1回しか起きないことを30回試すと、ほとんどの回で0件、たまに1件、まれに2件。平均が取りうる値が数種類しかないので、なめらかな釣鐘型になりようがない。
n を増やすと、どう変わるか
n=30だけ見ても仕方がないので、1から1000まで動かした。

上の行(一様分布)は、n=1では四角い平らな形なのに、n=5でもう正規分布と見分けがつかない。
下の行(対数正規)は、n=1000まで行っても左に寄ったままだ。山の位置がずれていて、右に長い尾を引いている。
同じ「30」を当てはめる相手として、この2つは違いすぎる。
7分布すべてについて、ズレの縮み方を1枚にするとこうなる。

線が下にあるほど正規分布に近い。横向きの破線が合格ライン(KS=0.01)で、そこを下回ればその分布は「正規分布とみなしてよい」。縦の点線が n=30 の位置だ。
| 母集団 | 合格ラインを満たした最小の n |
|---|---|
| 一様分布 U(0,1) | 5 |
| 指数分布 Exp(1) | 1000 |
| カイ二乗分布 df=1 | 1000 |
| 対数正規 σ=1 | 1000でも未達 |
| コイン投げ p=0.5 | 1000でも未達 |
| まれな事象 p=0.01 | 1000でも未達 |
| コーシー分布 | 到達しない |
一様分布は n=5 で足りる。30は6倍の過剰だ。一方で指数分布には1000が要る。30では33分の1しかない。同じ「30」という数字が、6倍余っている場面と33倍足りない場面で、同じ顔をして使われている。
分かれ目は「歪度」だった
では何が2つを分けているのか。歪度(わいど)という量が効いている。
歪度は、分布が左右どちらに偏っているかを表す数字だ。
- 歪度 0 … 左右対称(正規分布、一様分布、コイン投げ)
- 歪度が大きい … 右に長い尾を引く。年収がこれ。多くの人が数百万円のあたりに固まっていて、右のほうにごく少数の高額所得者がいる
さっきの表を歪度の順に並べ直すと、KSの順とほぼ一致する。
| 母集団 | 歪度 | n=30 の KS |
|---|---|---|
| 一様分布 | 0.00 | 0.004 |
| 指数分布 | 2.00 | 0.027 |
| カイ二乗分布 df=1 | 2.83 | 0.034 |
| 対数正規 σ=1 | 6.18 | 0.061 |
| まれな事象 p=0.01 | 9.85 | 0.449 |
理論上、標本平均の歪度は次の式で減っていくことが知られている。
n個の平均を取ると、歪みが 分の1になる、という意味だ。実測がこの式に乗るか確かめた。

点(実測)が線(理論)に乗った。
この式をひっくり返すと、使える指針になる。標本平均の歪度を0.1以下に抑えたいなら、
が必要になる。必要な標本サイズは、歪度の2乗に比例する。 歪みが2倍のデータには4倍の標本が要る。
| 母集団 | 歪度 | 必要な n |
|---|---|---|
| 一様分布・コイン投げ | 0 | 1 |
| 指数分布 | 2.00 | 400 |
| カイ二乗分布 df=1 | 2.83 | 800 |
| 対数正規 σ=1 | 6.18 | 3,800 |
| まれな事象 p=0.01 | 9.85 | 9,700 |
逆算すると、n=30 が正当化されるのは歪度が0.55くらいまでの範囲だけだった。
そして歪度は母集団の性質なので、データを取る前から決まっている。手元のデータのヒストグラムを描いて右に長い尾を引いていたら、その時点で30では足りないと分かる。売上、滞在時間、購入金額——右に尾を引くデータは実務にいくらでもある。
真ん中が合っていても、端は合っていない
もうひとつ、見落としやすいところがある。
標準化した標本平均が を超えた割合を数えた。正規分布なら0.27%(1000回に約3回)になるはずの数字だ。
| 母集団 | n=30 での実測 | 正規分布の何倍 |
|---|---|---|
| 一様分布 | 0.27% | 1.0倍 |
| 指数分布 | 0.44% | 1.6倍 |
| カイ二乗分布 df=1 | 0.60% | 2.2倍 |
| 対数正規 σ=1 | 1.10% | 4.1倍 |
| コーシー分布 | 14.03% | 52倍 |
対数正規の n=30 で、「3σの外」が正規分布の4倍出ている。「1000回に3回」のつもりが「100回に1回」ということだ。
異常検知でよくやるように「平均から3σ離れたらアラート」という閾値を引いていたら、誤報が4倍出る。めったに鳴らないはずのアラートがなぜか毎日鳴る、という状況の原因はこれであることが多い。
図で真ん中が合って見えても、端は別に確認したほうがいい。KS統計量は「いちばん離れている場所」を見る指標なので、確率の絶対量が小さい裾のズレは拾いにくいからだ。
コイン投げが合格しない理由は、歪みではない
表を見返すと、ひとつ変な行がある。コイン投げは歪度0(左右対称)なのに、n=30でKS=0.073。n=1000でも0.0167で合格しない。
理由は歪みではなく、飛び飛びの値しか取らないことだ。
n回のコイン投げの平均は という値しか取れない。n=30なら31通りしかない。「x以下になる確率」のグラフを描くと、なめらかな坂ではなく階段になる。相手の正規分布はなめらかな坂なので、段差ぶんのズレが必ず残る。
最初の図でコイン投げのパネルが櫛のように見えていたのは、これだ。
段差の大きさから計算すると、KSの下限はおよそ になる。n=1000で0.0126、実測0.0167とだいたい合う。0.01まで下げるには n≈1600 が要る計算だ。
つまりコイン投げも最後は正規分布に寄る。ただし寄り方が でしかない。「はい/いいえ」「クリックした/しなかった」のような2値データを扱っているかぎり、この段差はついて回る。
コーシー分布は、1000個平均しても何も変わらない
最後の1つは、これまでとは種類の違う壊れ方をする。

| n | 1 | 30 | 100 | 1000 |
|---|---|---|---|---|
| KS統計量 | 0.083 | 0.081 | 0.082 | 0.083 |
1000個平均しても、1個のときと同じ形だ。 縮みもしないし、釣鐘型にも近づかない。
理由は、コーシー分布に平均も分散も存在しないこと。「計算するのが難しい」のではなく、数学的に存在しない。極端な外れ値が出る確率が十分に高いので、データを増やすほど平均が暴れて、どこにも落ち着かない。
中心極限定理は「母集団に有限の平均と分散があること」を前提にしている。コーシーはその前提を満たさないので、定理の外側にいる。実際、コーシー分布から n 個取って平均すると、その分布は元のコーシー分布とぴったり同じになることが証明できる。平均という操作が、何も縮めていない。
3σの外は14%。正規分布のつもりで見ていたら、52回に1回のはずの事象が7回に1回来る。
これは机上の話ではない。株価の変動、ネットワークの遅延、SNSの拡散数のように、ごく稀に桁違いの値が出るデータでは、分散が事実上効かない状況が起きる。平均を取れば安定する、という直感が通用しない領域がある。
自分で動かしてみる
n を動かしたときに形がどう変わるかを触れるようにした。上のボタンで分布を切り替えられる。
一様分布はスライダーを2つ動かしただけで正規分布に張り付く。対数正規は1000まで動かしても左に寄ったままだ。コーシー分布は、どこまで動かしても何も起きない。
結局、どうすればいいのか
実測から言えることをまとめる。
1. データのヒストグラムを描く。 右に長い尾を引いていたら、30では足りない。これが一番安上がりな判定だ。
2. 歪度が計算できるなら を目安にする。 歪度2の指数分布なら400、歪度6の対数正規なら3,800。
3. 2値データ(はい/いいえ)なら、飛び飛びであることを織り込む。 n=1600あたりまでは段差が残る。
4. 極端な外れ値が頻繁に出るデータでは、そもそも平均に頼らない。 中央値や、外れ値に強い方法を使う。
5. サンプルを増やせないなら、正規分布を仮定しない方法に変える。 ブートストラップや順位に基づく検定なら、この前提が要らない。
まとめ
- n=30で合格したのは7分布中1つだけ。一様分布のKS=0.004に対し、指数分布0.027、対数正規0.061、まれな事象p=0.01は0.449
- 必要な標本サイズは歪度の2乗に比例する()。30が正当化されるのは歪度0.55程度まで
- 標本平均の歪度が で減ることは実測でも確認できた
- 中央が合っていても裾は合わない。対数正規のn=30で3σ超えが1.10%(正規の4.1倍)
- 2値データはKSに の下限が残る。コイン投げが歪度0なのに0.073なのはこれが理由
- コーシー分布はn=1000でもKS=0.083で、n=1から動かない。平均も分散も存在しないため定理の外側にいる
測った数字より、「30」という数がどう伝わってきたかのほうが気になった。
もとは「歪度が小さければ30程度で足りる」という条件付きの話だったはずだ。それが伝わるうちに条件が落ちて、数字だけが残った。数字だけになると強い。30は覚えやすいし、会議で「サンプルは30あります」と言えば議論が終わる。条件は思い出す手間がかかるが、数字は思い出す手間がかからない。 だから条件のほうが先に落ちる。
自分が人に何かを渡すときも、たぶん同じことをしている。「この条件のときは、この手順で」と伝えたつもりが、相手には手順だけが残る。そして条件の外側で使われて、うまくいかない。
条件が落ちても壊れない渡し方があるとすれば、条件を注釈ではなく手順そのものに埋め込むことだと思う。「n=30」ではなく「ヒストグラムを描いて、右に尾を引いていたら30では足りない」と言えば、条件と手順が分かれない。前者は覚えられて誤用され、後者は覚えるのが面倒でも、覚えた人は間違えない。
コーシー分布のほうは、もっと救いがない話だった。平均を取れば真ん中に寄る、というのは平均が存在する場合の話でしかない。存在しないものを1000回足して1000で割っても、存在しないままだ。 数を集めれば確からしくなる、と無条件に信じている場面が、自分にもある気がしている。
このブログでは、機械学習の仕組みを実際にコードで実装して確かめた実験をテーマ別に整理しています(拡散モデル・Transformer・強化学習・多様体学習・過学習など)。


