論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
第1種の過誤
Type I Error
仮説検定
別称: Type I error / α誤り

🔖 キーワード索引

このページ内のセクションへ素早く飛べます(クリックで該当箇所へジャンプ):

💡 30秒結論📍 文脈🎨 直感📐 数式・定義🔬 数式を言葉で読み解く🧮 SSDSE実値計算🐍 Python実装⚠️ 落とし穴🌐 関連手法🔗 関連用語📚 関連グループ❓ FAQ
第1種の過誤(α 過誤)偽陽性有意水準 α帰無仮説 H₀第2種の過誤 β検出力 1−βFWER多重比較Bonferroni 補正Holm 法Benjamini-Hochberg(FDR)p-hacking事前登録

💡 30秒で分かる結論 — 第1種の過誤

🍰 まずはやさしく

もともと差がないのに、あると勘違いすることです。

正しい判断をするために使います。

スマホのアプリで、効果がないのにあると信じる例です。

この章では結論を短くまとめます。

💡 30秒で分かる結論

H₀が真なのに棄却してしまう誤り(偽陽性)

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

🍰 まずはやさしく

判定を間違える確率のことです。

データの分析でミスを防ぐために使います。

テストの結果がたまたま良かっただけの場合です。

この章では全体の流れを説明します。

通常 α = 0.05 に設定。 多重比較ではこれが膨らむ(family-wise error rate)。 「偽陽性 (False Positive)」とも呼ばれる。 規制当局・医学では特に厳しく管理。

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

p値が0.05を下回ったら「有意」と判定 — その「5%」が、 まさに第1種の過誤を犯す確率です。 統計検定のすべての出発点。

🎨 直感で掴む — 第1種の過誤とは何者か

🍰 まずはやさしく

無実の人を有罪にするような間違いです。

直感的に正しく理解するために使います。

部活で、練習法を変えても効果がなかった例です。

この章ではイメージを掴んで解説します。

第1種の過誤(Type I Error)は「本当は差がない/効果がないのに、 あると判定してしまうエラー」。 別名「偽陽性 (False Positive)」、 統計学では「無実の人を有罪にする」誤りに対応する。 確率 $\alpha$(有意水準、 通常 0.05)でコントロールする。

裁判の比喩で完全に理解する: 統計検定は法廷と同じ構造です。

立場真実:無罪 (H₀ 真)真実:有罪 (H₁ 真)
判決:無罪 (H₀ 採用)○ 正しい判断(特異度 = 1−α)× 第2種の過誤(β)「真犯人を見逃す」
判決:有罪 (H₀ 棄却)× 第1種の過誤(α)「冤罪」○ 正しい判断(検出力 = 1−β)

司法は「疑わしきは罰せず」で第1種を厳しく抑える(無罪推定)。 統計も同じ思想で α=0.05 と保守的に設定します。

SSDSE-B-2026 で第1種の過誤を体感する: 「東京都の合計特殊出生率 0.99 と全国平均 1.20 は本当に違うか?」を t 検定すると t = 2.5、 p = 0.013。 α=0.05 なら H₀(差は無い)を棄却するが、 実は たまたま 5% に当たった偶然の可能性が 0.013/0.05 = 26%。 これが第1種の過誤の確率の解釈です。 「100 本の論文で α=0.05 検定をすれば、 平均 5 本は本当は差が無いのに『有意』と報告してしまう」。

α の選び方の実例:

多重比較で α が膨らむ問題: 47 都道府県すべてを全国平均と比較すると、 47 回検定するので少なくとも 1 つで偽陽性が出る確率は $1 - (1-0.05)^{47} = 91\%$。 つまり ほぼ確実に「有意な県」が偽陽性で出る。 対策: Bonferroni 補正 (α/47 = 0.00106)、 FDR 制御(Benjamini-Hochberg)など。

第1種の過誤を間違って認識しないために: p = 0.04 は「H₀ が正しい確率」ではなく、「H₀ が正しいと仮定したときに、 観察されたかそれ以上極端なデータが得られる確率」です(頻度主義の定義)。 Bayes 因子や事後確率と混同しないよう注意。

🎮 触って理解する — αとβのトレードオフ

帰無分布 H₀(本当は差が無い世界)と対立分布 H₁(本当は差がある世界)を重ねて描いています。 検定統計量が判定閾値より右に出たら「H₀ を棄却(=差がある)」と判定する片側検定の模型です。 スライダーで閾値と効果量(H₁ の中心)を動かし、 第1種の過誤 α(赤・偽陽性)と 第2種の過誤 β(紫・偽陰性)の面積がどう変わるかを体感してください。

グラフ上をクリック/ドラッグしても閾値を動かせます

第1種の過誤 α(偽陽性)
5.0%
第2種の過誤 β(偽陰性)
8.7%
検出力 1−β
91.3%

閾値を右へ動かすと α(偽陽性)は減りますが、 その分 β(見逃し)が増えます。

真実 × 判定の 2×2 表(面積と対応)

真実:H₀ が真
(本当は差が無い)
真実:H₁ が真
(本当は差がある)
判定:H₀ 採択
(差なし)
○ 真陰性
1−α = 95.0%
× 第2種の過誤(偽陰性)
β = 8.7%
判定:H₀ 棄却
(差あり)
× 第1種の過誤(偽陽性)
α = 5.0%
○ 真陽性(検出力)
1−β = 91.3%

※ 両分布とも標準偏差 1 の正規分布として面積を正規累積分布関数から厳密計算しています(片側検定の模式図)。 α と β は別々の分布の裾の面積なので合計が 1 になるとは限りません。

📖 もっと詳しく — 過誤・トレードオフ・実務コスト

第1種の過誤(Type I Error, 偽陽性)は「H₀ が真なのに棄却してしまう」誤り、 第2種の過誤(Type II Error, 偽陰性)は「H₁ が真なのに H₀ を採択してしまう」=見逃しの誤りです。 前者の確率が α、 後者の確率が β で、 検出力(statistical power)= 1−β が「本当にある効果を正しく拾える確率」になります。

αとβのトレードオフ:上のプレイグラウンドで確かめたとおり、 標本サイズと効果量を固定したまま閾値だけを厳しくすると(=棄却境界を右へ)、 α は下がりますが β は上がります。 「αを下げるほど見逃し(β)が増える」——これは同じデータ量では避けられない綱引きです。 両方同時に小さくしたいなら、 閾値ではなく標本サイズ n を増やして 2 つの分布の重なり自体を減らすのが正攻法です(分布が離れれば α も β も同時に下げられる)。

有意水準の選択:α をどこに置くかは分野の慣習と偽陽性コストで決まります(有意水準 のページ参照)。 心理・社会科学は 0.05、 臨床試験や経済学は 0.01、 素粒子物理は 5σ(≈ 3×10⁻⁷)と、 誤って「発見」と言った時の損失が大きいほど α を小さくします。 逆に探索的スクリーニングでは 0.10 まで緩めて取りこぼし(β)を抑えることもあります。

多重比較での α 増大:多重比較 では検定を重ねるほど「どれか 1 つで偽陽性」の確率(family-wise error rate, FWER)が膨らみます。 独立な k 回の検定なら FWER = 1−(1−α)ᵏ で、 47 都道府県を一斉検定すれば α=0.05 でも 1−0.95⁴⁷ ≈ 91% とほぼ確実に偽陽性が紛れ込みます。 対策は Bonferroni 補正(α/k に厳格化)や、 FDR(偽発見率)を制御する Benjamini-Hochberg 法です。

偽陽性/偽陰性の実務コスト:どちらの過誤が痛いかは用途次第です。 偽陽性(False Positive) が重いのは、 健常者を「陽性」と誤診して不要な精密検査・投薬・不安を生む場面や、 効かない新薬を「効く」と承認してしまう場面。 一方 偽陰性(False Negative) が重いのは、 がんの見逃し・不正取引の検知漏れ・重大な安全上の欠陥の看過など、 見逃しが致命傷になる場面です。 「α を一律に 0.05」と機械的に決める前に、 どちらの誤りが自分の問題でより高くつくかを先に考えるのが実務の鉄則です。

📐 数式・定義

🍰 まずはやさしく

間違いが起きる確率を数式で表したものです。

厳密なルールを決めるために使います。

買い物で、安くなっていないのに安いと信じる例です。

この章では定義や数式を詳しく読みます。

第1種の過誤確率 $\alpha$ は有意水準そのもの:

$$ \alpha = P(\text{reject } H_0 \mid H_0 \text{ true}) $$

多重比較で $k$ 個の検定を独立に行うと、 family-wise error rate は $1 - (1-\alpha)^k$ に膨らむ。

📐 定義/数式

第1種の過誤(Type I Error):H₀が真なのに棄却してしまう誤り(偽陽性)

同義・関連語:Type I error, α誤り

【第1種の過誤の確率】
$$ \alpha = P(\text{H}_0 \text{ を棄却} \mid \text{H}_0 \text{ が真}) = P(\text{偽陽性}) $$
通常 $\alpha = 0.05$(5%)または $0.01$(1%)に設定。

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

先ほどの数式・定義に出てきた記号や概念を、 一つずつ確認します。 とくに 第1種の過誤 の文脈で意味を取り違えやすい部分を強調します。

記号意味と注意点
$\bar{x}$標本平均。 $\bar{x} = \frac{1}{n}\sum_{i=1}^n x_i$
$\sigma$(または $s$)標準偏差(または標本標準偏差)。 ばらつきの代表指標
$n$標本サイズ(観測数)
$p$p値、 または比率。 文脈で意味が変わる
$\alpha$有意水準(通常 0.05)
$H_0, H_1$帰無仮説と対立仮説

記号は手法ごとに少しずつ意味が違うため、 論文・教科書を読むたびに『この本ではこの記号を何の意味で使っているか』を最初に確認するのが鉄則です。 とくに 第1種の過誤 関連の文献では、 ${\sigma}^2$(分散)と $s^2$(標本分散)の区別、 $n$ と $N$(標本サイズ vs 母集団サイズ)の混同に注意。

🔬 記号・用語の読み解き

記号意味
$\alpha$第1種の過誤の確率=有意水準
$\beta$第2種の過誤の確率(偽陰性)
$1-\beta$検出力(パワー)
FWER複数検定全体での第1種過誤率

🧮 SSDSE-B 実値で計算してみる

SSDSE-B-2026(47 都道府県・2023 年度・109 項目)を題材に、 第1種の過誤 に関係する変数を実値で確認します。 とくに東京・大阪・沖縄・秋田 など特徴ある県を比較すると、 用語の重みが体感できます。

都道府県総人口(千人)高齢化率(%)TFR有効求人倍率
東京14,08622.80.991.56
大阪8,76327.71.191.23
沖縄1,46823.81.601.12
秋田91439.11.101.40
全国124,35329.11.201.30

これらの値を 第1種の過誤 の観点で読み解くと、 都道府県間の格差・特徴・関係性が浮かび上がります。 具体的な計算手順は次の「🐍 Python 実装」セクションで実演します。

🧮 実値で計算してみる

例:α=0.05 で 1000回の検定 → 期待される偽陽性は約50件。 多重比較補正なしだと「効果あり」が乱発される。 Bonferroni 補正なら α/1000=5×10⁻⁵ を各検定で使う。

🧮 数式に値を入れて手で計算する: タイプ I 誤りの確率

合成 m 回検定で α=0.05 のとき少なくとも 1 回偽陽性が出る確率を計算する。

Step 1: 確率

P(全て正解) = (1-α)^m P(少なくとも 1 偽) = 1 - (1-α)^m

Step 2: m 別

mP(偽陽性あり)
10.050
100.401
200.642
1000.994

🐍 Python で再現

1
2
3
4
5
import numpy as np
alpha = 0.05
m = np.array([1, 10, 20, 100])
p = 1 - (1-alpha)**m
print(f"P: {p.round(3)}")

📤 実行結果

P: [0.05 0.401 0.642 0.994]

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

🐍 Python 実装

以下は、 検定の前のデータ点検(①〜③)、 東日本・西日本の t 検定(④)、 帰無仮説が真の世界で偽陽性を数える乱数実験の順に並べたコード。 encoding='cp932' は政府統計の Shift-JIS 対応で、 skiprows=[1] は 2 行目の日本語見出しを飛ばして 1 行目の英字コード(A1101 など)を列名にする指定。

① 基本パターン(読み込み・確認・主要列抽出)

🎯 解説: SSDSE-B-2026 を英語コード見出しで読み込み、 564 行(47 都道府県 × 12 年度)から 2023 年度の 47 行に絞って、 後の検定で使う高齢化率(A1303 ÷ A1101 × 100)の列を作る。 検定の前に、 1 県 1 行になっているかと値の範囲を確かめる段階。
📥 入力例(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
import pandas as pd

# 第1種の過誤 に関連する SSDSE-B-2026 分析の基本パターン
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
print(df.shape)            # (564, 112) 47都道府県 × 12年分
df = df[df['SSDSE-B-2026'] == 2023].copy()   # 2023 年度の 47 都道府県に絞る
print(df.shape)            # (47, 112)

# 主要列にエイリアス
df['総人口']   = df['A1101']
df['65歳以上'] = df['A1303']
df['高齢化率'] = df['65歳以上'] / df['総人口'] * 100
print(df['高齢化率'].describe().round(2))
print(df[['Prefecture','総人口','高齢化率']].head())
📥 入力: data/raw/SSDSE-B-2026.csv(skiprows=[1] で英語コード見出し A1101・A1303 などを列名にする)。
📤 実行例(実測) (564, 112) (47, 112) count 47.00 mean 31.59 std 3.34 min 22.75 25% 30.05 50% 31.78 75% 34.01 max 39.06 Name: 高齢化率, dtype: float64 Prefecture 総人口 高齢化率 0 北海道 5092000 33.012569 12 青森県 1184000 35.219595 24 岩手県 1163000 34.995701 36 宮城県 2264000 29.240283 48 秋田県 914000 39.059081
💬 読み方: 読み込み直後は (564, 112) で同じ県が 12 年度分並んでいるので、 年度で絞って (47, 112) にしてから数える。 2023 年度の高齢化率は平均 31.59%、 標準偏差 3.34%、 最小 22.75%(東京都)〜最大 39.06%(秋田県)。 絞らずに 564 行のまま検定すると、 同じ県を 12 回数えて n を水増しし、 p が小さく出て第 1 種の過誤を招きやすくなる。

② 可視化テンプレ(matplotlib / seaborn)

🎯 解説: 2023 年度の 47 都道府県について、 高齢化率と合計特殊出生率(TFR, A4103)のヒストグラムを並べて描き、 eda_distribution.png に保存する。 検定の前に分布の形(歪み・外れ値)を目で確かめる段階。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 第1種の過誤 の探索的データ分析(EDA)
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == 2023].copy()   # 2023 年度の 47 都道府県に絞る

# 主要変数を取り出して名前を分かりやすく
df['総人口']    = df['A1101']
df['65歳以上']  = df['A1303']
df['高齢化率']  = df['65歳以上'] / df['総人口'] * 100
df['TFR']      = df['A4103']

# ヒストグラム
fig, axes = plt.subplots(1, 2, figsize=(12, 4))
sns.histplot(df['高齢化率'], kde=True, ax=axes[0])
axes[0].set_title('高齢化率の分布(47都道府県)')
sns.histplot(df['TFR'], kde=True, ax=axes[1])
axes[1].set_title('TFRの分布')
plt.tight_layout()
plt.savefig('eda_distribution.png', dpi=120)
print(f"高齢化率: {len(df)} 県, 範囲 {df['高齢化率'].min():.1f}〜{df['高齢化率'].max():.1f}%")
print(f"TFR    : {len(df)} 県, 範囲 {df['TFR'].min():.2f}〜{df['TFR'].max():.2f}")
📥 入力: data/raw/SSDSE-B-2026.csv の 2023 年度 47 行(A1101・A1303・A4103 を使用)。
📤 実行例(実測) 高齢化率: 47 県, 範囲 22.8〜39.1% TFR : 47 県, 範囲 0.99〜1.60
💬 読み方: 高齢化率は 22.8%(東京都)〜39.1%(秋田県)、 TFR は 0.99(東京都)〜1.60(沖縄県)で、 どちらも東京都が端に来る。 1 県だけ離れた値は z 検定・t 検定で「有意」になりやすいが、 それが本当の差か偶然かは多重比較の補正(後の Bonferroni・Holm・BH の節)で確かめる。

③ 前処理:欠損・外れ値・型変換

🎯 解説: 日本語見出し(header=1)で全 564 行を読み、 列ごとの欠損数を数え、 カンマや % の付いた文字列を数値に直し、 数値列ごとに IQR の 1.5 倍を超える値を含む行を数える。 検定に入る前のデータ点検の型。
 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
27
28
import pandas as pd
import numpy as np

# 第1種の過誤 に関わる前処理の典型パターン
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', header=1)

# ① 欠損値の確認
print('欠損数:')
print(df.isna().sum().sort_values(ascending=False).head(10))

# ② 数値変換(カンマ・%除去 など)
def to_num(s):
    if isinstance(s, str):
        return float(s.replace(',', '').replace('%', ''))
    return s
_num_cols = [c for c in df.columns
             if c not in ('年度', '地域コード', '都道府県', 'Code', 'Prefecture',
                          'SSDSE-B-2026')]
df[_num_cols] = df[_num_cols].apply(lambda col: col.map(to_num))

# ③ 外れ値検出(IQR)
# 地域コードや都道府県名は大小比較できないので、数値の列だけで判定する
_num = df.select_dtypes(include='number')
q1 = _num.quantile(0.25)
q3 = _num.quantile(0.75)
iqr = q3 - q1
outlier_mask = ((_num < q1 - 1.5*iqr) | (_num > q3 + 1.5*iqr)).any(axis=1)
print('外れ値を含む行数:', outlier_mask.sum())
📥 入力: data/raw/SSDSE-B-2026.csv の全 564 行(47 都道府県 × 12 年度、 日本語の列名)。
📤 実行例(実測) 欠損数: 年度 0 地域コード 0 着工新設住宅戸数 0 外国人延べ宿泊者数 0 延べ宿泊者数 0 一般旅券発行件数 0 就職件数(一般) 0 充足数(一般) 0 月間有効求人数(一般) 0 月間有効求職者数(一般) 0 dtype: int64 外れ値を含む行数: 239
💬 読み方: 欠損は上位 10 列すべて 0 で、 dropna で県が落ちる心配はない。 一方、 IQR 基準で外れ値を 1 列でも含む行は 564 行中 239 行と 4 割を超える。 東京都・大阪府など人口規模の大きい県は多くの列で外れるので、 機械的に除くと標本が大きく偏る。 外れ値の扱いを結果を見てから選び直すと、 それ自体が第 1 種の過誤を増やす。

④ 検定・推定の最小例(scipy.stats)

🎯 解説: 2023 年度の 47 都道府県を東日本 23 都道県・西日本 24 府県に分け、 高齢化率の平均に差があるかを Welch の t 検定(equal_var=False)で調べる。 α=0.05 で判定する最小例。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import pandas as pd
from scipy import stats

# 第1種の過誤 文脈での基本的な仮説検定
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df = df[df['SSDSE-B-2026'] == 2023]; df['aging']  = df['A1303'] / df['A1101'] * 100
df['region'] = df['Prefecture'].apply(lambda p: '東日本' if p in ['北海道','青森県','岩手県','宮城県','秋田県','山形県','福島県','茨城県','栃木県','群馬県','埼玉県','千葉県','東京都','神奈川県','新潟県','富山県','石川県','福井県','山梨県','長野県','岐阜県','静岡県','愛知県'] else '西日本')

east = df.loc[df['region']=='東日本', 'aging']
west = df.loc[df['region']=='西日本', 'aging']

t, p = stats.ttest_ind(east, west, equal_var=False)
print(f'東日本 平均高齢化率: {east.mean():.2f}%')
print(f'西日本 平均高齢化率: {west.mean():.2f}%')
print(f't = {t:.3f}, p = {p:.4f}')
print('判定:', '有意差あり' if p < 0.05 else '有意差なし')
📥 入力: data/raw/SSDSE-B-2026.csv の 2023 年度 47 行(A1101・A1303 から高齢化率を作る)。
📤 実行例(実測) 東日本 平均高齢化率: 31.18% 西日本 平均高齢化率: 31.97% t = -0.804, p = 0.4259 判定: 有意差なし
💬 読み方: 東日本 31.18%、 西日本 31.97% で差は 0.79 ポイント、 t = -0.804、 p = 0.4259 なので α=0.05 では有意差なし。 ここで東西の境界を何通りも引き直し、 p<0.05 になった分け方だけを報告すると、 差が無くても偽の「有意差」を拾う第 1 種の過誤になる。

🐍 Python での実装例

乱数で「帰無仮説が真の世界」を作り、 第 1 種の過誤の頻度を数える最小コード(11行):

🎯 解説: SSDSE は使わず、 平均 0・標準偏差 1 の同じ正規分布から 30 件ずつ 2 群を作って t 検定する(帰無仮説が真の世界)。 これを 1000 回繰り返し、 p<0.05 で誤って棄却した割合=経験的な α を数える。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import numpy as np
from scipy import stats
# H0真(差なし)の世界で 1000回 t検定 → 5%が偽陽性のはず
rng = np.random.default_rng(0)
false_pos = 0
for _ in range(1000):
    a = rng.normal(0, 1, 30); b = rng.normal(0, 1, 30)
    _, p = stats.ttest_ind(a, b)
    if p < 0.05:
        false_pos += 1
print(f'偽陽性: {false_pos}/1000 ({false_pos/10:.1f}%)')
📥 入力例: H₀ が真(母平均差 0)の 2 群(各 n=30・標準正規分布)を乱数シード 0 で 1000 回生成。 各回で 2 標本 t 検定(scipy.stats.ttest_ind)を実行。
📤 実行例(実測) 偽陽性: 56/1000 (5.6%)
💬 読み方: 差が無いと分かっている 2 群でも、 1000 回中 56 回(5.6%)は p<0.05 となって誤って棄却した。 これが α=0.05 の意味で、 理論値 50 回との差 6 回は乱数のぶれ(二項分布の標準偏差は約 6.9 回)の範囲に収まる。 seed=0 を固定しているので何度実行しても 56 になるが、 seed を変えると 40〜60 回程度で変わる。

⚠️ よくある落とし穴

⚠️ よくある落とし穴

❌ 多重比較を忘れる
100検定で5件「有意」は H₀真でも自然。 Bonferroni / FDR で補正。
❌ p-hacking
有意になるまで分析方法を変える → α が制御不能に。
❌ α と β の混同
「有意でなかった=差は無い」とは言えない(β未制御)。
❌ 事前 vs 事後
事後分析で発見した「効果」は α が膨張している可能性。

🗺 概念マップ

第 1 種の過誤 (α、 偽陽性) を中心に、 帰無仮説 / p 値 / 有意水準 / 多重検定補正 (Bonferroni・BH)・FDR、 第 2 種の過誤 (β) との対比を 6 方向に整理。

第1種の過誤 仮説検定 / 帰無仮説 p 値 / 有意水準 α 第 2 種の過誤 β 検出力 1-β 多重検定補正 Bonferroni / FDR

第一種の誤り (α、 偽陽性) は 仮説検定 の枠組みで定義され、 p 値・有意水準・第二種の誤り (β)・検出力 (1-β) と表裏一体。 SSDSE-B-2026 で「47 県の出生率に地域差があるか」を t 検定する際、 α=0.05 なら本当は差がなくても 5% の確率で「差あり」と誤判定する、 これが具体例。

🔗 隣接手法への橋渡し

第一種の誤りは仮説検定のあらゆる場面で発生し、 上流の仮説設計と下流の補正手法が直結する。

SSDSE-B-2026 で「47 県 vs 全国平均」を 47 回 t 検定すると、 α=0.05 のままだと期待誤検出 47 × 0.05 = 2.35 件発生。 Bonferroni 補正で α'=0.05/47=0.00106 に下げるのが対策。

🌳 手法選択フロー

第一種の誤りをどう管理するかは、 検定の文脈で 4 通りに分岐する。

  1. 単独検定 (k=1)? Yes → α=0.05 そのまま。 SSDSE-B-2026 で「東京 vs 全国」だけなら通常水準
  2. 多重検定 (k≤20)? Yes → Bonferroni (α/k)。 厳しめだが安全
  3. 多重検定 (k>20、 探索的)? Yes → BH 法 (FDR)。 47 県 × 50 指標 = 2350 検定なら必須
  4. 医療・社会的影響大? Yes → α=0.01 or 0.005、 + CI 報告。 治験の標準

SSDSE-B-2026 で「県と指標の全ペア」を一気に見たいなら BH 法、 「特定の 1 県と全国」なら α=0.05 のまま。 目的次第で水準を切り替える。

🔎 もう一段深く — 総当たりスキャンで膨らむ「数の暴力」としての第一種の過誤

このページの他セクションでは α と β のトレードオフ、 補正手法(Bonferroni・BH 法)を扱いました。 ここでは重複を避け、 「1 個の検定では小さな α が、 総当たりで検定を積むと研究全体では手に負えなくなる」という第一種の過誤の“増殖”そのものに焦点を当てます。 設定した α=5% が守っているのは1 検定あたりの率であって、 スキャン全体で誤報を 1 つも出さない率ではない、 という点が本質です。

🎨 直感

α=0.05 の検定は「1 回引くと 1/20 の確率で“当たり(=誤報)”が出るくじ」です。 1 回だけ引けば外れる公算が大きい。 ところが同じくじを 109 回引けば、 「少なくとも 1 回当たる」確率は跳ね上がります。 この「少なくとも 1 回誤報を出す確率」を FWER(family-wise error rate、 実験全体誤り率) と呼び、 検定が互いに独立なら次式で膨らみます。

FWER = 1 −(1 − α)m (m = 検定回数、 α = 各検定の水準)

SSDSE-B-2026(2023 年・47 都道府県)の数値指標は 109 列あります(df[df['SSDSE-B-2026']==2023] の数値列を数えた実測値)。 これを total 109 検定、 さらに全ペア相関なら C(109, 2)=5,886 検定に膨れます。 α=0.05 のまま放り込むと、 真に無関係でも下表の通り“ほぼ確実に”どこかで有意判定が出ます。

検定回数 m FWER=1−0.95m 期待誤報数 α·m SSDSE-B での場面
10.0500.05特定 1 指標だけを検定
140.5120.7014 指標を横断チェック → もう五分五分で誤報
1090.9965.452023 年の全数値指標を総当たり
5,8861.000294.3109 指標の全ペア相関 C(109,2)

※ FWER・期待誤報数は α=0.05 と実測列数 109(および C(109,2)=5,886)から式で算出した値。 実際の SSDSE 列は相互相関があり独立ではないため、 この式は「独立に近い探索を無数に回した場合の上限的な目安」です。

⚠️ 落とし穴(重要)

「有意なペアだけ拾って報告」は第一種の過誤の量産装置。 109 指標を総当たりして、 出てきた有意な関係だけを結論に書く——これはデータ浚渫(p ハッキング)です。 個々の検定で α=0.05 を律儀に守っていても、 報告した集合の中に混じる偽陽性の期待数は 5〜6 件(上表 m=109 行)。 α を守ること自体は誤報の“総量”を何も保証しません。

架空デモ(真の効果ゼロ・乱数シード 2023 で再現): 平均 0 の乱数に対して 47 標本の 1 標本 t 検定を 109 回。 1 回のスキャンで 偽陽性 9 件が“有意”と出ました(理論期待 5.45 件、 揺らぎで上振れ)。 これを 1000 回反復すると、 平均偽陽性 5.45 件/109、 「少なくとも 1 件誤報が出た割合」は 0.994——理論 FWER 0.9963 とほぼ一致します。 効果が本当にゼロでも、 総当たりすればほぼ毎回“発見”が捏造されるのです。

もう一つの罠は「α を厳しくすれば安全」という早合点。 α を下げると確かに誤報は減りますが、 同時に 第二種の過誤(β) と見逃しが増え、 本物の差を取りこぼします。 総当たり問題の正しい対処は「α をやみくもに下げる」ことではなく「検定回数 m を意識して補正する」ことです。

🚀 発展

誤り率には“層”があり、 どれを制御したいかで手法が変わります。

実務の指針:確認的(confirmatory)な少数検定なら FWER 制御、 探索的(exploratory)な総当たりなら FDR 制御、 と目的で切り替えます。 そして総当たりで見つけた関係は「仮説の候補」にすぎず、 別データでの再検証を経て初めて“発見”になる、 という順序を崩さないことが第一種の過誤への最良の防御です。

🔗 関連ページ