正規分布

回 5-2 分野 5 統計

正規分布は、平均を真ん中に左右対称な釣り鐘の形の分布で、平均と標準偏差の 2 つで形が決まります。平均 ± 標準偏差 1 つの範囲に約 68%、2 つに約 95%、3 つに約 99.7% が入ります。平均 50 点、標準偏差 10 点の正規分布なら、70 点以上は標準偏差 2 つ分上なので、約 2.3% です。

正規分布の割合を、Python の NormalDist で出した数と、乱数で何万個も作って数えた数の両方で確かめます。

平均 50 点、標準偏差 10 点のテストで、70 点以上は何人に 1 人か

点数が正規分布に従うなら、70 点以上は約 2.3%、およそ 44 人に 1 人です。平均と標準偏差の 2 つだけで、この割合が出せます。

正規分布は、平均を真ん中に、左右対称の釣り鐘の形に広がる分布です。測り方の誤差や、たくさんの小さな要因が足し合わさってできる数は、この形に近くなることが多いです。

一方で、応答時間や売上のように、正規分布に当てはまらないデータも多くあります。この回では、正規分布の割合を Python で出し、乱数で確かめ、当てはまらないデータで何が外れるかも見ます。

正規分布の形と割合

平均と標準偏差で形が決まる

正規分布は、平均 μ (ミュー) と標準偏差 σ (シグマ) の 2 つで形が決まります。平均 μ、標準偏差 σ の正規分布を N(μ, σ^2) と書きます。かっこの 2 つ目は、標準偏差ではなく分散です。

形の特徴は、次の通りです。

  • 平均の所が一番高く、左右対称
  • 平均と中央値と最頻値 (一番多い値) が同じ
  • σ が大きいほど、低く横に広がる。σ が小さいほど、高く細くなる
  • 裾は左右にどこまでも続くが、平均から離れるほど急に薄くなる

曲線の高さ (確率密度関数) の式は f(x) = 1 ÷ (σ × √(2π)) × e^(−(x − μ)^2 ÷ (2σ^2)) です。式を覚えなくても、Python や表計算の関数で割合は出せます。

68-95-99.7 の決まり

平均からの離れ方を σ の何個分かで数えると、範囲に入る割合はいつも同じです。

範囲入る割合外に出る割合
μ ± 1σ約 68.3%約 31.7%
μ ± 2σ約 95.4%約 4.6%
μ ± 3σ約 99.7%約 0.3%

ちょうど 95% が入るのは μ ± 1.96σ です。左右対称なので、片側だけなら半分にします。μ + 2σ より上は約 2.3% です。

標準化と標準正規分布

値 x を z = (x − μ) ÷ σ に直すことを、標準化と呼びます。標準化した値は、平均 0、標準偏差 1 の正規分布 N(0, 1) に従います。これを標準正規分布と呼びます。

平均 50、σ 10 で 70 点は、z = (70 − 50) ÷ 10 = 2 です。どんな平均と σ の正規分布でも、標準化すれば 1 つの表 (標準正規分布表) か、1 つの関数で割合を出せます。

割合は面積

正規分布の割合は、釣り鐘の曲線の下の面積で表します。曲線の下の面積は全部で 1 です。ある値より下の面積を出す関数を、累積分布関数 (cdf) と呼びます。

点数のような連続した値では、「ちょうど 70.000… 点」の割合は 0 で、割合は必ず範囲で考えます。「70 点以上」は 1 − (70 より下の面積) です。

中心極限定理

元のデータが正規分布でなくても、たくさんの値の平均は、正規分布に近い形になります。これを中心極限定理と呼びます。サイコロの目は 1 から 6 が同じ割合で出ますが、10 回振った平均を何度も取ると、3.5 を真ん中にした釣り鐘に近づきます。平均を取る個数が増えるほど近くなり、平均の散らばり (標準偏差) は元の σ ÷ √n に小さくなります。

コインを n 回投げた表の数 (二項分布) も、n が大きいと正規分布に近い形になります。表の数は、1 回ごとの表の数 (0 か 1) を n 個足した数だからです。

動かして確かめる

1 本目は、68-95-99.7 の割合を Python で出します。statistics.NormalDist は、正規分布の割合を計算する Python の標準の道具です。

動かす ± 1σ、2σ、3σ の中の割合

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

実行すると、次の通りに出ます

±1σ 0.6827
±1.96σ 0.9500
±2σ 0.9545
±3σ 0.9973

± 1σ に 0.6827、± 2σ に 0.9545、± 3σ に 0.9973 が入ります。± 1.96σ でちょうど 0.95 です。

2 本目は、平均 50、σ 10 の点数で、70 点以上の割合と、上位 5% に入る点数を出します。inv_cdf は、cdf の逆で、下からの割合を渡すとその値を返します。

動かす 70 点以上の割合と上位 5% の点

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

実行すると、次の通りに出ます

70 点以上 0.0228
何人に 1 人 44
z 2.0
上位 5% の点 66.45

70 点以上は約 2.28% で、およそ 44 人に 1 人です。上位 5% に入るのは約 66.45 点以上です。

3 本目は、乱数で正規分布の値を 10 万個作り、範囲に入る数を数えます。乱数の種 (seed) を決めておくと、同じ Python で何度動かしても同じ値が出ます。

動かす 乱数 10 万個を数える

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

実行すると、次の通りに出ます

±1σ 0.68339
±2σ 0.9551
±3σ 0.99764
70 以上 0.02249

数えた割合は、1 本目と 2 本目の式の数とほぼ同じです。

4 本目は、中心極限定理を確かめます。サイコロを 10 回振った平均を、1 万回取ります。サイコロの目の σ は約 1.708 なので、平均の σ は 1.708 ÷ √10 で約 0.540 のはずです。

動かす サイコロ 10 回の平均を 1 万回

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

実行すると、次の通りに出ます

平均の平均 3.499
平均の σ 0.54
± 1σ の中 0.6897

平均の平均は約 3.5、平均の σ は約 0.54 で、式と合います。± 1σ の中の割合も、正規分布の 0.683 に近い数です。サイコロの目は 1 から 6 までしか無い平らな分布ですが、10 回の平均は釣り鐘に近くなりました。値が飛び飛びなので、割合はぴったりには合いません。

正規分布だと思うと外れる所

右に長いデータ

応答時間は 0 より小さくならず、まれにとても遅い値が出ます。こうした右に裾の長いデータに正規分布の物差しを当てると、外れます。下は、平均 100 ミリ秒の指数分布 (待ち時間によく使う、右に長い分布) の乱数です。

動かす 右に長いデータで 2σ を当てる

python実行可能
出力

▶ 実行ボタンを押すと結果がここに表示されます

実行すると、次の通りに出ます

平均 99
σ 99
平均 - 2σ -99
平均 + 2σ より上 0.0497

指数分布は平均と σ が同じ大きさになり、ここではどちらも約 99 です。平均 − 2σ はマイナスで、ありえない応答時間です。平均 + 2σ より上は約 5% で、正規分布の約 2.3% の 2 倍ほどあります。「平均 + 2σ を超えたら異常」と決めると、思ったより多く警報が鳴ります。右に長いデータは、対数を取ってから見るか、パーセンタイルで見ます。正規分布に近いかは、ヒストグラムを描いて釣り鐘の形と重ねるか、Q-Q プロット (並べた値を正規分布の値と比べる図) で確かめます。

裾が厚いデータ

株価の日ごとの動きのように、正規分布で見積もるより極端な値が多く出るデータがあります。正規分布では 3σ の外は約 0.3% ですが、裾が厚いデータでは、もっと多く外に出ます。まれな大きな外れが損になる場面では、正規分布を仮定する前にデータの裾を確かめます。

割合は範囲で考える

正規分布で「ちょうど 70 点の割合」を聞かれたら 0 です。点数が整数なら、実際には 69.5 から 70.5 の範囲の面積で近似します。境目をどちらに入れるかで、答えが少し変わります。

仕事でどう使うか

正規分布を使う場面は、次の通りです。

  • 異常の検知。データが正規分布に近いなら、平均 ± 3σ の外を異常とすると、正常な値を誤って異常とするのは約 0.3% にとどまる。近くないなら、この割合は保てない
  • A/B テスト。2 つの群の平均の差は、データが多ければ中心極限定理で正規分布に近くなる。差が、差の標準誤差 (差の推定のばらつきを表す標準偏差) の約 1.96 倍を超えるかで、偶然で説明できるかを判断する
  • 機械学習の重みの初期値。ニューラルネットの重みを、平均 0 の正規分布の乱数で決める方法が広く使われる
  • 測定の誤差。ベンチマークの平均を何回か取ると、平均の散らばりは σ ÷ √n に小さくなる。回数を 4 倍にすると、散らばりは半分になる
  • 偏差値。偏差値は 50 + 10z で、点数を標準化した z を平均 50、σ 10 に直した数

よくある問い

正規分布とは簡単に言うと何ですか

平均の所が一番多く、平均から離れるほど少なくなる、左右対称の釣り鐘の形の分布です。平均と標準偏差の 2 つが分かれば、ある範囲に入る割合を計算できます。

標準正規分布と正規分布の違いは何ですか

標準正規分布は、平均 0、標準偏差 1 の正規分布です。どんな正規分布も、z = (x − 平均) ÷ 標準偏差 で標準化すると、標準正規分布に直せます。

正規分布表はどう読みますか

表は、z の値に対して、z より下 (表によっては 0 から z まで、または z より上) の面積を載せています。まず表の見出しで、どの面積の表かを確かめます。Python なら NormalDist().cdf(z) で z より下の面積が出るので、表を引かなくても計算できます。Excel なら NORM.S.DIST(z, TRUE) が同じ数を返します。

試験の形で練習するには

統計検定 2 級の練習問題で、出題範囲の全体から選んだ問題を 4 択の形で解けます。正規分布の上側の確率や、2 つの正規分布の和と差を試験の形で解くなら、分野別クイズの「確率分布」が向いています。この回はコードで割合を確かめる回、練習問題は試験の形で解く場所です。

確認クイズ

答えだと思う選択肢を押すと、その場で正誤と理由が開きます。3 問すべてに正しく答えると、この回は修了で、石が緑に変わります (この端末のブラウザに残ります)。間違えた問いは、あとから解き直せます。

1 問目

平均 60、標準偏差 5 の正規分布で、50 から 70 の範囲に入る割合に一番近いのはどれですか。

2 問目

応答時間が 0 以上で、まれにとても遅い値が出ます。平均 + 2σ を超えた値を異常とすると、どうなりやすいですか。

3 問目

このコードを動かすと何が出ますか。

from statistics import (
    NormalDist)
d = NormalDist(100, 15)
print(round(d.cdf(100), 2))

説明課題

「平均 50 点、標準偏差 10 点のテストで、70 点以上が約 2.3% になる理由」を、標準化と 68-95-99.7 の決まりを使って 3 文で説明してください。書いたら、下の模範解答を開いて比べてください。

模範解答

自分の説明を書いてから開いて、比べてください。

この回の先の一歩

データが正規分布に近いかを見分け、近いときだけ「標準偏差 3 つ」の物差しを使えると、誤報の少ない監視を組めます。いまの自分が転職までの道のどの段にいるかは、転職診断で確かめられます。

もっと深く

この回の続きを、ゆめさくのコースの章や道具で深められます。頁の中の確認クイズに答えたあと、手を動かす量を増やしたいときに使ってください。

一次資料

どれも 2026年10月30日に開いて、題と中身を確かめました。

次へ

分野 5 統計の回

  1. 5-1平均と分散と標準偏差偏差、分散、中央値頁で読む
  2. 5-2正規分布釣り鐘の形、平均 ± 1σ、標準化この回
  3. 5-3相関と回帰相関係数、最小二乗法頁で読む

分野 5 の頁へ戻るほかの分野を見る