回 5-1 分野 5 統計
標準偏差は、データの散らばりの大きさを、元のデータと同じ単位で表す数です。各データと平均の差 (偏差) を 2 乗して平均した数が分散で、そのルートが標準偏差です。2, 4, 4, 4, 5, 5, 7, 9 の 8 個 なら、平均は 5、分散は 4、標準偏差は 2 です。データを母集団から取った一部と見て n − 1 で割ると、標準偏差は約 2.14 になります。
平均、分散、標準偏差を、表で 1 つ ずつ計算した数と、 Python の statistics が出す数の両方で確かめます。
文 ゆめさくコード編集部 公開 2026年10月30日 更新 2026年10月30日 出典を確かめた日 2026年10月30日
平均が 同じ 2 つの API は、 同じくらい速いのか 2 つ の API の応答時間が、どちらも平均 100 ミリ秒だったとします。片方はいつも 95 から 105 ミリ秒、もう片方は 0 ミリ秒近くのときも 200 ミリ秒近くのときもあります。平均だけでは、この違いが見えません。
散らばりの大きさを 1 つ の数で表すのが、標準偏差です。上の 2 つ なら、前者の標準偏差は数ミリ秒、後者は数十ミリ秒になります。
この回では、平均、偏差、分散、標準偏差を表で 1 つ ずつ計算し、 Python が出す数と同じになるかを確かめます。n で割るか n − 1 で割るかの違いと、外れ値に強い中央値も扱います。
平均から 標準偏差まで 平均と偏差 平均は、値を全部足して個数で割った数です。2, 4, 4, 4, 5, 5, 7, 9 の 8 個 なら、合計 40 を 8 で割って 5 です。
偏差は、各値から平均を引いた数です。平均より大きい値はプラス、小さい値はマイナスになります。偏差を全部足すと、いつも 0 になります。平均の決め方から、プラスとマイナスがちょうど打ち消し合うからです。そのため、偏差をそのまま平均しても散らばりは測れません。
分散と標準偏差 打ち消し合わないように、偏差を 2 乗してから平均した数が分散です。分散のルートを取った数が標準偏差です。
値 偏差 (値 − 5) 偏差の 2 乗 2 −3 9 4 −1 1 4 −1 1 4 −1 1 5 0 0 5 0 0 7 2 4 9 4 16 合計 0 32
分散は 32 ÷ 8 = 4、標準偏差は √4 = 2 です。
分散は 2 乗した数なので、単位も 2 乗になります (ミリ秒なら「ミリ秒の 2 乗」)。ルートを取ると元の単位に戻るので、「平均 100 ミリ秒、標準偏差 5 ミリ秒」のように、平均と並べて読めます。
n で 割るか、 n − 1 で割るか 上の計算は、偏差の 2 乗の合計を個数 n で割りました。これを母分散と呼びます。手元のデータが知りたい全部 (母集団) なら、こちらを使います。
手元のデータが、もっと大きな全体から取った一部 (標本) で、全体の散らばりを見積もりたいときは、n − 1 で割ります。これを不偏分散と呼びます。標本の平均は標本の値に寄るので、偏差の 2 乗が全体の場合より小さく出やすく、n − 1 で割ってその分を補います。
上の 8 個 を n − 1 = 7 で割ると、分散は 32 ÷ 7 ≒ 4.57、標準偏差は約 2.14 です。道具によって、どちらが既定かが違います。
道具 n で割る n − 1 で割る Python の statistics pstdevstdevNumPy std (既定の ddof=0)std(ddof=1)pandas std(ddof=0)std (既定の ddof=1)Excel STDEV.PSTDEV.S
同じデータでも NumPy と pandas で違う数が出るのは、この既定の違いのためです。
中央値は、値を小さい順に並べた真ん中の値です。個数が偶数なら、真ん中の 2 つ の平均です。平均と標準偏差は、とても大きな値が 1 つ 混ざるだけで大きく動きますが、中央値はほとんど動きません。応答時間のように、まれに極端に遅い値が出るデータでは、平均と中央値を両方見ます。
標準化 各値から平均を引いて標準偏差で割った数を、標準化した値 (z) と呼びます。z = (値 − 平均) ÷ 標準偏差 です。上のデータの 9 は (9 − 5) ÷ 2 = 2 で、平均より標準偏差 2 つ 分大きい値です。単位の違うデータ (ミリ秒とバイト) も、z にすれば同じ物差しで比べられます。テストの偏差値は、この z を 50 + 10z に直した数です。
範囲との違い 散らばりを最大値 − 最小値 (範囲) で測ることもできます。計算は簡単ですが、両端の 2 つ の値だけで決まるので、外れ値が 1 つ あると大きく変わります。標準偏差は全部の値を使いますが、偏差を 2 乗するので、やはり外れ値に引っ張られます。外れ値が多いデータでは、中央値と、真ん中の半分の幅 (四分位範囲) を使います。
動かして確かめる 1 本 目は、表の計算をそのまま Python で書き、statistics の答えと照らします。statistics は Python に最初から入っている統計の道具です。
動かす 表の計算と statistics を比べる
実行すると、次の通りに出ます
平均 5.0
偏差の合計 0.0
n で割る 4.0 2.0
pstdev 2.0
n-1 で割る 4.571
stdev 2.138偏差の合計は 0 で、n で割った標準偏差 2.0 は pstdev と同じです。n − 1 で割ると約 2.138 で、stdev と同じです。
2 本 目は、平均が同じ 2 つ の API の応答時間を比べます。乱数の種 (seed) を決めておくと、何度動かしても同じ値が出ます。
動かす 平均が同じで散らばりが違う
実行すると、次の通りに出ます
A 平均 100 標準偏差 2.9
B 平均 100 標準偏差 58.9平均はどちらも約 100 ミリ秒ですが、標準偏差は A が約 3、B が約 59 です。平均だけを見ていたら、B の揺れに気付けません。
3 本 目は、遅い値が 1 つ 混ざったときです。
動かす 外れ値 1 つで平均と中央値はどう動くか
実行すると、次の通りに出ます
10 個
平均 100
中央値 100.0
標準偏差 2
11 個
平均 364
中央値 100
標準偏差 8343,000 ミリ秒の値が 1 つ 入るだけで、平均は 100 から約 364 に、標準偏差は約 2 から約 834 に跳ねました。中央値は 100 のままです。
4 本 目は、分散の別の求め方です。分散は「2 乗の平均 − 平均の 2 乗」でも出せますが、大きな数に小さな散らばりが乗ったデータで小数を使うと、答えが崩れます。
動かす 2 乗の平均から引くと崩れる
実行すると、次の通りに出ます
0e+00 引き算 22.5 正しい 22.5
1e+08 引き算 22.0 正しい 22.5
1e+09 引き算 0.0 正しい 22.5散らばりは同じなので、分散はどれも 22.5 のはずです。10 億 (1e9) を足したデータでは、引き算の答えが 0.0 になりました。小数は有効な桁が約 15〜17 桁で、10 億の 2 乗の差を取ると小さな散らばりの桁が消えるためです。statistics の pvariance は、この崩れが出ないように計算するので 22.5 が出ます。自分で書くときは、2 乗の平均から引く式を使わず、先に平均を引いてから 2 乗します。平均を引くと値が小さくなり、桁が消えにくくなります。
平均と 標準偏差で外れる所 個数が 0 と 1 データが 1 個 のとき、n で割る標準偏差は 0 です。n − 1 で割ると 0 で割ることになるので、 Python の stdev はエラーを出します。データが 0 個 なら、平均も標準偏差も決まりません。
動かす 0 個と 1 個のデータ
実行すると、次の通りに出ます
pstdev [5] 0.0
stdev [5] エラー
pstdev [] エラー
stdev [] エラー 監視 の集計で、ある時間帯の件数が 0 か 1 になることはよくあります。その場合を先に分けて書きます。
標準偏差が 同じでも形は違う 標準偏差は散らばりの大きさだけを表し、形は表しません。左右対称の山でも、ほとんどが速く少しだけ極端に遅いデータでも、同じ標準偏差になることがあります。「平均 ± 標準偏差 2 つ の中に約 95% 」は、正規分布 (5-2) に近い形のときの話で、どんなデータでも成り立つわけではありません。どんな形でも言えるのは、チェビシェフの不等式による「平均 ± 標準偏差 k 個の外にあるのは、多くても 1/k^2」までです (k = 2 なら多くても 25% )。
単位が 違う 散らばりを比べる ミリ秒の標準偏差とバイトの標準偏差は、数を並べても比べられません。比べるなら、標準化した z か、標準偏差を平均で割った数 (変動係数) を使います。
仕事で どう使うか 平均と標準偏差を使う場面は、次の通りです。
応答時間の揺れ。平均と一緒に標準偏差か、遅い方から 1% の値 (99 パーセンタイル) を見る。平均だけのダッシュボードは、一部の利用者の遅さを隠す 監視 のしきい値。「直近の平均 + 標準偏差 3 つ 」を超えたら知らせる、のように決める。外れ値が多いデータでは、中央値を使う方法に替える 機械学習 の前処理。特徴量を標準化 (平均 0、標準偏差 1) してから学習させると、桁の大きい特徴量に引っ張られにくくなる A/B テスト。2 つ の群の平均の差が、散らばりに比べて大きいかを見る。散らばりが大きいほど、差を言い切るには多くのデータが要る 性能の測り方。ベンチマークを何回か走らせ、平均と標準偏差を並べて書く。1 回 だけの数は、揺れの中の 1 点 にすぎない よくある問い 標準偏差は どうやって 求めますか 平均を出し、各値から平均を引いて偏差を出し、偏差を 2 乗して平均した数 (分散) のルートを取ります。2, 4, 4, 4, 5, 5, 7, 9 なら、平均 5、偏差の 2 乗の合計 32、分散 32 ÷ 8 = 4、標準偏差 2 です。
分散と 標準偏差の 違いは何ですか 標準偏差は分散のルートです。分散は単位が 2 乗になるので、元のデータと並べて読むときは標準偏差を使います。計算の途中や、式で扱うときは分散の方が便利です。
標準偏差が 大きいと どう いう 意味ですか 値が平均から離れて散らばっているという意味です。応答時間なら、速いときと遅いときの差が大きく、利用者によって体感が違います。標準偏差が 0 なら、全部の値が同じです。
試験の 形で 練習するには 統計検定 2 級の練習問題で、出題範囲の全体から選んだ問題を 4 択の形で解けます。分散、標準化、変動係数を試験の形で解くなら、分野別クイズの「1 変数データ」が向いています。この回はコードで意味を確かめる回、練習問題は試験の形で解く場所です。
確認クイズ 答えだと 思う 選択肢を 押すと、 その場で 正誤と 理由が 開きます。 3 問すべてに 正しく 答えると、 この 回は 修了で、 石が 緑に 変わります (この 端末の ブラウザに 残ります)。 間違えた 問いは、 あとから 解き直せます。
1 問目
10, 12, 14, 16, 18 の 5 個 のデータを、母集団の全部とみなします。標準偏差に一番近いのはどれですか。
2 問目
応答時間のデータに、まれに極端に遅い値が混ざります。ふだんの速さを表すのに、平均より向いている数はどれですか。
3 問目
このコードを動かすと何が出ますか。
import statistics as st
d = [3, 3, 3, 3]
print(st.pstdev(d))説明課題 「平均が同じ 2 つ の API でも、標準偏差を見ないと判断を誤る理由」を、応答時間の例を使って 3 文で説明してください。書いたら、下の模範解答を開いて比べてください。
あなたの説明
模範解答 模範解答を開く 自分の 説明を 書いてから 開いて、 比べてください。
平均は全部の値をならした数なので、いつも 100 ミリ秒前後の API と、0 ミリ秒近くから 200 ミリ秒近くまで揺れる API が同じ平均になることがある。標準偏差は値が平均からどれだけ散らばっているかを表すので、前者は小さく、後者は大きく出る。揺れが大きい API は一部の利用者にとても遅く感じられるので、平均と標準偏差を並べて見る必要がある。
平均だけでなく 散らばりも 見られると、 「平均は 速いのに、 ときどき遅い」 処理に 気付けます。 いまの 自分が 転職までの 道の どの 段に いるかは、 転職診断で 確かめられます。
もっと深く この 回の 続きを、 ゆめさくの コースの 章や 道具で 深められます。 頁の 中の 確認クイズに 答えた あと、 手を 動かす量を 増や したい ときに 使ってください。
一次資料 どれも 2026年 10月 30日 に開いて、題と中身を確かめました。