論文一覧に戻る 📚 用語解説(ジャストインタイム型データサイエンス教育)
有意水準
Significance Level (α)
「これより小さいp値なら帰無仮説を棄却する」と事前に決める閾値。慣習的に 0.05, 0.01, 0.001。
推測統計αα水準alphasignificance

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

有意水準(significance level)に関する用語を、 誤り種類・補正・代替論 別に索引化します。

カテゴリキーワード(日本語)キーワード(英語)
基本概念有意水準、 α、 棄却域、 臨界値、 片側/両側significance level, alpha, critical region, one/two-sided
誤り種類第一種の誤り、 第二種の誤り、 検出力(1−β)、 偽陽性率Type I, Type II, power, false positive rate
多重比較補正Bonferroni補正、 Holm法、 BH法(FDR)、 Šidák、 HochbergBonferroni, Holm, BH, FDR, Šidák
関連指標p値、 信頼区間、 効果量、 ベイズファクターp-value, CI, effect size, Bayes factor
代替論事前登録、 再現性、 信頼性、 p-hacking、 HARKingpreregistration, replication, p-hacking, HARKing
実装関数scipy.stats、 statsmodels、 pingouin、 multipletestsscipy.stats, statsmodels, pingouin, multipletests

💡 30秒で分かる結論

🍰 まずはやさしく

判定の合否ラインのようなものです。

偶然ではないと判断するために使います。

テストの合格点を決めることに似ています。

この章では判定ルールの基本を学びます。

📖 もっと詳しく

有意水準 α は、 検定の「合否ライン」です。 「p値が α より小さければ、 偶然とは考えにくいので帰無仮説を棄却する」というルール。 慣習的に α = 0.05(5%)が最も使われますが、 厳しい検証では 0.01 や 0.001 も。

α は事前に決めるのが厳密な手順。 結果を見てから「3%なら有意」と動かすのは p-hacking の温床。

α の意味:「本当は帰無仮説が正しいのに、 誤って棄却してしまう確率」の上限(第1種の過誤)。 α を小さくすると false positive は減るが、 本物の効果も見逃しやすくなる(第2種過誤の増加)。

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

🍰 まずはやさしく

論文などでよく見る基準の数字です。

p値という値を判定するために使います。

スマホのデータ分析などで活用されます。

定義から注意点まで順番に解説します。

論文で「α = 0.05」「有意水準5%で検定」と書かれる数字。 p値の判定基準。

有意水準 とは:「これより小さいp値なら帰無仮説を棄却する」と事前に決める閾値。慣習的に 0.05, 0.01, 0.001。

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

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

🎨 直感で掴む

🍰 まずはやさしく

合格か不合格かを分ける境界線です。

間違いが起きる確率を抑えるために使います。

部活の選抜試験で基準を厳しくする例です。

図を使って直感的な意味を説明します。

有意水準
α=0.05 の両側検定では、 両端 2.5% ずつ(赤い領域)の棄却域を設ける。 観測値がこの領域に入れば「有意」と判定。

🎨 概念図で押さえる

有意水準 α は 「帰無仮説が正しいのに棄却してしまう確率 (Type I error)」 の上限。 以下 3 図で「α の意味」「α と β のトレードオフ」「分野別の α 基準」を可視化する。

図 1: α は棄却域の面積

臨界値 α=5% 棄却域 受容域 (95%) 統計量分布 (H0 が真と仮定)

→ α=0.05 は 分布の裾 5% の面積。 観測統計量がここに落ちたら帰無仮説を棄却する。 α を 0.01 に下げる = 棄却域を狭める

図 2: α と β (検出力) のトレードオフ

H0 分布 H1 分布 臨界値 α (Type I) β (Type II)

α を小さくする = 臨界値を右へ動かす = β (見逃し) が増える。 「厳しく判定」と「見逃さない」は両立しづらい。 N を増やすことで両立可能。

図 3: 分野別の α 基準

α=0.5 α=10⁻⁷ 分野 教育・ 調査研究 α=0.05 医薬品 承認試験 α=0.01 遺伝子 GWAS α=5×10⁻⁸ 物理 α=5σ

誤判定のコストが高い分野ほど α が小さい。 教育では 0.05、 医薬では 0.01、 GWAS は多重比較補正で 5×10⁻⁸、 物理ではヒッグス粒子発見の「5σ (≈3×10⁻⁷)」が標準。

🧪 理解度チェック — 有意水準 α

α は「許容する第一種過誤の確率」。 以下 5 問。

  1. Q1. 第一種過誤と第二種過誤の違いを 1 行で。 α は どちらを制御するか?
  2. Q2. α=0.05 を α=0.01 に厳しくすると、 検出力 (1-β) はどうなるか。 トレードオフを説明せよ。
  3. Q3. Bonferroni 補正で 20 個の独立な検定をするとき、 各検定の調整後 α はいくつか?
  4. Q4. SSDSE-B-2026 の都道府県別データで「47 ペアの相関」を一度に検定すると有意となるものが偶然出やすい。 対処法は?
  5. Q5. 「効果なし=採択」と「効果あり=採択を保留」の非対称性が α を小さくする理由。 1 行で説明せよ。

📊 多重比較補正の選択肢

α と検出力の関係

α を小さくすると検出力が下がる: 上図は α と β の二律背反を可視化したもの。 n を増やせば両者を同時に改善できる。

補正法制御対象特徴用途
BonferroniFWERα/k で単純厳格少数の重要検定
HolmFWERBonferroni より検出力大中規模検定
Benjamini-HochbergFDR期待 偽陽性率 を制御遺伝子発現・大規模
ŠidákFWER独立仮定で正確独立検定群

FWER (family-wise error rate) は「少なくとも 1 件の偽陽性を出す確率」、 FDR (false discovery rate) は「棄却された中の偽陽性割合」。 多数検定では FDR を選ぶ方が現実的。

関連: 仮説検定 / p 値 / 第一種過誤 / 多重比較

🎮 触って理解する — α スライダーで棄却域とβを操る

有意水準 α は「帰無仮説 H₀ が正しいのに棄却してしまう確率(偽陽性率)の上限」。 下のスライダーで α を 0.001〜0.20 の範囲で動かすと、 帰無分布(青)の裾に 棄却域(赤)が塗られ、 臨界値が更新されます。 同時に対立分布 H₁(緑)との重なりから 見逃し β(紫)と検出力(1−β)が計算され、 「α を厳しくすると偽陽性は減るが見逃しは増える」トレードオフを体感できます。

α = 0.0500 (5.00%)
0.001(厳しい)0.050.20(緩い)
μ = 2.5 σ ぶん離れている
検定の向き:
プリセット:
第1種の過誤 α(偽陽性率)
5.00%
第2種の過誤 β(見逃し率)
29.5%
検出力 1−β
70.5%
臨界値(z)
±1.960

※ 帰無分布・対立分布とも標準正規(分散 1)で近似。 赤=棄却域(面積が α)紫=H₁ の受容域に落ちる確率(見逃し β)薄緑=H₁ を正しく棄却できる確率(検出力)。 μ を大きく(効果が大きく)すれば α を厳しくしても β を抑えられる=標本設計で両立可能。

📊 分野別の慣習的 α と臨界値の比較

同じ「棄却の閾値」でも、 分野が要求する厳しさで臨界値(z)は大きく変わります。 誤判定のコストが高い分野ほど α が小さく、 臨界値は遠くなります。

🧭 有意水準の意味 — 「許容する偽陽性率」

α は検定を設計する前に決める「合否ライン」であり、 その数値は H₀ が真のときに誤って棄却する確率(第1種の過誤)の上限を表します。 α=0.05 なら「本当は差がないケースでも、 20 回に 1 回はうっかり有意と言ってしまう」ことを許容する宣言です。 上のスライダーで赤い棄却域の面積が常に α に一致することを確かめてください。 なお α は「対立仮説が正しい確率」でも「結果が偶然である確率」でもありません(p 値とも別物です)。

⚖️ α と β のトレードオフ

α(第1種の過誤)を小さくすると臨界値が外側へ動き、 棄却域が狭まります。 その結果、 本当に効果があるとき(H₁ が真)でも棄却できず見逃す確率 β(第2種の過誤)が増えます。 「厳しく判定する」と「見逃さない」は同じ標本サイズでは両立しにくく、 両方を同時に下げる唯一の手段は 標本サイズ n を増やす(=μ の見かけの分離を大きくする)ことです。 スライダーで μ を大きくすると、 α を保ったまま β が縮むのが確認できます。

📐 分野別慣習と根拠

つまり α は数理的必然ではなく、 「その分野が引き受ける偽陽性リスクの宣言」です。

🔗 多重比較での α 調整・事前登録

同じデータで m 個の検定を行うと、 少なくとも 1 件が偶然有意になる確率(FWER)は 1−(1−α)^m まで膨らみます(α=0.05, m=20 で約 0.64)。 これを抑えるのが 多重比較補正(Bonferroni は各検定を α/m に、 BH 法は偽発見率 FDR を制御)です。 また、 結果を見てから α を動かす・有意なものだけ報告する等の操作(p-hacking)は実効的な α を膨らませます。 これを防ぐのが解析計画をデータ取得前に固定する 事前登録(preregistration)で、 α・検定の向き・多重比較補正をあらかじめ宣言しておくのが現代的な作法です。

📐 数式

🍰 まずはやさしく

数学的に決めた確率の上限のことです。

正しく判定できているかを確認するために使います。

買い物の予算をあらかじめ決める感覚です。

数式を使って厳密な定義を学びます。

【有意水準の意味】
$$\alpha = P(\text{帰無仮説を棄却} \mid H_0 \text{が真})$$
「本当は差がないのに、 データのブレで差があると判定してしまう」確率の上限

📐 拡充A: 有意水準 α の厳密な数学定義

有意水準 α (significance level) は、 Neyman-Pearson 流の頻度主義検定における 「帰無仮説 $H_0$ が真であるときに棄却してしまう確率の上限」 として定義される。 検定設計時に事前に決める量であり、 データを見てから動かしてはならない。

$$\alpha = \sup_{\theta \in \Theta_0} P\bigl(T(\mathbf{X}) \in R \mid \theta\bigr)$$

記号: $\Theta_0$ は $H_0$ が成り立つパラメータ空間、 $T(\mathbf{X})$ は検定統計量、 $R$ は棄却域 (rejection region)。 sup は「$H_0$ の中で最悪値」を取る。

🔬 数式を言葉で読み解く: α と検定統計量

🔬 数式を言葉で読み解く: p 値との関係

$$p = P\bigl(T(\mathbf{X}) \geq t_{\mathrm{obs}} \mid H_0\bigr), \quad \text{reject} \iff p < \alpha$$

🔢 拡充B: 多重比較補正 — Bonferroni / Holm / BH

m 個の検定を独立に実施すると、 「少なくとも 1 つは誤って有意になる」確率 (FWER, family-wise error rate) は $1-(1-\alpha)^m$ となり、 m が大きくなると急速に膨張する。 α=0.05 で m=20 なら FWER = 1−0.95²⁰ ≈ 0.64。

🔬 数式を言葉で読み解く: Bonferroni 補正

$$\alpha_{\mathrm{adj}} = \frac{\alpha}{m}$$

このコードでやること: 6 つの p 値に対し、 raw / Bonferroni / Holm / BH (Benjamini-Hochberg, FDR 制御) を比較する。

📥 入力例:

raw p 値: [0.001, 0.012, 0.034, 0.048, 0.060, 0.090]
1
2
3
4
5
6
7
8
import numpy as np
from statsmodels.stats.multitest import multipletests

pvals = np.array([0.001, 0.012, 0.034, 0.048, 0.060, 0.090])
print('raw       :', pvals)
print('Bonferroni:', multipletests(pvals, 0.05, 'bonferroni')[1])
print('Holm      :', multipletests(pvals, 0.05, 'holm')[1])
print('BH (FDR)  :', multipletests(pvals, 0.05, 'fdr_bh')[1])

📤 実行結果:

raw : [0.001 0.012 0.034 0.048 0.06 0.09 ] Bonferroni: [0.006 0.072 0.204 0.288 0.36 0.54 ] Holm : [0.006 0.06 0.136 0.144 0.144 0.144] BH (FDR) : [0.006 0.036 0.068 0.072 0.072 0.09 ]

💬 raw では 4 つが p<0.05 で有意。 Bonferroni では 1 つだけ。 BH (FDR) では 2 つ。 「どの過誤を制御したいか」 で選び方が変わる。 仮説生成 (探索的) なら FDR、 重要決断 (薬の承認等) なら FWER。

⚖️ 拡充C: FWER と FDR の使い分け

指標 定義 代表法 向く場面
FWER少なくとも 1 つの偽陽性が出る確率Bonferroni, Holm, Šidák医薬承認、 検証的試験
FDR棄却した中の偽陽性の期待割合BH, BY, StoreyGWAS, マイクロアレイ、 探索的解析

FDR は FWER より緩く、 m が数千〜数万のときでも検出力を保てる。 GWAS では FDR=0.05 で 1000 個の遺伝子が出ても「平均 50 個は偽」を許す立場。

🔬 数式を言葉で読み解く

前節の数式に含まれる記号を、 日本語の意味に翻訳する。

significance level の数式は、 これらの記号を組み合わせて「データから未知量を推定する」あるいは「データの構造を要約する」プロセスを記述している。

🧮 SSDSE-B で有意水準を学ぶ — 実値計算例

ここでは t 検定の手順を追うため、 「都道府県別の平均所得」という仮想の系列(SSDSE-B-2026 自体に所得列はないため、 手順説明用に置いた例示値)を使い、 全国平均との差を評価します。 実データでの再現は後半の Python 節(A1101 総人口)を参照してください。

① 例:北海道の平均所得は全国平均と異なるか

H₀(帰無仮説):北海道の母平均 = 全国平均(μ₀ = 304万円)
H₁(対立仮説):北海道の母平均 ≠ 全国平均
標本平均 x̄ = 290、 SD = 35、 n = 10 とすると
t = (290 − 304) / (35 / √10) = −1.265
自由度 9、 両側p値 ≈ 0.237
α = 0.05 で 棄却できない(差は確認できない)

② 有意水準による判定の変化

α臨界値 t (df=9)判定第一種の誤り率
0.01±3.25不棄却1%
0.05±2.26不棄却5%
0.10±1.83不棄却10%

③ 多重比較の例(47都道府県を全国平均と比較)

47回の検定を α=0.05 で行うと、 偶然有意になる回数の期待値は 47×0.05 ≈ 2.35回。
Bonferroni 補正後の有意水準 = 0.05/47 ≈ 0.00106
BH法(FDR=5%):p値を昇順に並べ、 p₍ₖ₎ ≤ k/47 × 0.05 となる最大 k までを有意とする。

🧮 拡充D: SSDSE-B-2026 で α を体験 — 東日本 vs 西日本の人口差

SSDSE-B-2026 の 2023 年 47 都道府県を「東日本 (Code R01〜R23)」と「西日本 (R24〜R47)」に分け、 平均人口に差があるかを Welch の t 検定で調べる。

east n=23, mean = 3,377,652 west n=24, mean = 1,944,458 Welch t = 1.778, p = 0.0843

α の選び方で結論が変わる:

このコードでやること: SSDSE-B-2026 の人口を東西で分けて Welch t 検定を行い、 α の閾値ごとに結論を出す。

📥 入力例:

Code Prefecture A1101 region 0 R01000 北海道 5092000 東 12 R02000 青森県 1184000 東 ... 36 R24000 三重県 1727000 西
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pandas as pd
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].copy()
latest['region'] = latest['Code'].apply(
    lambda c: '東' if int(c[1:3]) <= 23 else '西')
east = latest[latest['region'] == '東']['A1101']
west = latest[latest['region'] == '西']['A1101']
t, p = stats.ttest_ind(east, west, equal_var=False)
print(f't = {t:.3f}, p = {p:.4f}')
for a in [0.10, 0.05, 0.01]:
    print(f'α={a}: {"reject H0" if p < a else "fail to reject"}')

📤 実行結果:

t = 1.778, p = 0.0843 α=0.1: reject H0 α=0.05: fail to reject α=0.01: fail to reject

💬 同じデータでも α の選び方で結論が分かれる。 α=0.05 が「絶対」ではなく、 慣習。 報告時は p 値そのものと効果量を示し、 読者に判断材料を渡すのが現代的。

⚖️ 拡充E: α と検出力 (1−β) のトレードオフ

α (Type I 誤り率) を厳しくすると棄却域が狭まり、 検出力 (1−β) が下がる。 両方を同時に下げるには n を増やす しかない。

$$\text{Power} = 1 - \beta = P\bigl(\text{reject } H_0 \mid H_1\bigr)$$

🔬 数式を言葉で読み解く: 検出力

条件 α 必要 n (Cohen's d=0.5, Power=0.8)
緩い基準0.10約 51 / 群
標準0.05約 64 / 群
厳しい0.01約 95 / 群
物理学3×10⁻⁷約 200+ / 群

🚧 拡充F: p-hacking と α の任意性

α を事後に動かす、 検定を複数試して有意なものだけ報告する、 中間でデータを足す等の操作は p-hacking と呼ばれ、 実効的な Type I 過誤率を α 以上に膨らませる。

対策: pre-registration (事前登録)、 holdout 検証、 効果量の併記、 信頼区間中心の報告。

📜 拡充G: α=0.05 の歴史 — Fisher、 Neyman-Pearson、 ASA

α=0.05 はあくまで 慣習。 分野・目的・サンプルサイズに応じて選ぶべきもので、 数理的な必然性はない。

🧮 数式に値を入れて手で計算する: α と type I 誤り

合成データで α=0.05 の意味と多重比較への影響を計算する。

Step 1: 単回検定

α = 0.05 → 真の H₀ を 5% で誤って棄却

Step 2: 多重検定 m=20 (補正なし)

FWER = 1 - (1-0.05)^20 ≈ 0.642 (64%) Bonferroni 補正: α/m = 0.0025 FWER = 1 - (1-0.0025)^20 ≈ 0.0488 ≈ 5% に抑制

🐍 Python で再現

1
2
3
4
5
6
alpha = 0.05
m = 20
fwer_no = 1 - (1-alpha)**m
fwer_bonf = 1 - (1-alpha/m)**m
print(f"補正なし FWER: {fwer_no:.3f}")
print(f"Bonferroni FWER: {fwer_bonf:.4f}")

📤 実行結果

補正なし FWER: 0.642 Bonferroni FWER: 0.0488

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

🐍 Python での有意水準と検定

① 基本的な検定

📥 入力例(SSDSE-B-2026 の 2023 年・47 都道府県から 3 行) 都道府県 A1101(総人口) A4101(出生数) A4103(合計特殊出生率) B4101(年平均気温) 北海道 5,092,000 24,430 1.06 11.0 東京都 14,086,000 86,348 0.99 17.6 沖縄県 1,468,000 12,549 1.6 23.8 …(全 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# ── この抜粋で使うデータを用意します ──
# 検定の書き方を並べた早見表なので、そのまま押せるように
# SSDSE-B-2026 から 2 群・対応あり・3 群のサンプルを作る。
import numpy as np
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 都道府県
temp = df['B4101'].astype(float).values          # 年平均気温
group1 = g1 = temp[:24]                          # 北海道〜静岡
group2 = g2 = temp[24:]                          # 愛知〜沖縄
group3 = g3 = df['A4103'].astype(float).values   # 合計特殊出生率
data = temp                                      # 1 標本検定用
mu0 = float(temp.mean())
# 対応のあるデータ(同じ 47 県の 2012 年と 2023 年)
_all = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
before = _all[_all['SSDSE-B-2026'] == 2012]['A1101'].astype(float).values
after = _all[_all['SSDSE-B-2026'] == 2023]['A1101'].astype(float).values
cond1, cond2, cond3 = before, after, (before + after) / 2
x = df['A1101'].astype(float).values
y = df['A4101'].astype(float).values
observed = np.array([[20, 15], [12, 18]])        # クロス集計の例

from scipy import stats

# 1標本 t検定
t, p = stats.ttest_1samp(data, popmean=0)
alpha = 0.05
if p < alpha:
    print(f"棄却: p={p:.4f} < α={alpha}")
else:
    print(f"不棄却: p={p:.4f} ≥ α={alpha}")

# 2標本 t検定(独立)
t, p = stats.ttest_ind(group1, group2)

# 対応のあるt検定
t, p = stats.ttest_rel(before, after)

# Welch t検定(不等分散)
t, p = stats.ttest_ind(g1, g2, equal_var=False)
📤 実行例(実測) 棄却: p=0.0000 < α=0.05

② 多重比較補正

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from statsmodels.stats.multitest import multipletests

p_values = [0.001, 0.01, 0.03, 0.04, 0.10, 0.20]

# Bonferroni
reject, p_adj, _, _ = multipletests(p_values, alpha=0.05, method='bonferroni')

# Benjamini-Hochberg (FDR)
reject, p_adj, _, _ = multipletests(p_values, alpha=0.05, method='fdr_bh')

# Holm
reject, p_adj, _, _ = multipletests(p_values, alpha=0.05, method='holm')

for p_orig, p_a, rej in zip(p_values, p_adj, reject):
    print(f'p={p_orig:.3f} → 補正後 p={p_a:.3f}, 棄却={rej}')
📤 実行例(実測) p=0.001 → 補正後 p=0.006, 棄却=True p=0.010 → 補正後 p=0.050, 棄却=True p=0.030 → 補正後 p=0.120, 棄却=False p=0.040 → 補正後 p=0.120, 棄却=False p=0.100 → 補正後 p=0.200, 棄却=False p=0.200 → 補正後 p=0.200, 棄却=False

③ 検出力解析

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from statsmodels.stats.power import TTestIndPower

analyzer = TTestIndPower()

# 検出可能な効果量を計算
effect = analyzer.solve_power(nobs1=50, alpha=0.05, power=0.80)
print(f'検出可能な最小効果量: {effect:.3f}')

# 必要なサンプルサイズ
n = analyzer.solve_power(effect_size=0.3, alpha=0.05, power=0.80)
print(f'必要n(各群): {n:.0f}')

# 与えられた条件での検出力
power = analyzer.solve_power(effect_size=0.5, nobs1=30, alpha=0.05)
print(f'検出力: {power:.3f}')
📤 実行例(実測) 検出可能な最小効果量: 0.566 必要n(各群): 175 検出力: 0.478

🐍 Python 実装バリエーション — scipy / statsmodels / pingouin / 多重補正

① scipy.stats(基本のt検定)

📥 入力例(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
import pandas as pd
from scipy.stats import ttest_1samp, t

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
sample = df[df['Prefecture'] == '北海道']['A1101']  # 北海道の各年の総人口
stat, p = ttest_1samp(sample, popmean=df['A1101'].mean())

alpha = 0.05
crit = t.ppf(1 - alpha/2, df=len(sample)-1)
print(f't={stat:.3f}, p={p:.4f}, 臨界値=±{crit:.3f}')
print('棄却' if abs(stat) > crit else '不棄却')
📤 実行例(実測) t=75.203, p=0.0000, 臨界値=±2.201 棄却

② statsmodels(信頼区間・効果量つき)

1
2
3
4
5
6
from statsmodels.stats.weightstats import DescrStatsW

desc = DescrStatsW(sample)
print('mean:', desc.mean)
print('95% CI:', desc.tconfint_mean(alpha=0.05))
print('t統計量, p値:', desc.ttest_mean(value=df['A1101'].mean()))
📤 実行例(実測) mean: 5297195.583333333 95% CI: (np.float64(5220910.088091534), np.float64(5373481.078575132)) t統計量, p値: (np.float64(75.20283149552917), np.float64(2.858815231951878e-16), np.float64(11.0))

③ pingouin(効果量・ベイズも自動)

1
2
3
import pingouin as pg
res = pg.ttest(sample, df['A1101'].mean(), alternative='two-sided')
print(res)  # T, dof, p-val, CI95%, cohen-d, BF10, power
📤 実行例(実測) T dof alternative ... cohen_d power BF10 T_test 75.202831 11 two-sided ... 21.709188 1.0 7.097e+12 [1 rows x 8 columns]

④ 多重比較補正

📥 入力例(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
from statsmodels.stats.multitest import multipletests
from scipy.stats import ttest_1samp
import pandas as pd

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
pvals = []
for pref, g in df.groupby('Prefecture'):
    _, p = ttest_1samp(g['A1101'], df['A1101'].mean())
    pvals.append(p)

# Bonferroni 補正
rej_b, padj_b, _, _ = multipletests(pvals, alpha=0.05, method='bonferroni')
# BH法 (FDR)
rej_bh, padj_bh, _, _ = multipletests(pvals, alpha=0.05, method='fdr_bh')
# Holm法
rej_h, padj_h, _, _ = multipletests(pvals, alpha=0.05, method='holm')

print('Bonferroni 棄却数:', rej_b.sum())
print('BH (FDR) 棄却数  :', rej_bh.sum())
print('Holm 棄却数      :', rej_h.sum())
📤 実行例(実測) Bonferroni 棄却数: 47 BH (FDR) 棄却数 : 47 Holm 棄却数 : 47

⑤ 検出力分析(事前のサンプルサイズ計算)

1
2
3
4
5
6
from statsmodels.stats.power import TTestPower

# α=0.05, 検出力=0.8, 効果量 d=0.5 → 必要n
analysis = TTestPower()
n = analysis.solve_power(effect_size=0.5, alpha=0.05, power=0.8)
print(f'必要サンプルサイズ: {n:.1f}')
📤 実行例(実測) 必要サンプルサイズ: 33.4

⑥ 等価性検定(TOST:差がないことの主張)

1
2
3
4
from statsmodels.stats.weightstats import ttost_ind
# 2群が「実質的に同じ」と主張するための片側2回検定
p, _, _ = ttost_ind(group1, group2, low=-5, upp=5)
print('TOST p値:', p)  # p<0.05 で「等価」
📤 実行例(実測) TOST p値: 6.188739091309761e-07

⚠️ よくある落とし穴

❌ 0.05 は科学的な絶対値ではない
Fisher が経験則で提案した値で、 厳密な根拠はない。 領域によっては 0.005 を推奨する声もある(Benjamin et al. 2018)。 機械的な閾値判定より、 p値の連続値と効果量 で総合判断するのが現代的。
❌ 「α = 0.05 で棄却 → 95%の確率で真」ではない
α は「帰無仮説のもとで偶然この結果が出る確率」の上限。 「対立仮説が真である確率」ではない。 後者を計算したいならベイズ統計の枠組みへ。
❌ 多重比較を考慮しない
20変数を独立に検定すれば、 α=0.05 なら 1個くらいは偶然有意になる。 多重比較なら Bonferroni 補正(α/m)か BH 法を。

🔗 「有意水準」と他の概念の関係を深掘り

① α と検出力 1-β のトレードオフ

α を小さくすると Type I 誤り(false positive)が減るが、 Type II 誤り(false negative)が増える。 「厳しい基準」は「見落としが増える」を意味する。

② Cohen's d と必要 n の関係

効果量 d 必要 n(各群、 α=0.05、 検出力=0.80)
0.2(小)394
0.5(中)64
0.8(大)26

③ Type I vs Type II の優先度

分野によって優先度が違う:

④ p値だけに頼らないアプローチ

近年の流れ:α=0.05 の機械的判定をやめ、 効果量・信頼区間・ベイズ因子(Bayes factor)など複合的に評価。 「統計的有意」を絶対視しない。

⑤ Python での検出力解析

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from statsmodels.stats.power import TTestIndPower, FTestAnovaPower
import numpy as np

# 2標本t検定の検出力
analyzer = TTestIndPower()
power = analyzer.solve_power(effect_size=0.5, nobs1=50, alpha=0.05)
print(f'検出力: {power:.3f}')

# 必要なサンプルサイズ
n = analyzer.solve_power(effect_size=0.5, alpha=0.05, power=0.80)
print(f'必要n: {n:.0f}')

# 検出可能な最小効果量
d_min = analyzer.solve_power(nobs1=50, alpha=0.05, power=0.80)
print(f'検出可能な効果量: {d_min:.3f}')
📤 実行例(実測) 検出力: 0.697 必要n: 64 検出可能な効果量: 0.566

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

1. データの確認

2. 検定・推定の設計

3. 結果の報告

4. 解釈の注意

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

  1. α=0.05 は絶対的な基準ではない:0.05 は Fisher が便宜的に提案した値で、 学問分野や状況によって 0.01、 0.001、 5σ(粒子物理学)など使い分けるべき。 創薬や安全工学では 0.01 以下、 探索的研究では 0.10 で柔軟に。 「p<0.05」が「真実」を意味するわけではない。 American Statistical Association は2016年に「単純な閾値判定からの脱却」を提言している。
  2. 多重検定問題(multiple testing):同じデータで多数の検定を行うと、 偶然有意なものが必ず混じる。 例えば100個の独立検定で α=0.05 なら、 5個は偶然有意に。 Bonferroni(α/m)、 Holm法、 BH法(FDR制御)などの補正を必須に。 オミックスやA/Bテストで特に注意。
  3. p-hacking(p値操作):データを取り続けて有意になるまで検定を繰り返す、 サブグループを試して有意なものだけ報告する、 共変量を選んで有意になる組合せを探す。 これらは 第一種の誤り率を大幅に膨らませる。 事前登録(preregistration)や解析計画書を予め策定することで防ぐ。
  4. 大標本での「常に有意」問題:n が十分大きいと、 実質的に意味のない小さな差でも有意になる(p値は標本サイズに依存)。 必ず効果量(Cohen's d、 r、 odds比など)と信頼区間を併記する。 「統計的有意 ≠ 実質的に重要」を常に意識。
  5. p>0.05 を「差がない」と誤解:p>0.05 は 「H₀ を棄却するに足る証拠がない」 だけで、 「H₀ が正しい」「差がない」とは言えない。 検出力不足(n が小さい)の可能性もある。 「証拠なし」と「不在の証拠」の区別を。 等価性検定(TOST)が「差がない」ことを示すには有用。
  6. 片側検定 vs 両側検定の選択:方向性が事前に確定している場合のみ片側検定を使う。 結果を見てから片側に変えると α が実質倍になる。 デフォルトは両側、 片側を使うなら事前にプロトコルに明記する。
  7. 群間検定の独立性違反:同じ被験者で複数回測定したデータに通常のt検定を使うと、 独立性仮定が破れて p値が小さく出すぎる。 対応のあるt検定や混合効果モデルを使う。

⚠️ 拡充I: α にまつわる落とし穴

📏 拡充J: α と信頼区間の対応関係

有意水準 α = 0.05 の両側検定と、 100×(1−α)% = 95% 信頼区間は表裏一体。

p 値の代わりに信頼区間を報告すれば、 「有意か否か」+「どれくらいの幅か」 (=効果量の不確実性) を同時に伝えられる。 近年の科学雑誌は信頼区間中心の報告を推奨。

このコードでやること: SSDSE-B-2026 東西人口差の 95% 信頼区間を計算する。

📥 入力例(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
import pandas as pd, 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].copy()
latest['region'] = latest['Code'].apply(lambda c: '東' if int(c[1:3]) <= 23 else '西')
east = latest[latest['region'] == '東']['A1101'].values
west = latest[latest['region'] == '西']['A1101'].values

diff = east.mean() - west.mean()
se = np.sqrt(east.var(ddof=1)/len(east) + west.var(ddof=1)/len(west))
# Welch df
df_v = (east.var(ddof=1)/len(east) + west.var(ddof=1)/len(west))**2 / (
    (east.var(ddof=1)/len(east))**2/(len(east)-1) +
    (west.var(ddof=1)/len(west))**2/(len(west)-1))
tcrit = stats.t.ppf(0.975, df_v)
print(f'差 = {diff:,.0f}, SE = {se:,.0f}')
print(f'95% CI = [{diff - tcrit*se:,.0f}, {diff + tcrit*se:,.0f}]')

📤 実行結果:

差 = 1,433,194, SE = 806,194 95% CI = [-209,108, 3,075,496]

💬 95% CI が 0 を含むので α=0.05 で棄却できない。 だが上限は 300 万人超 → 「効果がない」ではなく「差は最大 300 万人くらいまである可能性がある」と幅で報告するのが誠実。

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

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

📍 体系階層のパス

🌐 統計・データサイエンス推測統計検定有意水準

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

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

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

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

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

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

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

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

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

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

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

🗺 拡充H: 仮説検定の全体フレーム

  1. 研究仮説を立てる (例: 東日本の方が人口が多い)
  2. $H_0$ (帰無仮説) と $H_1$ (対立仮説) を設定 — $H_0: \mu_e = \mu_w$ vs $H_1: \mu_e \neq \mu_w$
  3. 検定方法を選ぶ (t, U, χ², F など) — 形状と尺度水準で決まる
  4. 有意水準 α を 事前に 決める (α=0.05 が標準)
  5. 検定統計量と p 値を計算
  6. p < α なら $H_0$ を棄却、 そうでなければ「不棄却」
  7. 効果量と信頼区間を併記して結論を述べる

「不棄却 = 差がない」ではなく「差があるという証拠が不足」。 検出力不足が原因の可能性を必ず考慮する。

🔗 隣接手法への橋渡し

「有意水準 α」は 仮説検定で第一種過誤を許容する事前閾値 であり、 上流の研究設計 (検出力・サンプルサイズ計算) と下流の p 値・効果量・信頼区間解釈を繋ぐ意思決定の中核パラメータ。 多重比較や事前登録と組み合わせて初めて再現可能な検定が成立する。

⬆️ 上流: 検定の前提

⬌ 並列: 他の判定基準

⬇️ 下流: 多重比較・実務調整

有意水準 α は「H0 を誤って棄却する確率の許容上限」で、 多重比較では Bonferroni / FDR で調整し、 さらに効果量で「統計的に有意 ≠ 実用的に重要」を区別する。

🌳 手法選択フロー

有意水準をどう設定するかは、 第一種誤りと第二種誤りのトレードオフ、 多重比較の有無、 分野の慣習で決まる。

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

シナリオ重視する観点候補手法
単純な 1 回検定 (探索的分析)誤検出をある程度許容α = 0.05 が標準
医療・新薬 (重大な意思決定)第一種誤りを極小化α = 0.01 または 0.001
多重比較 (m 回の検定)ファミリーワイズエラー率の制御Bonferroni: α/m
多重比較で検出力を保ちたい偽発見率 (FDR) の制御BH 法 (Benjamini-Hochberg)
物理学 (新粒子発見など)極めて高い確実性5σ ≈ α = 3×10⁻⁷
A/B テスト (実務)実装コスト vs リフトα = 0.05 + 効果量・検出力を事前設計

選んだ後の検証ステップ

  1. 事前宣言: α を観測後に動かすと p-hacking。 必ず事前に設定
  2. 多重比較補正: m=10 検定なら Bonferroni で α=0.005 など
  3. 効果量併記: p < α でも効果量が小さければ実用的意味は薄い
  4. 検出力 1-β の確認: 必要サンプル数 n は α だけでなく β にも依存
  5. 分野慣習との整合: 心理学 0.05、 物理 5σ、 ゲノミクス 5×10⁻⁸、 など領域で違う

🧠 直感を深める — α は「引き受ける偽陽性リスク」の宣言

追記(既存の直感節の補完)。 有意水準 α のいちばんの核心は、 「帰無仮説 H₀ が本当は正しいのに、 データのブレだけで棄却してしまう事故(第一種の過誤=偽陽性)を、 どの確率まで許すか」を検定の前に宣言した数字だという点です。 α=0.05 とは「効果が本当は無い状況でも、 20 回に 1 回はうっかり“有意”と言ってしまうのを承知で進めます」という覚悟の表明にほかなりません。

棄却域という「線引き」の意味

検定統計量が従う分布(H₀ が真と仮定した分布)の裾に、 面積がちょうど α になる領域を切り取ります。 これが棄却域で、 その境界が臨界値です。 観測した統計量が棄却域に落ちれば「偶然にしては起こりにくい」として H₀ を棄却します。 α を 0.05 → 0.01 に下げるとは、 棄却域を狭め、 臨界値を外側へ押しやること。 「よほど極端でないと棄却しない」厳しい態度に変わります(上の🎮ウィジェットで赤い領域の面積が常に α と一致することを確かめてください)。

0.05 は「発見」ではなく「慣例」

0.05 という値に数理的な必然性はありません。 R.A. Fisher が 1925 年に「便利な区切り」として例示した数字が慣習として定着しただけです。 だからこそ、 誤判定のコストが高い分野(医薬・素粒子物理・ゲノム)では 0.01・5σ・5×10⁻⁸ とはるかに厳しい α が採用されます。 α は「真理の境界線」ではなく「その分野が引き受ける偽陽性リスクの水準」です。

関連: 仮説検定 / 第一種の過誤 / p 値

⚠️ 落とし穴をさらに深掘り(重要)

追記(既存の落とし穴節の補完)。 α をめぐる誤りは「数式の間違い」ではなく「運用と解釈の間違い」として現れます。 とくに再現性危機の文脈で繰り返し問題になった論点を整理します。

❌ α と p 値を混同する
α は事前に固定する閾値(設計時の意思決定)、 p 値はデータを見た後に計算する確率(観測の要約)。 役割も生成タイミングも別物です。 「α=0.03 だった」という言い方は、 たいてい p 値と取り違えています。 p 値のページも参照。
❌ 結果を見てから α を動かす(事後変更)
「p=0.06 だから今回は α=0.10 で有意にしよう」は典型的な p-hacking。 実効的な第一種の過誤率を宣言した α より大きく膨らませます。 α・検定の向き・補正法はデータ取得前に決めるのが鉄則です。
❌ 多重比較で α が膨張していることに気づかない
m 個の検定を独立に行うと「少なくとも 1 件が偶然有意になる確率(FWER)」は 1−(1−α)^m まで膨らみます。 α=0.05・m=20 で約 0.64、 m=100 なら約 0.994。 サブグループ別・年度別・変数総当たりの検定は、 気づかぬうちに何十回もの検定になりがちです。 多重比較補正が必要です。
❌ 片側/両側を都合よく選ぶ
方向性が事前に確定している場合にのみ片側検定を使えます。 結果を見てから片側に切り替えると、 実効的な α が実質 2 倍になります。 既定は両側、 片側にする場合はプロトコルに事前明記を。
❌ 第一種と第二種のトレードオフを忘れる
α を小さくすれば偽陽性は減りますが、 同じ n では見逃し β(第二種の過誤)が増え、 検出力 1−β が下がります。 「厳しくする」ことは無料ではありません。 両立させる唯一の王道は n を増やすこと。 検出力のページも参照。
❌ 「統計的に有意」を「実質的に重要」と読み替える
n が大きければ、 実務上どうでもよい小さな差でも p<α になります。 有意性は「差の存在の証拠の強さ」であって「差の大きさ」ではありません。 必ず効果量信頼区間を併記してください。

🧪 多重比較で α が膨らむ — SSDSE-B-2026 実測

上の「多重比較で α が膨張する」落とし穴を、 SSDSE-B-2026(2023 年・47 都道府県)の実データで確かめます。 各数値列を人口(A1101)あたりの率に変換し、 「東日本(Code R01〜R23, 23 県)と西日本(R24〜R47, 24 県)で率に差があるか」を全列について Welch の t 検定で調べ、 補正の有無で「有意」件数がどう変わるかを数えます。 これは 100 本以上の同時検定であり、 補正なしのままでは偽陽性が紛れ込むリスクが高い状況です。

📥 入力例(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
27
28
29
30
31
import pandas as pd, numpy as np
from scipy import stats
from statsmodels.stats.multitest import multipletests

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
latest = df[df['SSDSE-B-2026'] == 2023].copy()
latest['region'] = latest['Code'].apply(
    lambda c: '東' if int(str(c)[1:3]) <= 23 else '西')

# 各数値列を「人口(A1101)あたり」の率に変換(規模効果を除く)
pop = latest['A1101']
num = latest.select_dtypes('number').drop(columns=['SSDSE-B-2026'])
rate = num.div(pop, axis=0).drop(columns=['A1101'])
rate = rate.loc[:, rate.std() > 0].dropna(axis=1)

east = latest['region'] == '東'
pvals = [stats.ttest_ind(rate.loc[east, c], rate.loc[~east, c],
                          equal_var=False).pvalue for c in rate.columns]
pvals = np.array(pvals)
m, alpha = len(pvals), 0.05

raw  = int((pvals < alpha).sum())
bonf = int(multipletests(pvals, alpha, 'bonferroni')[0].sum())
holm = int(multipletests(pvals, alpha, 'holm')[0].sum())
bh   = int(multipletests(pvals, alpha, 'fdr_bh')[0].sum())

print(f'検定数 m        : {m}')
print(f'補正なし p<0.05 : {raw}')
print(f'Bonferroni (α/m={alpha/m:.5f}): {bonf}')
print(f'Holm            : {holm}')
print(f'BH (FDR)        : {bh}')

📤 実行結果:

検定数 m : 108 補正なし p<0.05 : 37 Bonferroni (α/m=0.00046): 8 Holm : 8 BH (FDR) : 26

💬 補正なしでは 108 検定中 37 列が「有意(p<0.05)」でした。 ところが Bonferroni(各検定を α/m≈0.00046 に厳格化)では 8 列、 Holm でも 8 列、 偽発見率を制御する BH 法(FDR)でも 26 列まで減ります。 同じデータ・同じ α=0.05 でも、 「多重性をどう扱うか」で結論が大きく動くことが実測で分かります。 FWER を厳しく守りたい確認的分析なら Bonferroni/Holm、 探索的に候補を絞るなら BH(FDR)が現実的です。 補正前の 37 列をそのまま「発見」と報告するのは、 α の膨張を見逃した典型的な誤りです。

※ 実測値は SSDSE-B-2026.csv(cp932, skiprows=[1], 2023 年 47 県)を人口比に変換した Welch t 検定の集計。 列数 m は「率に変換でき分散が正の列」の数に依存します。 東西の境界(Code 23/24)は説明のための便宜的な二分であり、 因果を主張するものではありません。

関連: 多重比較 / 多重検定 / 事前登録

🚀 発展 — 検出力・補正・代替枠組み

追記(発展的トピック)。 α を「点」ではなく、 検定設計・多重性・意思決定論の中に位置づけます。

① α・β・検出力の四位一体

検定設計では α(第一種)、 β(第二種)、 効果量、 標本サイズ n の 4 つが連動し、 3 つを決めると残り 1 つが定まります。 慣例では検出力 1−β ≥ 0.80 を確保するよう n を逆算します(事前の検出力分析)。 α を 0.05→0.01 と厳しくすると、 同じ n・同じ効果量では検出力が下がるため、 厳格化と引き換えに必要 n が増えるのが原則です。 検出力のページで n の逆算を扱っています。

② Neyman-Pearson 流と Fisher 流

α を事前固定の合否ラインとして運用し、 棄却域を最適設計する立場は Neyman-Pearson の枠組み(1933)に由来します(最強力検定を与える Neyman-Pearson の補題)。 一方 Fisher は p 値を証拠の連続的な強さとみなし、 機械的な 0.05 判定を意図していませんでした。 現代の実務は両者の折衷で、 「α で最終判断しつつ p 値と効果量も併示する」形が主流です。

③ 多重比較補正の見取り図

制御したい過誤で選びます。 FWER(少なくとも 1 件の偽陽性を出す確率)を守るなら Bonferroni(α/m, 単純厳格)・Holm(段階的でより高検出力)・Šidák(独立仮定で正確)。 FDR(棄却した中の偽陽性の期待割合)を守るなら Benjamini-Hochberg(BH)。 検定数が数千〜数万に及ぶゲノム解析では、 FWER を守ると検出力がほぼ消えるため FDR が標準です。 「重大な単一決定なら FWER、 大規模スクリーニングなら FDR」が目安。

④ 効果量・信頼区間との併用

α=0.05 両側検定で H₀: μ=μ₀ を棄却することは、 95% 信頼区間が μ₀ を含まないことと表裏一体です(α=0.01 なら 99% 区間)。 p 値の代わりに信頼区間を報告すれば、 「有意か否か」だけでなく「効果がどの範囲にありうるか(不確実性の幅)」まで一度に伝えられます。 近年の学術誌は信頼区間効果量中心の報告を推奨しています。

⑤ 「有意性偏重」への反省 — ASA 声明と α=0.005 提案

こうした議論の背景には事前登録(preregistration)の重要性があります。 α・仮説・検定の向き・多重比較補正をデータ取得前に公開して固定すれば、 p-hacking や HARKing(結果を見てからの仮説づくり)の余地が構造的に消えます。 事前登録のページも参照。

⑥ ベイズ的アプローチという別枠組み

「対立仮説が正しい確率」を知りたいなら、 頻度主義の α ではなくベイズ統計へ移ります。 ベイズファクター(Bayes factor)は 2 つの仮説の下でのデータの尤度比で、 「データがどちらの仮説をどれだけ支持するか」を連続的に表します。 α のような固定閾値による二分ではなく、 証拠の重みそのものを扱う枠組みです(本用語集にベイズファクター単独ページは未作成のため、 ここではテキストで補足)。