論文一覧に戻る 📚 用語解説(ジャストインタイム型データサイエンス教育)
標準誤差
Standard Error (SE)
「標本平均がどれくらいブレるか」を測る量。標準偏差をサンプルサイズの平方根で割ったもの。
推測統計SESE標準誤差(SE)

🔖 キーワード索引 — 拡張版

標準誤差(standard error, SE)に関する用語を、 標本統計量別・推定法・関連概念 別に索引化します。

カテゴリキーワード(日本語)キーワード(英語)
基本概念標準誤差、 標準偏差、 標本分布、 推定量の精度standard error, sampling distribution, precision
標本統計量別 SE平均のSE、 比率のSE、 回帰係数のSE、 差のSESE of mean, proportion, regression coef
推定法解析的SE、 ブートストラップ、 ジャックナイフ、 デルタ法analytical SE, bootstrap, jackknife, delta method
頑健な SEロバスト標準誤差、 クラスター頑健、 ニューウェイ-ウェストrobust SE, HC0-HC3, cluster, Newey-West
関連指標信頼区間、 t統計量、 z統計量、 p値、 検出力CI, t/z statistic, p-value, power
実装scipy.stats.sem、 statsmodels、 pingouin、 bootstrapscipy.stats.sem, statsmodels, pingouin, bootstrap

💡 30秒で分かる結論

🍰 まずはやさしく

推定値のブレを測るものさしです。

答えがどれくらい正確かを知るために使います。

部活の平均点などが、調査のたびに変わる例です。

この章では標準誤差の意味と使い方を学びます。

📖 もっと詳しく

標準誤差(Standard Error, SE)は「もし同じ調査を何度も繰り返したら、 推定値はどれくらいブレるか」を測る量です。 標準偏差(SD)と紛らわしいですが、 別物です。

SD vs SE

標本平均の SE は $\sigma/\sqrt{n}$ で計算され、 n が大きいほど小さくなります。 SD は n が変わっても変わりません(データの本質的な広がりだから)。

SE の用途:(i) 信頼区間 = 推定値 ± 1.96·SE、 (ii) t統計量 = 推定値 / SE、 (iii) Wald 検定の分母。 ほぼ全ての推測統計の中核です。

📍 あなたが今見ているもの

🍰 まずはやさしく

分析結果に添えられる数値のことです。

信頼区間などの計算の出発点になります。

スマホで見る統計データの表に出てくる数値です。

ここでは定義から実装までを順番に解説します。

論文表で各係数の隣に出てくる「std err」「SE」の列。 p値や信頼区間の計算の出発点。

標準誤差 とは:「標本平均がどれくらいブレるか」を測る量。標準偏差をサンプルサイズの平方根で割ったもの。

本ページでは「standard error」を扱う。 統計データ分析コンペティション (2026) の教材で、 SSDSE-B-2026 (47 都道府県 × 複数年 × 100 超列) の実データを使った再現可能な学習を目指す。

「standard error」は統計・データサイエンスの体系における重要概念のひとつ。 本ページは「定義・直感・数式・実装・落とし穴・関連手法」の 6 視点で構成され、 各視点は独立して読めるが順序通り読むと体系的な理解が得られる。

🎨 直感で掴む

🍰 まずはやさしく

推定の「自信のなさ」を表す数値です。

データのばらつきと、平均のブレを分けるために使います。

県ごとの違いか、平均値のズレかの違いです。

図にあるエラーバーの意味について詳しく読みます。

標準誤差
標準誤差が大きいほど CI の「ひげ」が長くなる。 推定の不確実性が大きい状態。

🎨 SE と SD の違いを徹底的に切り分ける

標準誤差 (SE) と標準偏差 (SD) は記号も似ていて混同されやすいが、 「何のばらつき」を測るかが全く違う。 SD は「個々のデータ点のばらつき」、 SE は「推定量(例えば平均)のばらつき」。 47 都道府県の年間出生数を考えると、 SD は「県ごとの出生数の散らばり」、 SE は「47 県平均という値そのものの不確実性」になる。

観点 標準偏差 (SD) 標準誤差 (SE)
対象個々のデータ点推定量(平均、 回帰係数等)
標本サイズの効果n が増えても収束(母集団 SD へ)n が増えると → 0 へ
用途分布の幅を記述推定の精度を表現、 CI 構築
公式$\sqrt{\sum (x_i - \bar x)^2 / (n-1)}$$SD / \sqrt n$
論文の図エラーバー(個体差)エラーバー(推定の幅)

論文・スライドで エラーバーが SD か SE かを明示しないのは重大な誤り。 SD のエラーバーは大きく、 SE のエラーバーは小さく見える。 同じデータでも見え方が変わるので注意。

🎨 概念図で押さえる

標準誤差 (SE) は 「標本統計量のばらつき」 = σ/√N。 「データのばらつき (SD)」とは別物。 以下 3 図で「SD と SE の違い」「N と SE の縮小」「SE が決める CI 幅」を可視化する。

図 1: 標準偏差 (SD) と標準誤差 (SE) の違い

原データ (個人レベル) SD ≈ 12 標本平均の分布 SE ≈ 1.2 (= 12/√100)

SD はデータの散らばり、 SE は標本平均の散らばり。 N=100 なら SE は SD の 1/10。 SE は推定の精度を表す。

図 2: N が増えると SE は 1/√N で縮む

SE N (標本サイズ) N=10, SE=3.8 N=50, SE=1.7 N=200, SE=0.85 N=1000, SE=0.38 SE = σ/√N

→ N を 4 倍に増やすと SE は半分 (1/√4)。 N を 100 倍にしても SE は 1/10 にしかならない (収穫逓減)。 「もう少しデータを増やす」コストの判断材料になる。

図 3: SE が決める信頼区間の幅

SE=2.0 幅 ±3.92 SE=1.0 幅 ±1.96 SE=0.5 幅 ±0.98

95% CI 幅 = ±1.96 × SE。 SE を半分にすれば CI も半分。 SE は「推定の精度」を直接 CI に翻訳する蝶番。

🧪 理解度チェック — 標準誤差

以下 5 問。 すべて「SE = SD/√n」の式と本文で確認できる。

  1. Q1. 標準偏差(SD)と標準誤差(SE)の根本的な違いを 1 行で述べよ。 ヒント: SD は何のばらつき、 SE は何のばらつき?
  2. Q2. サンプルサイズ n を 4 倍にすると SE はいくつになるか。 数式の根拠を示せ。
  3. Q3. SSDSE-B-2026 で 47 都道府県平均人口を求めるとき、 母集団 = 47 都道府県全件なので SE は厳密にはどう扱うべきか(有限母集団補正)。
  4. Q4. 95% 信頼区間の幅 = ±1.96×SE になる根拠は、 何の分布の何 % 点だからか?
  5. Q5. 中心極限定理が成り立たない状況(n 小さい・分布が歪む)で SE はそのまま使えるか?

📊 サンプルサイズと SE の関係(補足)

SE vs SD の対比

SE は n が増えると √n の速さで縮む。 上図は SD は変わらない一方、 SE だけが小さくなる「精度の改善」を視覚化したもの。

n√nSE = 100/√n95% CI 幅
103.1631.6±62.0
10010.010.0±19.6
100031.63.16±6.20
100001001.00±1.96

→ n を 100 倍にすると SE は 10 倍小さくなる(√100=10)。 「精度を 2 倍にしたければ n を 4 倍にせよ」が黄金律。

関連: 信頼区間 / サンプルサイズ / 仮説検定 / p 値

📐 数式

🍰 まずはやさしく

標準偏差をサンプルサイズの平方根で割った値です。

計算して、推定の精度を数字で出すために使います。

食費のデータから平均のばらつきを出す例です。

なぜこの数式になるのか、その理由を読みます。

【一般的な定義】
$$SE(\hat{\theta}) = \sqrt{\widehat{\mathrm{Var}}(\hat{\theta})}$$
推定量の分散の推定値の平方根。 平均なら $\sigma/\sqrt{n}$、 回帰係数なら別の式で計算

📐 標準誤差の数式

標本平均の標準誤差

$$ SE_{\bar{x}} = \frac{\sigma}{\sqrt{n}} \approx \frac{s}{\sqrt{n}} $$

SSDSE 食料費の例

「47都道府県データから推定した母平均は、 ±0.852千円程度のばらつきで信頼できる」と読めます。

🎯 なぜ √n で割るのか?

中心極限定理(CLT)から、 標本平均の分散は σ²/n に等しい:

$$ \text{Var}(\bar{X}) = \frac{\sigma^2}{n} \Rightarrow SE = \sqrt{\text{Var}(\bar{X})} = \frac{\sigma}{\sqrt{n}} $$

実用的含意

💡 「精度を上げるには標本を大きくしろ」が常識だが、 √n でしか改善しないため、 巨大なコスト増加。 設計時に SE の目標値とサンプルサイズを慎重に決めるべき。

📐 クラスター・階層構造での SE

独立性が崩れる場合、 通常の σ/√n では SE を過小評価。 例:

クラスター ロバスト標準誤差(CR-SE)や混合効果モデルで対処。

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) A1303(65歳以上人口) 北海道 5,092,000 1,681,000 東京都 14,086,000 3,205,000 沖縄県 1,468,000 350,000 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# ── この抜粋で使うデータを用意します ──
import numpy as np
import pandas as pd
import statsmodels.api as sm

import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == 2023]        # 2023 年の 47 都道府県
X = sm.add_constant(df[['A1101']].astype(float))
y = df['A1303'].astype(float)
# クラスターは「地方ブロック」。地域コードの上 2 桁から作る
_no = df['Code'].str[1:3].astype(int)
cluster_id = np.select(
    [_no <= 7, _no <= 14, _no <= 23, _no <= 30, _no <= 35, _no <= 39],
    ['北海道東北', '関東', '中部', '近畿', '中国', '四国'], default='九州沖縄')

# クラスター ロバストSE
model = sm.OLS(y, X).fit(cov_type='cluster', cov_kwds={'groups': cluster_id})
print(model.bse)  # クラスター調整後のSE

📐 標準誤差の導出(標本平均の場合)

独立同分布 (i.i.d.) なデータ $X_1, \dots, X_n$ の標本平均 $\bar X = \frac{1}{n}\sum X_i$ の分散は分散の和の公式から:

$$ \mathrm{Var}(\bar X) = \mathrm{Var}\left(\frac{1}{n}\sum_{i=1}^n X_i\right) = \frac{1}{n^2} \sum_{i=1}^n \mathrm{Var}(X_i) = \frac{\sigma^2}{n} $$

標準偏差を取ると標準誤差:

$$ SE(\bar X) = \sqrt{\mathrm{Var}(\bar X)} = \frac{\sigma}{\sqrt n} $$

母分散 $\sigma^2$ が未知の場合は不偏分散 $s^2$ で推定し、 推定 SE は:

$$ \widehat{SE}(\bar X) = \frac{s}{\sqrt n},\quad s^2 = \frac{1}{n-1}\sum_{i=1}^n (X_i - \bar X)^2 $$

信頼区間(t 分布、 自由度 $n-1$):

$$ \bar X \pm t_{n-1,\, 1-\alpha/2} \cdot \widehat{SE}(\bar X) $$

回帰係数 $\hat\beta_j$ の標準誤差(OLS の場合):

$$ \widehat{SE}(\hat\beta_j) = \sqrt{\hat\sigma^2 \left[ (X^\top X)^{-1} \right]_{jj}} $$

📐 有限母集団修正と非独立データ

標本が母集団 N に対して無視できないほど大きい場合、 SE は 有限母集団修正係数 (FPC) をかけて補正する:

$$ SE_{\mathrm{FPC}} = \frac{\sigma}{\sqrt n} \cdot \sqrt{\frac{N - n}{N - 1}} $$

例:47 県のうち 30 県を標本とした場合、 $\sqrt{(47-30)/(47-1)} = \sqrt{17/46} = 0.608$ で SE を縮小する。 全数調査 $n = N$ なら SE = 0。

非独立データでの SE 補正:

📐 デザイン効果と実効サンプルサイズ

クラスター標本では「同じクラスタ内の観測値は似ている」ため、 実質的な情報量は名目 n より少ない。 デザイン効果 $deff$ で表すと:

$$ deff = \frac{\mathrm{Var}_{\mathrm{cluster}}(\bar X)}{\mathrm{Var}_{\mathrm{SRS}}(\bar X)} = 1 + (m - 1)\rho $$

$m$ は 1 クラスタ当たり平均サンプルサイズ、 $\rho$ は intra-cluster correlation (ICC)。 実効サンプルサイズは $n_{\mathrm{eff}} = n / deff$。 例えば 47 県 × 10 市 = 470 サンプル、 ICC=0.2 なら $deff = 1 + 9 \cdot 0.2 = 2.8$、 $n_{\mathrm{eff}} = 168$。

教育・医療・労働経済の現場データではほぼ必ずクラスター構造があり、 通常 SE では 有意性を過大評価 する。 マルチレベルモデル or クラスター頑健 SE で対処。

🔬 数式を「言葉」で読み解く

$\widehat{\mathrm{Var}}(\hat{\theta})$
推定量 $\hat{\theta}$ の分散の推定値
$\sigma$
母標準偏差(不明なので標本標準偏差 s で代用)
$n$
サンプルサイズ

🔬 数式を言葉で読み解く(標準誤差の導出)

$\mathrm{Var}(\bar X) = \sigma^2/n$ は「n 個のばらつきを平均することで、 個々のばらつき $\sigma^2$ が $1/n$ に薄まる」と読む。 これは独立性が前提。 もしデータが相関していたら(時系列、 クラスター標本)、 この公式は使えず SE は過小評価される。

$SE = \sigma/\sqrt n$ は「精度を 2 倍にしたければ、 n を 4 倍にする必要がある」を意味する。 √ がついているのが効いていて、 サンプルサイズの効果は逓減する。 1000 サンプルから 4000 サンプルに増やしても、 SE は半分にしかならない。 これがコスト対効果を考える際の重要ポイント。

「数式を言葉で読み解く」と、 $\widehat{SE}$ の hat はあくまで推定であって、 真の SE は未知。 推定 SE には自分自身の不確実性がある。 t 分布を使うのはこの「SE の不確実性」を取り込むため。 n が小さいほど t 分布の裾は厚くなり、 信頼区間は広がる。

回帰係数の SE の公式 $\sqrt{\hat\sigma^2 [(X^\top X)^{-1}]_{jj}}$ は、 「データの誤差分散 × 説明変数の構造」の積。 多重共線性があると $X^\top X$ がほぼ特異になり対角成分が大きくなる → SE が爆発。 これが「VIF が高いと係数の SE が膨らむ」のメカニズム。

🔬 数式を言葉で読み解く(ブートストラップと SE)

ブートストラップ標準誤差は「データから復元抽出で B 個の擬似標本を作り、 各擬似標本で推定量 $\hat\theta^{*b}$ を計算し、 その標準偏差を SE とみなす」というアイデア。 数式で書くと:

$$ \widehat{SE}_{\mathrm{boot}}(\hat\theta) = \sqrt{\frac{1}{B-1} \sum_{b=1}^B \left(\hat\theta^{*b} - \bar{\hat\theta^*}\right)^2} $$

これを言葉で読むと「データを観測値の経験分布とみなし、 そこから何度も再標本化して推定量の散らばりを測る」。 利点は 分布の形を仮定せずに済む こと。 例えば中央値や 95 パーセンタイルなど、 解析的 SE が難しい推定量にも適用できる。

B は 1,000〜10,000 程度を取る。 B が小さいと SE 自体の MC 誤差が大きい。 47 都道府県のように $n$ が小さい場合、 ブートストラップは 「観測されなかった裾」を見落とす 傾向があるので注意(例:もっと大きい県があり得たかもしれないが、 標本にないので再現できない)。

ブートストラップ CI には percentile, BCa, basic, percentile-t など複数の方式がある。 BCa (bias-corrected and accelerated) は歪んだ分布に対して最も性能が良い。 単純な percentile 法は CI のカバレッジが低くなることがある。

🧮 SSDSE-B での標準誤差 — 実値計算例

SSDSE-B-2026(2023 年)から「47 都道府県の総人口」を 1 つの標本とみなし、 母平均の標準誤差を計算します。

① 基本統計量

統計量説明
n47標本サイズ
264.6 万人標本平均
SD279.8 万人標本標準偏差
SE = SD/√n279.8/√47 ≈ 40.8 万人平均の標準誤差

② 95%信頼区間

自由度 df = n − 1 = 46、 t₀.₀₂₅,₄₆ ≈ 2.013
CI = x̄ ± t · SE = 264.6 ± 2.013 × 40.8 = (182.4, 346.7) 万人
母平均は95%の確率で この区間に含まれると解釈。

③ サンプルサイズと SE の関係

nSE95% CI 幅
1088.5±178
4740.8±82
10028.0±56
10008.85±17.8

💡 n を4倍にしないと SE は半分にならない(SE は √n に反比例)。 精度を上げるコストは 非線形に増大 する。

📝 より正確な分析: SSDSE-B-2026 には「平均所得」列は収録されていないため、 本節の実値例は実在する総人口 A1101(2023 年・47 都道府県)で再計算している(skiprows=[1] でラベル行を除外し、 年度 2023 で抽出)。 SD が平均より大きい(CV≈1.06)のは東京都など巨大県による右裾の偏りで、 これ自体が実データの重要な特徴。

🧮 SSDSE-B-2026 で 47 県の平均人口とその SE

最新年度の 47 都道府県人口の平均と SE を計算する。 47 都道府県は「47 県という有限母集団全体」とも見なせるが、 ここでは「日本の地域 × 時間 の母集団からの 47 標本」と仮定して扱う。

このコードでやること:SSDSE-B-2026 から 47 都道府県の最新年度総人口を取り出し、 平均・SD・SE・95% 信頼区間を scipy.stats.semt 分布で計算する。

📥 入力データ (SSDSE-B-2026 抜粋):

SSDSE-B-2026 地域コード 都道府県 総人口 2023 R01000 北海道 5,092,000 2023 R02000 青森県 1,184,000 2023 R03000 岩手県 1,163,000 ... 2023 R47000 沖縄県 1,468,000
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import pandas as pd
import numpy as np
from scipy import stats

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
latest = df[df['SSDSE-B-2026'] == 2023]
pop = latest['A1101'].values
n = len(pop)
mean = pop.mean()
sd = pop.std(ddof=1)
se = stats.sem(pop)  # = sd / sqrt(n)
t_crit = stats.t.ppf(0.975, df=n-1)
ci_low, ci_high = mean - t_crit*se, mean + t_crit*se
print(f'n = {n}')
print(f'平均 = {mean:,.0f}')
print(f'SD   = {sd:,.0f}')
print(f'SE   = {se:,.0f}')
print(f't (df={n-1}, 0.975) = {t_crit:.3f}')
print(f'95% CI = ({ci_low:,.0f}, {ci_high:,.0f})')

📤 実行すると次の出力が得られる:

n = 47 平均 = 2,645,809 SD = 2,797,551 SE = 408,065 t (df=46, 0.975) = 2.013 95% CI = (1,824,417, 3,467,200)

💬 SD ≈ 276 万人(県ごとの大きなばらつき)に対し、 SE ≈ 40 万人(平均推定の不確実性)。 比率は √47 ≈ 6.86 倍で、 公式 $SE = SD/\sqrt n$ と完全に一致。 95% CI は「日本の県人口平均は 182 万〜347 万人の間」と読める(東京都の影響で歪んでいる点に注意)。

🧮 SE と変動係数 (CV) の比較表

47 都道府県の各指標について平均・SD・SE・CV を出すと、 「どの指標が県差が大きいか」「どの推定が精度高いか」が並列に見える。

このコードでやること:SSDSE-B-2026 の 4 指標について平均・SD・SE・変動係数 CV=SD/平均 を一括計算し、 推定精度と県差を比較する。

📥 入力データ: 47 県 × 4 指標 (総人口、 高齢人口、 出生数、 死亡数)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import pandas as pd
from scipy import stats

cols = {'総人口': 'A1101', '高齢人口': 'A1303', '出生数': 'A4101', '死亡数': 'A4200'}
rows = []
for name, c in cols.items():
    x = latest[c].values
    mean = x.mean()
    sd = x.std(ddof=1)
    se = stats.sem(x)
    cv = sd / mean
    rows.append((name, f'{mean:,.0f}', f'{sd:,.0f}', f'{se:,.0f}', round(cv, 3))
out = pd.DataFrame(rows, columns=['指標','mean','SD','SE','CV'])
print(out.to_string(index=False))

📤 実行例:

指標 mean SD SE CV 総人口 2,645,809 2,797,551 408,065 1.057 高齢人口 770,830 693,839 101,207 0.900 出生数 15,474 17,155 2,502 1.109 死亡数 33,512 29,083 4,242 0.868

💬 総人口 (CV=1.06)・出生数 (CV=1.11) は CV が 1 を超えており「SD が平均より大きい」状態 = 東京都など巨大県が分布を歪めている。 4 指標では出生数の CV=1.11 が最も大きく、 死亡数 (0.87)・高齢人口 (0.90) は相対的に県差が小さい(高齢化・死亡は全県に広く進むため)。 SE は単位を持つので大小比較しにくいが、 SE/平均(=CV/√n)で標準化すれば「平均の相対精度」になる。

🧮 SE から必要サンプルサイズを逆算

「マージン・オブ・エラー $\pm M$ で平均を推定したい」と決めれば、 必要サンプルサイズが逆算できる。 95% CI で $M = 1.96 \cdot \sigma/\sqrt n$ より:

$$ n \ge \left( \frac{1.96 \cdot \sigma}{M} \right)^2 $$

このコードでやること:47 県人口データから $\sigma$ を推定し、 目標誤差 ±10 万、 ±5 万、 ±1 万人での必要サンプル数を計算する。

📥 入力データ: 47 県の総人口(事前情報)。

1
2
3
4
5
6
7
import numpy as np

sigma_hat = pop.std(ddof=1)
print(f'推定 σ = {sigma_hat:,.0f}')
for M in [100_000, 50_000, 10_000]:
    n_req = (1.96 * sigma_hat / M) ** 2
    print(f'M = ±{M:,}  →  必要 n = {n_req:,.1f}')

📤 実行例:

推定 σ = 2,797,551 M = ±100,000 → 必要 n = 3,006.5 M = ±50,000 → 必要 n = 12,026.2 M = ±10,000 → 必要 n = 300,654.9

💬 ±10 万人精度なら 3,007 県相当、 ±1 万人精度なら 30 万県相当の標本が必要。 県のばらつきが大きいので「平均を正確に推定する」のは本質的に困難。 これが「東京都を除外する」「人口層別に層化抽出する」といったデザインの動機。

🧮 数式に値を入れて手で計算する: 標準誤差 SE

合成データで標本平均の SE を計算する。

Step 1: パラメータ

σ = 10 n = 25 SE = σ/√n = 10/5 = 2.0

Step 2: n 別 SE

nSE
252.0
1001.0
4000.5
25000.2

🐍 Python で再現

1
2
3
4
5
import numpy as np
sigma = 10
n = np.array([25, 100, 400, 2500])
SE = sigma / np.sqrt(n)
print(f"SE: {SE}")

📤 実行結果

SE: [2. 1. 0.5 0.2]

💬 手計算 (Step 2) と Python 出力が完全一致。

🐍 Python での標準誤差

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) 北海道 5,092,000 東京都 14,086,000 沖縄県 1,468,000 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import numpy as np

# x はこのあとのブロックで使う 47 都道府県の総人口
import pandas as pd
_d = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
x = _d[_d['SSDSE-B-2026'] == 2023]['A1101'].astype(float).values

import numpy as np
from scipy import stats

# 標本平均のSE
data = np.array([45, 50, 55, 60, 65])
se = stats.sem(data)              # scipy のヘルパー
se_manual = data.std(ddof=1) / np.sqrt(len(data))
print(f'SE = {se:.4f}')

# 比率のSE
p_hat = 30 / 100  # 成功割合
n = 100
se_prop = np.sqrt(p_hat * (1 - p_hat) / n)

# 回帰係数のSE(statsmodels)
import statsmodels.api as sm
X = sm.add_constant(x)
model = sm.OLS(y, X).fit()
print(model.bse)  # 各係数のSE

🤖 機械学習での標準誤差

① 回帰係数のSE

線形回帰でも、 各係数 β_j の標準誤差が計算されます。 これを使って t統計量と p値が出ます:

$$ t_j = \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} $$

② アンサンブルの予測SE

ランダムフォレストでは、 N本の木の予測の標準偏差が予測の不確実性(SE)として使えます。

③ ブートストラップによるSE

任意のモデルで、 ブートストラップサンプルから繰り返し学習・予測し、 その分散から SE を推定。

🚧 SE の落とし穴

1️⃣ SD と SE を混同しない

SD はデータの散らばり、 SE は推定値のばらつき。 グラフのエラーバーが SD か SE かは必ず明記。

2️⃣ サンプリングが独立か

σ/√n は独立同分布のサンプリングを前提。 時系列、 クラスター内データでは違う SE 公式が必要。

3️⃣ 小標本ではSEも不安定

n=5〜10 では、 s 自体がぶれるため SE もぶれます。 ブートストラップでより堅実な推定を。

📜 標準誤差の歴史

🔗 「標準誤差」と他の概念の関係を深掘り

① 平均推定の精度

標本平均 x̄ の精度はSE = σ/√n で測ります。 これは標本平均の標準偏差でもある。

② 信頼区間との関係

95%CI ≈ x̄ ± 1.96 × SE。 つまり SE が分かれば直接 CI が作れる。

③ 仮説検定との関係

t統計量 = (推定値 - 仮説値) / SE。 SE が小さいほど検出力が高い。

④ よくある混同 — SD vs SE vs CI

指標 意味 グラフで使う場面
SD(標準偏差)データ1個のばらつき分布の広がりを示したい時
SE(標準誤差)推定値のばらつき平均の精度を示したい時
95%CI真値の入る範囲不確実性を直感的に示したい時

論文・報告で「エラーバー」を描く時は、 何を表しているか必ず明記。 SD でも SE でも CI でも見た目は似ているが意味が違う。

⑤ 大標本での SE の使い方

n > 30 ではCLTが効くため、 SE × 1.96 ≈ 95%CI が一律に使えます。 小標本では t分布で補正が必要。

✅ 実務チェックリスト — 推測統計を使う前に

1. データの確認

2. 検定・推定の設計

3. 結果の報告

4. 解釈の注意

🐍 Python 実装バリエーション — scipy / statsmodels / pingouin / bootstrap

① scipy.stats.sem(最も簡単)

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) 北海道 5,092,000 東京都 14,086,000 沖縄県 1,468,000 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd
from scipy.stats import sem, t

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1]).query('`SSDSE-B-2026` == 2023')
x = df['A1101']

se = sem(x)  # ddof=1 がデフォルト
print(f'SE = {se:.3f}')

# 95% 信頼区間
n = len(x)
ci_half = t.ppf(0.975, df=n-1) * se
print(f'95% CI: ({x.mean()-ci_half:.2f}, {x.mean()+ci_half:.2f})')

② numpy で手動計算(教育目的)

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) 北海道 5,092,000 東京都 14,086,000 沖縄県 1,468,000 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import numpy as np
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1]).query('`SSDSE-B-2026` == 2023')
x = df['A1101'].to_numpy()

n = len(x)
sd = x.std(ddof=1)  # 標本SD
se = sd / np.sqrt(n)
print(f'SD={sd:.2f}, n={n}, SE={se:.3f}')

③ statsmodels(回帰係数のSE)

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) A1303(65歳以上人口) 北海道 5,092,000 1,681,000 東京都 14,086,000 3,205,000 沖縄県 1,468,000 350,000 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import statsmodels.api as sm
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1]).query('`SSDSE-B-2026` == 2023')
X = sm.add_constant(df[['A1101']])
y = df['A1303']

# 通常のSE
ols = sm.OLS(y, X).fit()
print(ols.bse)  # 係数のSE

# ロバストSE(HC3)
robust = sm.OLS(y, X).fit(cov_type='HC3')
print('HC3:', robust.bse)

# クラスター頑健SE
cluster = sm.OLS(y, X).fit(cov_type='cluster',
                            cov_kwds={'groups': df['Prefecture']})
print('cluster:', cluster.bse)

④ ブートストラップ標準誤差

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) 北海道 5,092,000 東京都 14,086,000 沖縄県 1,468,000 …(全 47 行)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from scipy.stats import bootstrap
import numpy as np
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1]).query('`SSDSE-B-2026` == 2023')
x = df['A1101'].to_numpy()

res = bootstrap((x,), np.mean, n_resamples=10000,
                confidence_level=0.95, random_state=0)
print(f'ブートストラップSE: {res.standard_error:.3f}')
print(f'CI: {res.confidence_interval}')

⑤ pingouin(効果量・CI付き)

1
2
3
4
import pingouin as pg
res = pg.compute_bootci(x, func='mean', n_boot=10000,
                       confidence=0.95, seed=0)
print(f'95% CI (bootstrap): {res}')

⑥ エラーバー付きプロット

1
2
3
4
5
6
7
import seaborn as sns
import matplotlib.pyplot as plt

# 群ごとの平均±SE をプロット
sns.barplot(data=df, x='Prefecture', y='A1101',
            estimator='mean', errorbar=('ci', 95))  # 自動で SE→CI
plt.show()

🐍 ブートストラップで SE を推定

このコードでやること:分布の仮定なしで SE を計算するブートストラップを scipy.stats.bootstrap で実行し、 解析公式の SE と比較する。

📥 入力データ: 47 県の総人口(上記と同じ)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import numpy as np
from scipy.stats import bootstrap

rng = np.random.default_rng(0)
res = bootstrap((pop,), np.mean, n_resamples=10000,
                confidence_level=0.95, method='percentile',
                random_state=rng)
print(f'bootstrap SE         = {res.standard_error:,.0f}')
print(f'bootstrap 95% CI     = ({res.confidence_interval.low:,.0f}, '
      f'{res.confidence_interval.high:,.0f})')
print(f'(解析的 SE = {se:,.0f}、 95% CI = ({ci_low:,.0f}, {ci_high:,.0f}))')

📤 実行例:

bootstrap SE = 401,690 bootstrap 95% CI = (1,927,700, 3,517,038) (解析的 SE = 408,065、 95% CI = (1,824,417, 3,467,200))

💬 ブートストラップ SE と解析的 SE はほぼ一致 (約 2% 差)。 ただし CI は若干非対称(東京都という強い右裾の外れ値があるため)。 ブートストラップは 分布の歪み を自然に取り込めるのが強み。 中央値・分位数・相関係数など、 解析公式が複雑な場合に特に有用。

🐍 回帰係数の SE を実データで確認

このコードでやること:47 都道府県で「総人口 → 高齢人口」の単回帰を statsmodels.OLS で当てはめ、 係数の SE と t 統計量を出力する。

📥 入力データ: 47 県の総人口 (x) と高齢人口 (y)。

1
2
3
4
5
6
7
import statsmodels.api as sm

x = latest['A1101'].values
y = latest['A1303'].values
X = sm.add_constant(x)
model = sm.OLS(y, X).fit()
print(model.summary().tables[1])

📤 実行例(抜粋):

coef std err t P>|t| [0.025 0.975] const 1.205e+05 1.9e+04 6.354 0.000 8.23e+04 1.59e+05 x1 0.2458 0.005 49.603 0.000 0.236 0.256

💬 傾き 0.246 の SE は 0.005、 t 統計量は 49.6 で極めて有意。 95% CI = [0.236, 0.256] は「総人口が 1 人多い県は高齢者が約 0.24〜0.26 人多い」と解釈できる。 SE が小さいのは説明変数のばらつきが大きい(東京都〜鳥取県の差)ため。 多重共線性があれば SE は膨らむ → VIF で確認。

🎮 触って理解する — 「SD は縮まない、 SE だけが √n で縮む」体感ラボ

姉妹ページの 標準偏差(データの散らばりそのもの)、 信頼区間(「95%」の意味)、 ブートストラップ(再標本化)に対し、 本ラボは 「SD と SE の区別」と「√n の壁」 に特化する。 母集団は架空データ(架空のテスト得点:平均 μ=60、 SD σ=12 の正規母集団)を使う。 乱数はシード付き擬似乱数なので、 リセット後は誰がいつ触っても同じ結果になる(再現可能)。

① 標本を抽出して「SD と SE」を目で切り分ける

スライダーで標本サイズ n を選び、 「標本を1つ抽出」を押すと上段に 個々のデータ点の散らばり(=SD の世界) と標本平均(▼)が表示される。 「1000回抽出」を押すと下段に 標本平均だけの分布 が積み上がる。 下段の山の幅(=SE)が上段よりずっと狭いこと、 そして 実測 SE が理論値 SD/√n とほぼ一致する ことを確かめてほしい。 n を大きくすると下段だけが痩せていき、 上段(SD)は痩せない。

n = 25 / 抽出回数 K = 0 / 母SD σ = 12(固定)
直近標本の SD = 理論 SE = σ/√n = 2.400実測 SE(K個の平均の SD)=

💡 観察ポイント:(i) 上段の点の広がり(SD≈12)は n を増やしてもほぼ変わらない。 (ii) 下段の山の幅(SE)は n=25 なら 12/5=2.4、 n=100 なら 12/10=1.2 と √n で痩せる。 (iii) K=1000 まで積むと実測 SE は理論値と数 % 以内で一致する(この一致こそが「SE は標本平均の SD」という定義の実演)。

② 「√n の壁」 — n を4倍にしても SE は半分にしかならない

下の曲線 SE = σ/√n 上をドラッグ(タッチ対応)またはスライダーで n を動かすと、 n(青)と 4n(橙) の 2 点が表示される。 どこを選んでも「n を 4 倍にすると SE はちょうど半分」。 精度を 10 倍にしたければ n は 100 倍必要 — これがデータ収集コストの「壁」になる。

nSE = 12/√n前の行からの改善追加コスト(観測数)
252.40
1001.20半分+75
4000.60半分+300
16000.30半分+1200

→ 「SE を半分に」するたびに追加コストは 4 倍ずつ膨らむ(収穫逓減)。 サンプルサイズ 設計で目標 SE から必要 n を逆算する意味がここにある。

③ エラーバーの読み方クイズ — SD 棒? SE 棒?

論文・スライドのエラーバーは SD・SE・95%CI のどれかで見た目の意味がまるで違う。 3 問で読み方を確認しよう(ボタンを押すと解説が出る)。

Q1. 「47 都道府県それぞれの値がどれだけ違うか(個体差)」を図で見せたい。 エラーバーに使うべきは?

Q2. 「2 群の平均値の推定精度(平均がどれだけ信頼できるか)」を比較して見せたい。 使うべきは?

Q3. 2 群の「平均 ± SE」のエラーバーが少し重なっている。 この 2 群の差は…

🧭 ラボから持ち帰る 3 つの視点(直感・落とし穴・発展)

直感:SD は「データの散らばり」を記述する記述統計の量、 SE は「推定量の精度」を測る推測統計の量。 ウィジェット①で n を増やしても上段(SD の世界)は広がったままなのに、 下段(SE の世界)だけが痩せる — この非対称こそ両者の本質的な違いで、 式では「SD は n に依存しない、 SE = SD/√n は n に反比例して縮む」に対応する。 下段の山が n が小さくても釣鐘型に近づくのは中心極限定理(本文「なぜ √n で割るのか」参照)の働きである。

落とし穴:①「SE が小さい=効果が大きい」ではない。 SE は n さえ増やせばいくらでも縮むので、 巨大データでは実質的に無意味な差でも t = 推定値/SE が巨大になり「有意」が出る。 精度(SE)と大きさ(効果量)は必ず分けて報告する。 ②エラーバーの誤読(クイズ③):SE 棒の重なりで有意差の有無を断定しない。 ③このラボの SE=SD/√n は独立な抽出が前提で、 クラスター構造や時系列相関があると過小評価になる(本文「クラスター・階層構造での SE」「有限母集団修正」参照)。

発展:中央値や分位数のように解析公式が面倒な統計量の SE は ブートストラップ(再標本化して推定量の SD を測る — 発想はウィジェット①の「1000回抽出」を実データの経験分布で代替したもの)で推定できる。 回帰では不均一分散に HC0〜HC3 のロバスト SE、 グループ内相関にはクラスター SE、 自己相関には Newey-West(HAC)を使う — いずれも「σ/√n が使えない状況で SE を正しく測り直す」技術であり、 本文の該当節で SSDSE-B の実値例を確認できる。

⚠️ よくある落とし穴

❌ SE と SD(標準偏差)の混同
SD:個々のデータが平均からどれだけ散らばっているか
SE:平均値という統計量がどれだけブレるか
n が大きいと SE は 0 に近づくが、 SD はそうではない。 グラフで誤差棒を出すときも、 SD と SE のどちらかを明示すべき。
❌ ロバスト標準誤差を考慮しない
等分散性が破れている場合、 通常の SE は過小評価されることが多い。 Huber-White 型のロバスト標準誤差(statsmodels の cov_type='HC1')を使うのが安全。
❌ 「SE が小さい」=「効果が大きい」ではない
SE は n を増やせばいくらでも小さくできる(√n で縮む)。 巨大データでは実質的に無意味な差でも t = 推定値/SE が大きくなり「有意」になってしまう。 SE・p値(精度の話)とは別に、 効果量(差の大きさそのものの話)を必ず併記する。

👁️ 直感 — 標準誤差は「標本平均のばらつき」

標準誤差(standard error, SE)は、 「同じ母集団から何度も標本を取り、 標本平均を計算したときのばらつき」を表します。

標準偏差と標準誤差

左:データそのもののばらつき(標準偏差 σ)。
右:標本平均のばらつき(標準誤差 SE)— ずっと小さい。

💡 SE と SD は別物。 SD は「データ1個のばらつき」、 SE は「平均のばらつき」。 SE は SD より√n 倍小さい

⚠️ 標準誤差の落とし穴 — 拡張版(実務で本当に困る5+件)

  1. 標準偏差(SD)と標準誤差(SE)の混同:SD はデータのばらつきを表し、 標本サイズに依存しない。 SE は推定量(多くは標本平均)のばらつきを表し、 標本サイズが大きくなるほど小さくなる。 論文の表で「Mean ± SD」と「Mean ± SE」を混同すると、 ばらつきの見え方が10倍以上違うことも。 グラフのエラーバーがどちらかを必ず明記する。
  2. 独立性を満たさないデータでの誤計算:クラスター化されたデータ(同一学校の生徒、 同一地域の都市、 同一被験者からの繰り返し測定)に通常の SE 公式を使うと、 SE が 過小評価 される。 クラスター頑健標準誤差や階層モデルが必要。 ICC(クラス内相関)が0でない場合は標準のSEは信用できない。
  3. 不均一分散下での誤った推定:回帰係数の SE は誤差分散が一定(等分散)を仮定。 不均一分散(heteroscedasticity)があると SE が偏って計算される。 ロバスト標準誤差(HC0、 HC1、 HC2、 HC3)に切り替えるか、 加重最小二乗法(WLS)を使う。 statsmodels では cov_type='HC3' で指定。
  4. 時系列データでの自己相関無視:時系列で SE を計算する際、 残差の自己相関を無視すると過小評価される。 Newey-West 標準誤差や HAC(Heteroskedasticity and Autocorrelation Consistent)標準誤差を使う。 株価リターンや GDP データではほぼ必須の補正。
  5. 小標本での t 分布の自由度誤り:n が小さいとき正規近似ではなく t 分布を使うべき。 信頼区間の幅は自由度に依存。 自由度を計算ミスすると SE 自体は正しくても CI が不正確になる。 Welch の t 検定では Satterthwaite の自由度近似が必要。
  6. ブートストラップの誤用:時系列や階層データに通常のブートストラップを適用すると、 構造を壊して SE が誤って小さく出る。 ブロックブートストラップ、 階層ブートストラップなど構造に応じた方法を使う。
  7. SE を「真の値からの距離」と勘違い:SE は 推定値が標本ごとにどれだけ変動するか を表すもので、 「真の値から x ± SE の範囲にある」とは厳密には言えない。 95% CI を計算してこそ意味がある。 「推定値±SE」だけでは34%(≈ ±1σ)程度の信頼度しかない。

⚠️ 標準誤差の落とし穴(深掘り)

  1. SE と SD の混同 — エラーバーが SE なら CI 風で狭く、 SD なら個体差で広い。 図の凡例に必ず明記。 査読でも最頻クラスの指摘。
  2. 独立性の暗黙仮定 — $SE = \sigma/\sqrt n$ は i.i.d. 前提。 同じ学校の生徒、 同じ家族、 同じ日のデータが混ざると過小評価。 クラスター頑健 SE か混合モデルを使う。
  3. 小標本での t 分布忘れ — n が小さいと正規近似が崩れる。 95% CI に 1.96 ではなく $t_{n-1,0.975}$ を使う。 n=10 なら 2.262 と 15% も広い。
  4. 有限母集団補正の見落とし — 全数の 10% 超を標本にしたら FPC で SE を縮小しないと過大評価。 経済センサスのような大規模調査でよく忘れる。
  5. 不均一分散下での通常 SE — 残差分散が説明変数で変わると、 通常 SE はバイアス。 HC3 ロバスト SE を使うのが現代の標準。
  6. SE が 0 でも「不確実性なし」ではない — モデルの定式化誤差、 母集団の取り違え、 測定誤差は SE に含まれない。
  7. Bootstrap の盲信 — 標本サイズが小さい、 重い裾、 強い依存があると bootstrap も信頼できない。 BCa, percentile-t など方式を選ぶ。
  8. 多重比較で SE の意味が薄れる — 100 個の係数の SE を見て「有意なもの」を選ぶと第 1 種の誤り率が膨大。 Bonferroni, FDR で補正。

🗺️ 概念マップ — 3つの視点で体系を理解する

標準誤差 がデータサイエンスの体系の中でどこに位置するかを、 3つの異なる視点で可視化します。 同じ情報でも見方を変えると気付きが変わります。

📍 体系階層のパス

🌐 統計・データサイエンス推測統計推定標準誤差

① 🔗 関係マップ — 「他の手法とどう繋がっているか」

中心に 標準誤差 を置き、 そこから 標準偏差・信頼区間・分散・標本サイズ・p値・回帰の有意性 など 計 17 個の用語へ、 前提・兄弟・発展形といった関係を矢印で結んでいます。 線がどちら向きかを見れば、 先に読むべき用語あとから読む用語が分かります。 ノードはドラッグで動かせ、 ホイールでズーム、 クリックでその用語のページへ遷移します。

凡例:現在の用語上位カテゴリ兄弟(並列)前提発展形応用先2階層先

② ⭕ 包含マップ — 「どのカテゴリに含まれているか」

大きな円が小さな円を包含する Circle Packing 図。 「標準誤差」は緑色でハイライト

📍現在地:統計・データサイエンス

③ 🌳 ツリーマップ — 「面積で見るボリューム比較」

長方形を入れ子に分割した Treemap 図。 各分野の規模感を面積で比較。 「標準誤差」は緑色でハイライト

🎯 3つのマップの使い分け

マップ 分かること こんな時に見る
🔗 関係マップ手法間の横の関係(前提→発展→応用)「次に何を学べばよい?」 学習順序の判断
⭕ 包含マップ分類体系の入れ子構造(上位⊃下位)「この手法はどんなジャンルに属する?」
🌳 ツリーマップ分野の規模比較(面積=ボリューム)「データサイエンス全体の俯瞰像」

💡 3 つの図は同じ位置関係を別の角度から描いています。 関係マップは 標準誤差隣に何が並ぶかを、 包含マップとツリーマップは 統計・データサイエンス推定 → 標準誤差 という入れ子の位置を示します。 「推定には他に何があったか」を思い出したいときは包含マップを、 「次に何を読むか」を決めたいときは関係マップを開いてください。

🔗 隣接手法への橋渡し

標準誤差 SE = SD/√n は「サンプル統計量 (推定量) のばらつき」を表す指標。 SSDSE-B-2026 の 47 都道府県を「日本全体の何らかの母集団からの標本」と見立てれば、 各指標の平均推定値の SE が計算でき、 信頼区間 mean ± 1.96·SE を導出できる。 SD は「個体のばらつき」、 SE は「推定量のばらつき」で両者は別概念。

SD と SE の混同が論文での頻出ミス。 「個体差を示したい」なら SD、 「推定の精度を示したい」なら SE と用途で使い分ける。 SSDSE 47 都道府県の SD は約 290 万 (人口)、 SE は 290万/√47 ≈ 42 万になる。

🌳 手法選択フロー

標準誤差 (SE) は「推定量の不確実性」を測る指標であり、 推定対象 (平均・割合・差・回帰係数 …)データの取得方法 (単純標本・複雑抽出・時系列) によって計算式と推奨手法が変わる。 以下に典型シナリオと推奨 SE 計算法を示す。

典型シナリオ別の手法選択

シナリオ重視する観点推奨 SE 計算法
標本平均の SE が欲しい / 単純無作為標本解析公式・正規近似SE = s/√n (s は標本 SD)
割合 (比率) の SE が欲しい二項分布・離散値SE = √(p(1−p)/n) ・ Wilson 信頼区間
分布が歪む / 中央値や複雑な統計量分布仮定なし・再標本化ブートストラップ SE (B=1000 以上)
回帰係数の SE が欲しい分散均一性・正規性OLS SE / 不均一分散時は HC3 (robust SE)
クラスタ / 層化抽出データ独立性が崩れるクラスタロバスト SE / 設計効果 (deff) 調整
時系列・自己相関あり系列依存・分散長期化Newey-West SE (HAC)

選んだ後の検証ステップ

  1. SD と SE の区別: 個体のばらつき (SD) と推定量のばらつき (SE = SD/√n) を混同しない。 SSDSE-B 47 都道府県の人口 SD ≈ 290 万人、 SE ≈ 42 万人
  2. 正規近似の妥当性: n が小さい (n<30) ときは t 分布で信頼区間を作る。 比率の信頼区間で p≈0/1 のときは Wilson 法に切替
  3. 抽出設計の確認: 単純無作為でなければ SE が過小評価される (deff > 1 が典型)
  4. 有意性報告: 「推定値 ± SE」または「95% CI = 推定値 ± 1.96×SE」のいずれかに統一して報告
  5. ブートストラップ妥当性: B=1000 程度で SE が収束しているか確認、 サブサンプルが独立とみなせるか吟味

🎯 直感の深化 — SE は「推定値という物差しの目盛りの細かさ」

標準偏差 (SD) と標準誤差 (SE) を一言で対比すると、 SD は「世界そのものの多様さ」、 SE は「その世界を私たちがどれだけ細かく測れているか」。 SD は母集団に固有の量で、 いくらデータを増やしても消えない(47 都道府県の人口はどこまで調べても東京都と鳥取県で桁が違う)。 一方 SE は「観測努力の関数」で、 n を増やすほど 0 に近づく。 前者は記述統計、 後者は推測統計の量であり、 この線引きが SD/SE 混同を防ぐ最初の鍵になる。

なぜ「標本平均の SD」が精度になるのか

SE の定義は「もし同じ標本抽出を無限回繰り返したら、 標本平均 $\bar x$ はどれだけばらつくか」の標準偏差。 つまり SE = 標本平均という確率変数の SD。 本ページの 🎮 体感ラボ①で「1000 回抽出」した下段の山の幅がまさにこれで、 実測(1000 個の平均の SD)が理論値 $\sigma/\sqrt n$ とほぼ一致することを確かめられる。 「推定値そのものがブレる幅」を測っているから、 SE が小さい=別の標本を取っても結論が変わりにくい=精度が高い、 と読める。

SSDSE-B-2026 の実測で SD と SE を切り分ける

2023 年の 47 都道府県総人口 A1101(skiprows=[1]・2023 抽出の実測)では、 SD ≈ 279.8 万人(県ごとの巨大な散らばり)に対し、 平均推定の SE ≈ 40.8 万人。 両者の比はちょうど $\sqrt{47} = 6.86$ 倍で、 公式 $SE = SD/\sqrt n$ と小数第 4 位まで一致する(6.8557)。 SD は「県の多様さ」、 SE は「47 県平均という 1 つの数字の不確実さ」で、 桁が 1 つ違う。

実測値(総人口 A1101, 2023)意味n を増やすと
SD2,797,551 人県どうしの散らばり変わらない(母の性質)
SE = SD/√n408,065 人平均推定のブレ幅√n で 0 へ縮む
SD/SE6.856 = √47両者の橋渡し√n に等しい(定義)
相対 SE = CV/√n0.154(15.4%)平均に対する精度√n で縮む

相対 SE(=変動係数 CV=1.057 を √47 で割った値)は「平均の推定は約 15% の相対誤差を持つ」と読める。 単位に依存しないので、 総人口・出生数・死亡数のように単位や桁が違う指標どうしでも「どの平均が相対的に精度よく測れているか」を横並び比較できる。

📝 補足(直感の要点): 「精度を 2 倍にしたければ n を 4 倍」の黄金律は、 $SE \propto 1/\sqrt n$ の直接の帰結。 √ が付くために努力は逓減し、 巨大データでも SE をゼロにはできない — が、 これは「精度=SE」の話であって「効果の大きさ」とは別軸である点に注意(落とし穴の節を参照)。 関連ページ: 標準偏差中心極限定理サンプルサイズ平均

🕳️ 落とし穴の深化 — SE を過小評価する 7 つの典型

SE にまつわる誤りは大半が「本来より小さい SE を報告してしまう」方向に働く。 SE が小さいほど t 統計量 = 推定値/SE が大きくなり、 偽陽性(あるはずのない有意)を生むからだ。 最頻の誤りから順に整理する。

❌ ①(最頻)標準偏差と標準誤差の取り違え
エラーバーや「Mean ± ○」の○が SD か SE か未記載のまま比較する。 上の実測では SD と SE は約 6.9 倍違う(279.8 万 vs 40.8 万)。 SE 棒は n が大きいほど縮むため、 大標本ほど「差が大きく」見えてしまう。 図の凡例に必ず SD/SE/95%CI のどれかを明記する。
❌ ② 1/√n の効き方の誤解
「n を 2 倍で SE 半分」ではなく「n を 4 倍で SE 半分」。 SE は n ではなく √n に反比例する。 総人口の実測 SE=40.8 万を半分の 20.4 万にするには、 47 県相当ではなく 188 県相当(4 倍)の標本が要る。 収穫は逓減する。
❌ ③ 独立性の暗黙仮定(系列相関・クラスタで SE 過小)
$SE=\sigma/\sqrt n$ は i.i.d. が前提。 同一学校の生徒、 同一県の市町村、 隣接年の時系列は正の相関を持ち、 実効情報量が名目 n より少ない。 デザイン効果 $deff=1+(m-1)\rho$ の分だけ真の SE は大きい。 (架空例)1 県 10 市・級内相関 $\rho=0.2$ なら $deff=1+9\times0.2=2.8$、 実効 n は 470→168 に縮み、 通常式は SE を $\sqrt{2.8}\approx1.67$ 倍過小評価する。 クラスタ頑健 SE(cov_type='cluster')や混合効果モデルで対処。
❌ ④ 有限母集団修正 (FPC) の見落とし
標本が母集団の無視できない割合を占めるとき、 $SE_{\mathrm{FPC}}=\frac{\sigma}{\sqrt n}\sqrt{\tfrac{N-n}{N-1}}$ で SE を縮める。 47 県のうち 30 県を抽出なら係数は $\sqrt{17/46}=0.608$ で SE は約 4 割減。 全数調査 $n=N$ なら FPC=0、 すなわち SE=0(推定ではなく確定値)。 大規模公的統計で忘れがち。
❌ ⑤ 母集団 SD が未知なのに正規で押し切る
$\sigma$ は通常未知で標本 SD $s$ で代用するため、 $\widehat{SE}=s/\sqrt n$ 自体に不確実性がある。 これを取り込むのが t 分布。 総人口の実測でも 95%CI は 1.96 ではなく $t_{46,0.975}=2.013$ を掛ける。 n=10 なら $t=2.262$ と正規より 15% 広い。 小標本で 1.96 を使うと CI が狭すぎる。
❌ ⑥ 不均一分散下での通常 SE
回帰係数の SE は等分散を仮定する。 残差分散が説明変数で変わると通常 SE は偏る。 White の HC0〜HC3 ロバスト SE(cov_type='HC3')が現代の既定。 時系列の自己相関には Newey-West (HAC)。
❌ ⑦ ブートストラップ SE の盲信
分布仮定なしで SE を出せるが万能ではない。 n が小さい・裾が重い・強い依存があると不正確。 47 県のように n が小さいと「観測されなかった裾」(もっと巨大な県)を再現できない。 依存構造にはブロック/階層ブートストラップ、 CI には percentile より BCa を選ぶ。
📝 補足(決定的な誤読): 「SE が小さい=効果が大きい」ではない。 SE は n を増やすだけでいくらでも縮むので、 巨大データでは実質ゼロの差でも t が巨大化して「有意」が出る。 精度(SE・p 値)と大きさ(効果量)は必ず分けて報告する。 また「推定値 ± SE」だけでは信頼度は約 68%(±1σ 相当)にすぎず、 95% を主張するなら ±1.96·SE(小標本なら ±t·SE)が必要。 関連: 効果量ロバスト統計ブートストラップ信頼区間

🚀 発展の深化 — CLT・信頼区間・頑健 SE・デルタ法・検出力

① 中心極限定理 (CLT) が SE に正規性を与える

$SE=\sigma/\sqrt n$ という「大きさ」の式に対し、 中心極限定理は「形」を保証する。 元データの分布が歪んでいても(総人口は東京都のせいで強い右裾)、 標本平均 $\bar X$ の分布は n が増えると正規に近づく。 だからこそ「±1.96·SE で 95%」という正規近似の区間が使える。 逆に n が小さい・元分布が極端に歪むと近似が甘くなり、 t 分布やブートストラップが必要になる。 体感ラボ①下段の山が n が小さくても釣鐘型に見えるのは CLT の働きである。

② 信頼区間 = 推定値 ± z(または t)× SE

SE は信頼区間の「幅の単価」。 総人口の実測では 95%CI = 264.6 万 ± 2.013×40.8 万 = (182.4, 346.7) 万人。 SE を半分にすれば CI 幅も半分。 これが「精度を CI に翻訳する蝶番」であり、 仮説検定の $t=\hat\theta/SE$、 p 値t 検定もすべて SE を分母に共有する。

③ 頑健標準誤差 — σ/√n が使えない場面での測り直し

状況問題頑健 SE実装 (statsmodels)
不均一分散残差分散が非一定HC0〜HC3cov_type='HC3'
グループ内相関クラスタで独立性崩壊クラスタ頑健cov_type='cluster'
自己相関(時系列)系列依存Newey-West (HAC)cov_type='HAC', cov_kwds={'maxlags':L}

いずれも点推定 $\hat\beta$ は変えず、 「σ/√n が過小評価する不確実性を正しく測り直す」技術。 現代の実証研究では既定に近い。

④ デルタ法 — 変換した推定量の SE

推定量 $\hat\theta$ の関数 $g(\hat\theta)$ の SE は、 1 次テイラー展開で $SE(g(\hat\theta)) \approx |g'(\hat\theta)| \cdot SE(\hat\theta)$ と近似できる(デルタ法)。 例:対数変換なら $SE(\log\hat\theta)\approx SE(\hat\theta)/\hat\theta$、 オッズ比・比率・弾力性など「解析式はあるが直接分散が出しにくい量」に有効。 解析式が複雑すぎるときはブートストラップが代替になる。

⑤ 比率の SE と「±3 ポイント」の正体

比率 $\hat p$ の SE は $\sqrt{\hat p(1-\hat p)/n}$。 (実測)2023 年で「総人口 100 万人超の県」は 47 県中 37 県、 $\hat p=0.787$ なので SE $=\sqrt{0.787\times0.213/47}=0.060$(6.0 ポイント)。 世論調査の「±3 ポイント」は $1.96\times\sqrt{0.5\cdot0.5/1000}\approx0.031$ に由来し、 $\hat p=0.5$ で SE が最大化する(最悪ケース設計)。

⑥ SE と検出力の関係

検出力(真の差を有意と判定できる確率)は SE が小さいほど高い。 効果量 $\delta$、 有意水準 $\alpha$、 検出力 $1-\beta$ に対し必要 n は $n=(z_{\alpha/2}+z_\beta)^2\,2\sigma^2/\delta^2$ で、 SE を目標値まで下げる設計に等しい。 SE は「精度の入口」であり検出力・必要標本数の共通通貨になる。 関連: 検出力分析サンプルサイズ再現性

📝 補足(発展の一本の糸): CLT が「±z·SE」に正規性を与え、 SE の測り方さえ状況に合わせれば(i.i.d. なら σ/√n、 依存や不均一分散なら頑健 SE、 変換なら デルタ法、 難しければ ブートストラップ)、 信頼区間・検定・検出力・必要標本数はすべて同じ SE から導ける。 SE は推測統計の「共通単位」である。