論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
再現性危機
Reproducibility Crisis
研究倫理・統計改革
別称: 再現性の危機 / Replication Crisis

🔖 キーワード索引

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

💡 30秒結論📍 文脈🎨 直感📐 数式・定義🔬 数式を言葉で読み解く🧮 SSDSE実値計算🐍 Python実装⚠️ 落とし穴🌐 関連手法🔗 関連用語📚 関連グループ🔗 隣接手法🎮 触って理解する

reproducibility crisis」は統計データ分析の文脈で扱う重要概念のひとつ。 本ページでは「reproducibility crisis」を取り巻く中核キーワードを以下にチップで一覧化する。 各キーワードは関連する概念・手法・道具立てを含み、 文献検索や学習計画の起点になる。

reproducibility crisis統計分析SSDSE-B-2026前提条件適用範囲落とし穴関連手法Python 実装検証方法

これらのキーワードは「reproducibility crisis の理解 → 適用 → 検証」のプロセスを構成する。 各章で詳しく解説する。

💡 30秒で分かる結論 — 再現性危機

🍰 まずはやさしく

科学の信頼が揺らいでいる状態のことです。

正しい研究の結果を見分けるために使います。

部活の練習法を真似しても結果が出ない例に似ています。

この章では危機の原因と対策を読みます。

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

🍰 まずはやさしく

研究の結果が再現できない問題のことです。

データ分析の注意点を学ぶために使います。

同じデータから違う結論が出るスマホの集計のような例です。

このページでは12の項目に分けて詳しく読みます。

再現性危機(Reproducibility Crisis)は、 2010 年代に心理学・医学・経済学で続々と発覚した 「公表結果が追試で再現されない」 事態の総称。 Open Science Collaboration (2015) の心理学 100 論文プロジェクト、 がん生物学 Reproducibility Project(Begley & Ellis 2012 の 53/53 → 6 件のみ再現)、 経済学 Camerer et al. (2016) の 11/18 = 61% 再現 など、 一連の大規模再現プロジェクトが「危機」を可視化した。

本ページは 再現性危機(Reproducibility Crisis) を、 ジャストインタイム型データサイエンス教育の文脈で 12 のセクションに分けて解説します。 SSDSE-B-2026 を使って「同じデータから異なる結論が出る」現象を実演し、 事前登録p-hacking などの原因と 事前登録 などの対抗手段との関係を学びます。

🎨 直感で掴む — 再現性危機とは何が起きているのか

🍰 まずはやさしく

もう一度やっても同じ結果にならない現象です。

科学の当たり前が崩れたことを知るために使います。

友達に教わった勉強法で点数が上がらない感覚です。

ここでは実際に起きた再現できない事例を読みます。

「もう一度同じ実験をすれば、 同じ結果が出るはず」 — これが科学の大前提です。 ところが 2010 年代以降、 心理学・医学・経済学・がん生物学などの分野で 「公表された有名な結果が、 追試では再現できない」 事例が次々と報告されました。 これが 再現性危機(Reproducibility Crisis) です。

象徴的なのは Open Science Collaboration (2015):心理学トップ誌 3 誌に掲載された 100 本の論文 を世界中の研究者チームが追試したところ、 「元論文と同じ方向に有意な結果」が出たのはわずか 36 本。 効果量は元論文の平均で半分以下に縮みました。

分野再現プロジェクト再現率出典
心理学Reproducibility Project: Psychology36 / 100 (36%)Open Science Collaboration (2015) Science
がん生物学Amgen 内部監査6 / 53 (11%)Begley & Ellis (2012) Nature
医薬品Bayer 内部監査21 / 67 (31%)Prinz et al. (2011) Nat Rev Drug Discov
経済学Experimental Economics Replication11 / 18 (61%)Camerer et al. (2016) Science
社会科学SSRP(Nature/Science 掲載論文)13 / 21 (62%)Camerer et al. (2018) Nat Hum Behav
機械学習NeurIPS 再現性チャレンジ50–70%Pineau et al. (2020) JMLR

これらの数字は「研究者が嘘をついた」ではありません(捏造はごく一部)。 大半は (a) 過小検出力(n が小さい)、 (b) 多重比較の見落とし、 (c) p-hacking、 (d) garden of forking paths、 (e) 出版バイアス の組み合わせで発生する システムレベルの構造問題 です。

本ページではこのあと、 数式(多重比較によるエラー率増大)・SSDSE 実データで「分岐する小道」の実演・Python による p-hacking シミュレーション・対抗策(事前登録、 オープンサイエンス)を順に追いかけます。

🎨 概念図

本用語に関連する代表的な可視化を 3 点示す。

p 値ハッキング
図 1: p 値ハッキングと再現性問題(恣意的な分析で偽陽性が量産される)。
サンプルサイズと検出力
図 2: サンプルサイズ不足が低い検出力と再現性低下を生む。
検定統計量の分布
図 3: 効果量が小さい研究は再現が困難(重なりの大きさ)。

📐 数式・定義 — 再現性危機を生む 3 つの数式

🍰 まずはやさしく

間違いが起きる仕組みを数式で表したものです。

なぜ間違った結果が出るかを証明するために使います。

買い物でたまたま安い店を引いたような偶然の例です。

ここではエラー率や検出力の計算式について読みます。

① ファミリーワイズ・エラー率(FWER)

$m$ 個の独立な検定をそれぞれ有意水準 $\alpha$ で行うと、 少なくとも 1 件は偶然有意になる確率は:

$$ \text{FWER} = 1 - (1 - \alpha)^m $$

$\alpha = 0.05, m = 20$ なら $1 - 0.95^{20} \approx 0.642$、 つまり 64%。 SSDSE-B-2026 の 112 列で総当たり相関を取ると、 ほぼ確実に偽の「有意」が大量に出る。

② 検出力(power)と true positive rate

真の効果サイズ $d$、 サンプルサイズ $n$、 有意水準 $\alpha$ のもとで、 H1 が真のときに H0 を棄却できる確率:

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

典型的な心理学研究の検出力は 0.20–0.40 と報告されている(Button et al. 2013)。 つまり「本当に効果があっても 60–80% の確率で見逃す」 = 公表されているのは 運良く有意だった研究 ばかり。

③ Positive Predictive Value(PPV、 Ioannidis 2005)

公表された「有意」が 本当に 正しい確率:

$$ \text{PPV} = \frac{(1-\beta) \cdot R}{(1-\beta) \cdot R + \alpha} \quad\text{where } R = \frac{P(H_1)}{P(H_0)} $$

$\alpha=0.05, 1-\beta=0.30, R=0.10$(仮説 10 件中 1 件が真)なら:

$$ \text{PPV} = \frac{0.30 \times 0.10}{0.30 \times 0.10 + 0.05} = \frac{0.03}{0.08} = 0.375 $$

公表「有意」のうち 62.5% は偽陽性。 これが Ioannidis (2005) “Why Most Published Research Findings Are False” の核心。

📐 再現性を定量化する 4 つの指標

再現性危機の議論では 「再現できた/できなかった」を二値で判定しがちだが、 厳密には複数の連続指標がある。

① 効果量の一致(OSC 2015 の主要指標)

元論文の効果量 $d_{orig}$ と追試の $d_{rep}$ について、 95% CI が重なるか:

$$ \text{Replication success}_1 = \mathbb{1}[d_{rep} \in \text{CI}_{95}(d_{orig})] $$

② 方向の一致と有意性(OSC 2015 副指標)

同じ符号で、 かつ追試で $p < 0.05$:

$$ \text{Replication success}_2 = \mathbb{1}[\text{sign}(d_{rep})=\text{sign}(d_{orig}) \wedge p_{rep} < 0.05] $$

③ 縮小係数(shrinkage ratio)

追試での効果量が元論文の何倍に縮小したか:

$$ \text{Shrinkage} = \frac{d_{rep}}{d_{orig}} $$

OSC (2015) では平均 0.50(半減)、 がん生物学 Begley & Ellis では 0.20 以下に縮小。

④ ベイズ・リプリケーション比(Bayes Replication Ratio)

追試データの下で H1 / H0 の事後確率比:

$$ \text{BF}_{10}^{rep} = \frac{P(D_{rep} | H_1)}{P(D_{rep} | H_0)} $$

BF > 10 で「強い支持」、 BF < 1/10 で「H0 への強い支持」とされる。 Verhagen & Wagenmakers (2014) が標準枠組みを提示。

📊 ケーススタディ — 3 つの有名な再現失敗

ケース① Power Posing(Carney, Cuddy & Yap 2010 → 再現失敗)

「強いポーズ(手を腰に当てる、 胸を張る)を 2 分間続けるとテストステロンが上昇し、 リスク志向が高まる」という心理学研究。 Cuddy の TED トークは累計 7000 万回再生され、 ベストセラー本にもなった。

追試(Ranehill et al. 2015, n=200)では ホルモン効果は完全に消失、 自己報告のみ部分的に残った。 元著者の一人 Dana Carney が 2016 年に「もうこの効果を信じていない」と公式表明。 元論文は n=42(過小検出力)、 多重比較未補正、 p=0.05 ぎりぎり。

教訓: 小さい n、 多重比較、 p≈0.05 → 古典的な再現失敗パターン。

ケース② Ego Depletion(Baumeister 1998 → 再現失敗)

「意志力は有限な資源で、 使うと枯渇する」という社会心理学の大ヒット理論。 200+ 論文が引用、 教科書にも掲載。

Hagger et al. (2016) の Many Labs 追試(23 ラボ、 n=2,141)で効果サイズ d = 0.04(実質ゼロ)。 メタアナリシス(Carter et al. 2015)でも出版バイアス補正後の効果量は無視できるサイズに。

教訓: 「教科書に載るほど確立した理論」でも、 元になった研究群が出版バイアス・小サンプルで構成されていれば崩壊する。

ケース③ STAP 細胞(小保方ら 2014 → 撤回)

これは 意図的不正のケースで、 上記の再現性危機の主流(非意図的構造問題)とは別カテゴリ。 Nature 2014 年 1 月号に掲載された「酸処理で多能性幹細胞ができる」という主張が、 世界中の追試で完全に再現できず、 元論文は撤回。

教訓: 再現性危機の議論と「研究不正」を混同しないこと。 不正は犯罪、 再現性危機は構造問題。 ただし結果として、 日本では 2014 年以降に研究データの open access、 lab notebook 義務化、 DMP(データマネジメント計画)整備が大きく進んだ。

🔬 数式を言葉で読み解く

先ほどの 3 つの数式に出てきた記号と概念を、 再現性危機の文脈で一つずつ確認します。 とくに「ふだんの講義では当たり前」に聞こえる記号が、 危機の構造のなかでは 非自明な仮定の塊 になっていることを意識してください。

記号意味と再現性危機での読み方
$\alpha$有意水準(通常 0.05)。 第 1 種の過誤率。 m 回検定すると有効 α は $1-(1-\alpha)^m$ に膨らむのが見落とされがち。
$\beta$第 2 種の過誤率。 検出力 = $1-\beta$。 心理学では $1-\beta$ が 0.20–0.40 と低く、 真の効果を見逃す確率が高い。
$m$検定回数。 「分岐する小道」で 1 つの研究内で実質 $m$ 回検定している場合、 自分が認識しているより遥かに多い。
$R$事前オッズ $P(H_1)/P(H_0)$。 「もっともらしい仮説」だけ検定するなら $R$ は大きく、 探索的にバラまくと $R$ は小さい。
$d$効果量(Cohen's d 等)。 出版バイアスのもとでは 公表される $d$ は真の $d$ より大きく偏る(winner's curse)。
FWERFamily-Wise Error Rate。 一群の検定の中で 少なくとも 1 件 偽陽性が出る確率。 Bonferroni 補正で抑制する。
FDRFalse Discovery Rate。 「有意」と判定したうちの偽陽性割合の期待値。 Benjamini-Hochberg 法で制御。
PPVPositive Predictive Value。 「有意な研究」のうち真に正しい割合。 低 PPV = 公表結果の大半が偽。

再現性危機の本質は、 ひとつひとつの記号や数式が複雑なのではなく、 「α=0.05 をどう守るか」という問いが研究プロセス全体(事前計画・データ収集・分析・公表)に影響していることです。 個別の検定ではなく、 研究エコシステム全体のエラー制御として読み直す必要があります。

🔬 「再現性」の 4 つの概念を区別する(Goodman et al. 2016)

「再現性危機」と一口に言うが、 実は 4 種類の異なる「再現性」がある。 Goodman, Fanelli & Ioannidis (2016) Science Translational Medicine による分類:

用語何を再現するかSSDSE での例
Methods reproducibility(方法的再現性)手法を 同じデータに適用して同じ数値を得るSSDSE-B-2026 を読み込み、 公開コードを実行すると元論文と同じ r、 p が出る
Results reproducibility(結果的再現性)同じ手法を 新規データに適用して同じ結論を得る2024 年版 SSDSE-B-2024 で同じ分析をしても、 同じ符号・有意性が出る
Inferential reproducibility(推論的再現性)同じデータから 異なる研究者が独立に分析し、 同じ結論に到達他チームに SSDSE を渡し、 同じ仮説で独立分析 → 同じ結論
Replicability(広義の追試)独立な研究者・データ・操作で同じ 現象を観察国勢調査・住基ネット・別の都道府県統計でも同じ高齢化トレンドを観察

📌 「再現性危機」と言うとき、 多くの議論は Replicability を指している。 一方 GitHub にコードを公開して数値再現する Methods reproducibility は最低条件。 SSDSE のような公的データを使うときは、 Inferential reproducibility まで担保する必要がある。

🧮 SSDSE-B-2026 実値で計算してみる — 同じデータから 3 つの結論

SSDSE-B-2026(47都道府県・112 項目)を使って「分岐する小道(garden of forking paths)」を実演します。 仮説「高齢化と人口減少には関連がある」を検証する際、 分析者の選択次第で 3 つの異なる結論が出ます。

📌 注(独自定義): 以下の分岐①〜③の r・p は、「人口変化率」「外れ値基準」「サブグループ区分」の 独自の操作的定義に基づく 例示(模式値)であり、 forking paths が結論をどう動かすかを示すための説明用の値です。 CSV からの単一の確定出力ではなく、 厳密な数値は定義の取り方に依存します。

分岐①:使う「高齢化指標」を変える

高齢化指標人口変化率との相関 rp 値結論
65歳以上人口比率(%)−0.8113.2e-12強い負の相関 — 有意
75歳以上人口比率(%)−0.7682.1e-10強い負の相関 — 有意
老年人口指数(65+/15-64)−0.7945.7e-11強い負の相関 — 有意
平均年齢(年)−0.7324.8e-9強い負の相関 — 有意

→ 結論①「高齢化が進むほど人口は減る」。 ただし複数指標を試して 最も強い相関だけを論文に載せる → p-hacking。

分岐②:外れ値を除外するかどうか

前処理nrp
全 47 県47−0.8113.2e-12
東京・沖縄を外れ値除外45−0.7522.3e-9
人口 100 万人未満を除外36−0.6127.5e-5
IQR×1.5 で機械除外(4 県)43−0.8388.1e-13

→ 結論②「相関は前処理で −0.61 から −0.84 まで変わる」。 数値の幅は「事前にどの前処理を選ぶか」次第。

分岐③:層別解析で「サブグループ」を発見

サブグループnrp
東日本(24 県)24−0.8323.9e-7
西日本(23 県)23−0.7761.4e-5
人口減少県のみ39−0.4217.2e-3
人口増加県のみ8+0.1240.769

→ 結論③「人口増加県では 相関が消える」。 これだけ取り出せば「都市圏では関連がない」とも言える。

📌 重要: ①×②×③ = 4 × 4 × 4 = 64 通りの分析パス。 そのうち「最も p が小さい」「最も r が大きい」だけ報告すると、 実質的に α は 0.05 から大幅に膨らむ。 これが garden of forking paths(Gelman & Loken 2014)。 解決策は 事前登録1 つの分析パスを事前に決め打ちすること。

🧮 SSDSE 拡張 — 効果量とブートストラップ CI の可視化

再現性危機への実践的回答の一つは「単一の p 値ではなく 効果量と不確実性を示す」こと。 SSDSE-B-2026 で 東日本 vs 西日本の高齢化率について、 Cohen's d とブートストラップ 95% CI を計算する。

🎯 このコードでやること

点推定の Cohen's d だけでなく、 5000 回ブートストラップで d の標本分布を生成し、 2.5% / 97.5% 分位点で 95% CI を求める。 p 値の二値判定から「効果の大きさと幅」へ視点を移す。

📥 入力データ: SSDSE-B-2026 2023 年、 47 都道府県の高齢化率。 東日本 23 県(北海道〜愛知)vs 西日本 24 県。

 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
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])
df_2023 = df[df['SSDSE-B-2026'] == 2023].copy()
df_2023['aging'] = df_2023['A1303'] / df_2023['A1101'] * 100

east_pref = ['北海道','青森県','岩手県','宮城県','秋田県','山形県','福島県',
              '茨城県','栃木県','群馬県','埼玉県','千葉県','東京都','神奈川県',
              '新潟県','富山県','石川県','福井県','山梨県','長野県','岐阜県',
              '静岡県','愛知県']
e = df_2023[df_2023['Prefecture'].isin(east_pref)]['aging'].values
w = df_2023[~df_2023['Prefecture'].isin(east_pref)]['aging'].values

def cohens_d(a, b):
    pooled = np.sqrt((a.var(ddof=1) + b.var(ddof=1)) / 2)
    return (a.mean() - b.mean()) / pooled

d_point = cohens_d(e, w)
print(f'点推定 Cohen\\'s d = {d_point:+.4f}')

# t 検定(参考)
t, p = stats.ttest_ind(e, w, equal_var=False)
print(f'参考 t={t:+.3f}, p={p:.4f}')

# Bootstrap 95% CI
# np.random.seed = None は「代入」で種を設定していない。
# 再現性のページなので、種を固定した乱数生成器を使う。
rng = np.random.default_rng(0)
boots = []
for _ in range(5000):
    e_b = rng.choice(e, len(e), replace=True)
    w_b = rng.choice(w, len(w), replace=True)
    boots.append(cohens_d(e_b, w_b))
boots = np.array(boots)
ci_lo, ci_hi = np.percentile(boots, [2.5, 97.5])
print(f'95% Bootstrap CI of d = [{ci_lo:+.3f}, {ci_hi:+.3f}]')
print(f'CI 幅 = {ci_hi - ci_lo:.3f}')
print(f'\n解釈: d=0.2 小, 0.5 中, 0.8 大 (Cohen 1988)')

📤 実行結果:

点推定 Cohen's d = -0.2350 参考 t=-0.804, p=0.4259 95% Bootstrap CI of d = [-0.846, +0.336] CI 幅 = 1.182 解釈: d=0.2 小, 0.5 中, 0.8 大 (Cohen 1988)

💬 結果の読み方: 点推定 d=0.57 は中程度の効果だが、 95% CI が [-0.06, +1.18] と 0 をまたぐ。 つまり「東日本の方が高齢化が進んでいる可能性が高いが、 同程度の可能性も否定できない」というのが正直な結論。 p=0.072 で「有意でない」と判定するのと、 d と CI を示すのとでは、 情報量が全く違う。 後者は政策判断に直接使える。

🧮 数式に値を入れて手で計算する: 偽陽性発見率 (FDR)

SSDSE-B-2026 の 47 都道府県 × 数百指標から 1000 種の対応分析(例:高齢化率と各経済指標の相関 t 検定)を網羅的に行ったシナリオで、 偽陽性発見率(FDR)を計算する。

Step 1: 1000 検定中

状態件数
真陽性 TP50
偽陽性 FP40
真陰性 TN800
偽陰性 FN110

Step 2: FDR

FDR = FP/(TP+FP) = 40/90 ≈ 0.444 (44%) 有意とされた発見の 44% が偽陽性 → 再現性危機

🐍 Python で再現

1
2
3
tp, fp = 50, 40
fdr = fp / (tp + fp)
print(f"FDR: {fdr:.3f}")

📤 実行結果

FDR: 0.444

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

🐍 Python 実装 — 再現性危機を実感する 4 つのコード

① 多重比較問題:SSDSE 112 列で総当たり相関

🎯 このコードでやること: SSDSE-B-2026 の 112 列から数値列を選び、 すべての 2 列ペアで Pearson 相関を計算。 「α=0.05 で有意」な相関がどれだけ大量に出るかを確認する。

📥 入力データ:

SSDSE-B-2026 シェイプ: (564, 112) # 47県 × 12年 × 112項目 数値列: 約 110 列 ペア総数: 110 × 109 / 2 = 5,995 ペア
 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
import pandas as pd
import numpy as np
from scipy import stats
from itertools import combinations

# SSDSE-B-2026 読み込み
df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df_2023 = df[df['SSDSE-B-2026'] == 2023].copy()

# 数値列のみ抽出
num_cols = df_2023.select_dtypes(include=[np.number]).columns.tolist()
num_cols = [c for c in num_cols if c not in ['SSDSE-B-2026']]
print(f'数値列数: {len(num_cols)}')
print(f'ペア数  : {len(num_cols)*(len(num_cols)-1)//2}')

# 全ペア相関
results = []
for c1, c2 in combinations(num_cols, 2):
    x = df_2023[c1].dropna()
    y = df_2023[c2].dropna()
    common = x.index.intersection(y.index)
    if len(common) < 10:
        continue
    r, p = stats.pearsonr(df_2023.loc[common, c1], df_2023.loc[common, c2])
    results.append({'c1': c1, 'c2': c2, 'r': r, 'p': p})

res = pd.DataFrame(results)
n_sig_05  = (res['p'] < 0.05).sum()
n_sig_001 = (res['p'] < 0.001).sum()
n_sig_bonf = (res['p'] < 0.05 / len(res)).sum()

print(f'\n全ペア数         = {len(res):,}')
print(f'p < 0.05  有意   = {n_sig_05:,} ({n_sig_05/len(res)*100:.1f}%)')
print(f'p < 0.001 有意   = {n_sig_001:,} ({n_sig_001/len(res)*100:.1f}%)')
print(f'Bonferroni 有意  = {n_sig_bonf:,} (α/n = {0.05/len(res):.2e})')

📤 実行結果:

数値列数: 109 ペア数 : 5,886 全ペア数 = 5,886 p < 0.05 有意 = 5,063 (86.0%) p < 0.001 有意 = 4,507 (76.6%) Bonferroni 有意 = 4,075 (α/n = 8.49e-06)

💬 結果の読み方: 何の調整もせず α=0.05 で総当たりすると 5,886 ペア中 5,063 件が「有意」。 ここから「興味深い相関」だけ拾って論文にすれば、 容易に偽の発見が量産される。 SSDSE は実データなので、 多くの相関は本物(同じ都道府県の様々な指標は当然連動する)だが、 事前に仮説を 1 つに絞らないと有意性の意味は失われる

② p-hacking シミュレーション:分岐の小道で「効果」を作り出す

🎯 このコードでやること: SSDSE-B-2026 から強く相関する 2 列を選び、 「外れ値除外」「対数変換」「サブグループ分割」を組み合わせて 合計 16 通りの分析パスを試す。 そのうち最小 p 値だけ報告したらどうなるかを観察する。

📥 入力データ: SSDSE-B-2026 から総人口(A1101)と年少人口(A1301)の 2 列。

 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
42
43
44
45
46
47
48
49
50
51
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])
df_2023 = df[df['SSDSE-B-2026'] == 2023].copy()

# 分析対象 2 列
x_col = 'A1101'      # 総人口
y_col = 'A1301'     # 年少人口

paths = []

# 16 通りの「分岐の小道」
for outlier in ['none', 'top2', 'bottom2', 'iqr']:
    for transform in ['raw', 'log']:
        for subset in ['all', 'east']:
            d = df_2023.copy()
            # 外れ値処理
            if outlier == 'top2':
                d = d.sort_values(x_col).iloc[:-2]
            elif outlier == 'bottom2':
                d = d.sort_values(x_col).iloc[2:]
            elif outlier == 'iqr':
                q1, q3 = d[x_col].quantile([0.25, 0.75])
                iqr = q3 - q1
                d = d[(d[x_col] >= q1 - 1.5*iqr) & (d[x_col] <= q3 + 1.5*iqr)]
            # サブセット
            if subset == 'east':
                east = ['北海道','青森県','岩手県','宮城県','秋田県','山形県','福島県',
                        '茨城県','栃木県','群馬県','埼玉県','千葉県','東京都','神奈川県']
                d = d[d['Prefecture'].isin(east)]
            # 変換
            x = d[x_col].dropna()
            y = d[y_col].dropna()
            common = x.index.intersection(y.index)
            x = d.loc[common, x_col]
            y = d.loc[common, y_col]
            if transform == 'log':
                x, y = np.log(x), np.log(y)
            if len(x) < 5:
                continue
            r, p = stats.pearsonr(x, y)
            paths.append({'outlier': outlier, 'transform': transform,
                          'subset': subset, 'n': len(x), 'r': r, 'p': p})

res = pd.DataFrame(paths)
print(res.sort_values('p').head(5).to_string(index=False))
print(f'\n最小 p 値 = {res["p"].min():.3e}')
print(f'最大 p 値 = {res["p"].max():.3e}')
print(f'p < 0.05 のパス数 / 全パス数 = {(res["p"] < 0.05).sum()}/{len(res)}')

📤 実行結果:

outlier transform subset n r p none raw all 47 0.996678 1.155541e-50 bottom2 raw all 45 0.996595 3.030565e-48 top2 raw all 45 0.995185 5.124591e-45 none log all 47 0.993951 8.067034e-45 bottom2 log all 45 0.993498 3.218113e-42 最小 p 値 = 1.156e-50 最大 p 値 = 1.418e-08 p < 0.05 のパス数 / 全パス数 = 16/16

💬 結果の読み方: 総人口と年少人口は本当に強く結びついている(r = 0.980〜0.999)ので、 16 パスすべてが有意になり、 結論そのものは分岐の小道に左右されなかった。 まずこの前提を押さえてほしい ── 分岐が結論を変えるのは、 効果が弱いときである。 一方で p 値は 1.156e-50 から 1.418e-08 まで 42 桁も動く。 同じ「総人口 ↔ 年少人口」という 1 つの関係を見ているだけなのに、 外れ値処理・対数変換・サブセットの選び方だけでこれだけ振れてしまう。 ここから学べるのは、 p 値の小ささを「効果の強さ」や「発見の重要さ」として語ってはいけないということ。 p は n と前処理で桁が動く量であり、 同じ 16 パスでも r は 0.980〜0.999 とほとんど動かない。 そして真の相関が 0.2 程度しかない変数どうしで同じ 16 通りを試せば、 今度は有意と非有意が入り混じり、 都合のいいパスだけを拾って結論を作れてしまう。 これが「分岐の小道(garden of forking paths)」の危険である。

③ 検出力シミュレーション:n が小さいと真の効果も見逃す

🎯 このコードでやること: SSDSE-B-2026 の 47 県から n=8 のサンプルを 1,000 回繰り返し抽出し、 「東日本・西日本の高齢化率に差がある」という真の効果を t 検定で検出できるか確認する。 過小検出力の研究がなぜ再現しないのかを実感する。

📥 入力データ: SSDSE-B-2026 の 2023 年・全国 47 県の高齢化率(65 歳以上人口 ÷ 総人口)。 47 県の単純平均は 31.59%、 東日本 23 県が 31.18%、 西日本 24 県が 31.97% で、 差は −0.79 ポイント(西がわずかに高い)、 効果量は d ≈ −0.24 と小さい。 「東西で高齢化率が違う」という差は確かに存在するが、 県ごとのばらつき(標準偏差 3 ポイント超)に比べればごく小さい ── この小さな効果を n=8 の標本で捕まえられるかを試す。

 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
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])
df_2023 = df[df['SSDSE-B-2026'] == 2023].copy()
df_2023['aging'] = df_2023['A1303'] / df_2023['A1101'] * 100  # 高齢化率 %

east_pref = ['北海道','青森県','岩手県','宮城県','秋田県','山形県','福島県',
              '茨城県','栃木県','群馬県','埼玉県','千葉県','東京都','神奈川県',
              '新潟県','富山県','石川県','福井県','山梨県','長野県','岐阜県',
              '静岡県','愛知県']
df_2023['region'] = df_2023['Prefecture'].apply(
    lambda p: 'east' if p in east_pref else 'west')

east_pop = df_2023.loc[df_2023['region']=='east', 'aging'].values
west_pop = df_2023.loc[df_2023['region']=='west', 'aging'].values

# 母集団での真の効果量 (Cohen's d)
d_true = (east_pop.mean() - west_pop.mean()) / \
         np.sqrt((east_pop.var() + west_pop.var()) / 2)
print(f'母集団 d = {d_true:.3f}')

# n=8 で 1000 回サンプリング
# np.random.seed = None は「代入」で、種を設定していない(呼び出しになっていない)。
# 再現性の話をするページなので、種を固定した乱数生成器を使う。
rng = np.random.default_rng(0)
n_iter = 1000
n_sub  = 8
sig_count = 0
for _ in range(n_iter):
    e = rng.choice(east_pop, n_sub, replace=False)
    w = rng.choice(west_pop, n_sub, replace=False)
    _, p = stats.ttest_ind(e, w, equal_var=False)
    if p < 0.05:
        sig_count += 1

power_empirical = sig_count / n_iter
print(f'\nn={n_sub} 標本での経験的検出力 = {power_empirical:.3f}')
print(f'→ 真の効果があるのに {(1-power_empirical)*100:.0f}% の研究は「有意でない」と結論')

📤 実行結果:

母集団 d = -0.240 n=8 標本での経験的検出力 = 0.033 → 真の効果があるのに 97% の研究は「有意でない」と結論

💬 結果の読み方: 東西の高齢化率の差は d=−0.24(西がわずかに高い)と小さく、 47 県すべてを使っても p=0.43 で有意ではない。 この小さな効果を n=8 ずつのサンプルで検出しようとすると、 経験的検出力はわずか 3.3%。 つまり 97% の研究が「有意でない」と結論し、 公表されるのは運良く有意になった 3% の研究のみ → winner's curse で効果量が誇張される。 効果が小さいほど、この歪みは激しくなるという点がここでの教訓である。 心理学典型 n(30–50)でも検出力は 0.3–0.5 程度しかない(Button et al. 2013)。 解決策は 事前の検出力分析で必要 n を算出し、 Multi-Lab 連携で n を確保すること。

④ Many Labs 方式:複数群で同じ仮説を独立検証

🎯 このコードでやること: SSDSE-B-2026 の 12 年分を「12 個の独立な研究」と見立て、 各年で「高齢化と人口減少の相関」を検定。 年ごとに r と p のばらつきを見て、 「単独の研究」がいかにブレるかを観察する。

📥 入力データ: SSDSE-B-2026 の 2014-2023 年・47 県データ。 各年に r と p を計算する。

 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
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])

results = []
for year, g in df.groupby('SSDSE-B-2026'):
    g = g.copy()
    g['aging'] = g['A1303'] / g['A1101'] * 100
    g['pop_change'] = g['A1101'].pct_change().fillna(0)
    if len(g) < 10:
        continue
    r, p = stats.pearsonr(g['aging'], g['A1101'])
    results.append({'year': year, 'n': len(g), 'r': r, 'p': p})

res = pd.DataFrame(results)
print('各年での相関 (n=47, 同じ仮説を 12 回検証):')
print(res.to_string(index=False))

# メタアナリシス: Fisher の z 変換で結合
z_vals = 0.5 * np.log((1 + res['r']) / (1 - res['r']))
weights = res['n'] - 3
z_mean = (z_vals * weights).sum() / weights.sum()
r_meta = (np.exp(2*z_mean) - 1) / (np.exp(2*z_mean) + 1)
print(f'\nメタアナリシス結合相関 r = {r_meta:.4f}')
print(f'年毎の r の範囲: [{res["r"].min():.3f}, {res["r"].max():.3f}]')

📤 実行結果:

各年での相関 (n=47, 同じ仮説を 12 回検証): year n r p 2012 47 -0.585860 1.52e-05 2013 47 -0.585011 1.57e-05 2014 47 -0.586038 1.50e-05 2015 47 -0.606453 6.24e-06 2016 47 -0.617280 3.81e-06 2017 47 -0.632737 1.83e-06 2018 47 -0.648901 8.09e-07 2019 47 -0.664316 3.55e-07 2020 47 -0.687823 9.22e-08 2021 47 -0.691227 7.50e-08 2022 47 -0.698737 4.72e-08 2023 47 -0.709764 2.32e-08 メタアナリシス結合相関 r = -0.6451 年毎の r の範囲: [-0.710, -0.585]

💬 結果の読み方: 12 年分(同じ仮説の 12 回検証)で r は −0.585〜−0.710 と 符号・有意性ともに安定。 これが「強い真の効果」のサイン。 一方、 真の効果がない仮説で同じことをすると、 年ごとに r の符号がランダムにブレる。 Many Labs 方式(Klein et al. 2014, 2018)は心理学で同じことを 30〜50 のラボで一斉に行い、 「単一研究のブレ」を可視化することで再現性危機を診断する。

🐍 追加 Python 実装 — Funnel Plot で出版バイアスを可視化

🎯 このコードでやること: SSDSE-B-2026 の 47 都道府県を 10 個のランダム部分集合に分け、 「同じ仮説を 10 回検証する」状況を模擬。 各部分集合の効果量と標準誤差をプロットして Funnel Plot を作成し、 「もし大きい効果だけ報告したら」どう歪むか観察する。

📥 入力データ: SSDSE-B-2026 全 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
42
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='cp932', skiprows=[1])
df_2023 = df[df['SSDSE-B-2026'] == 2023].copy()
df_2023['aging']    = df_2023['A1303'] / df_2023['A1101'] * 100
df_2023['pop_log']  = np.log(df_2023['A1101'])

# 各サンプルサイズで 30 回ブートストラップ
# np.random.seed = None は「代入」で、種を設定していない(呼び出しになっていない)。
# 再現性のページなので、種を固定した乱数生成器を使う。
rng = np.random.default_rng(0)
records = []
for n in [10, 15, 20, 25, 30, 35, 40]:
    for trial in range(30):
        idx = rng.choice(len(df_2023), n, replace=False)
        sub = df_2023.iloc[idx]
        r, p = stats.pearsonr(sub['aging'], sub['pop_log'])
        se = 1/np.sqrt(n - 3)
        records.append({'n': n, 'r': r, 'se': se, 'p': p})

res = pd.DataFrame(records)

# Funnel Plot
fig, ax = plt.subplots(figsize=(8, 6))
ax.scatter(res['r'], 1/res['se'], alpha=0.5, c='steelblue')
ax.axvline(res['r'].mean(), color='red', linestyle='--', label=f'pooled r={res["r"].mean():.3f}')
ax.set_xlabel('Effect size (r)')
ax.set_ylabel('Precision (1/SE)')
ax.set_title('Funnel Plot — 「すべての研究」が公表された場合')
ax.legend()
plt.savefig('funnel_all.png', dpi=120)

# 出版バイアス模擬: |r| > 0.5 だけ公表
biased = res[res['r'].abs() > 0.5]
print(f'全研究数        : {len(res)}')
print(f'「公表」研究数  : {len(biased)} ({len(biased)/len(res)*100:.0f}%)')
print(f'全 平均 r       : {res["r"].mean():+.4f}')
print(f'公表 平均 r     : {biased["r"].mean():+.4f}')
print(f'差              : {biased["r"].mean() - res["r"].mean():+.4f}')

📤 実行結果:

全研究数 : 210 「公表」研究数 : 204 (97%) 全 平均 r : -0.7109 公表 平均 r : -0.7219 差 : -0.0110

💬 結果の読み方: 真の効果が非常に強い(pooled r ≈ −0.71)ため、 「|r|>0.5 のみ公表」という足切りでは 210 件中 204 件(97%)が通ってしまい、 誇張はわずか 0.011 にとどまる。 つまり効果が十分に強いときは、出版バイアスがかかっても歪みは小さい。 逆に真の効果が小さいほど足切りを通る割合が下がり、 生き残った研究だけが大きな効果を示すため、 バイアスは数倍に膨らむ(公表 r が真の値の 2-3 倍になることも)。 前節で見た「d=−0.24 では検出力 3.3%」が、まさにその危険域にあたる。 Funnel plot で点が左右非対称になる → 出版バイアスの存在を示唆。 Egger's test(statsmodels)で統計的に検出可能。

🐍 追加 Python 実装 ⑤ — FDR (Benjamini-Hochberg) vs Bonferroni

🎯 このコードでやること: SSDSE-B-2026 の 47 県すべてについて「全国平均と差がある」H0 を t 検定で検証。 補正なし、 Bonferroni、 BH-FDR の 3 方式で「有意」と判定される件数を比較し、 多重比較補正の選び方を学ぶ。

📥 入力データ: SSDSE-B-2026 全 47 県の 12 年分(n=12/県)、 高齢化率(A1303/A1101)。

 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
import pandas as pd
import 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])
df['aging'] = df['A1303'] / df['A1101'] * 100
nation_mean = df['aging'].mean()
print(f'全国年次平均 高齢化率 = {nation_mean:.2f}%')

# 各県で「全国平均と差がない」H0 を 1 標本 t 検定
results = []
for pref, g in df.groupby('Prefecture'):
    t, p = stats.ttest_1samp(g['aging'], nation_mean)
    results.append({'pref': pref, 't': t, 'p': p, 'mean': g['aging'].mean()})

res = pd.DataFrame(results)

# 3 種類の補正
res['sig_raw']        = res['p'] < 0.05
_, p_bonf, _, _ = multipletests(res['p'], alpha=0.05, method='bonferroni')
_, p_bh,   _, _ = multipletests(res['p'], alpha=0.05, method='fdr_bh')
res['p_bonf']  = p_bonf
res['p_bh']    = p_bh
res['sig_bonf'] = res['p_bonf'] < 0.05
res['sig_bh']   = res['p_bh']   < 0.05

print(f'\n総検定数 = {len(res)}')
print(f'補正なし    有意: {res["sig_raw"].sum():2d} 件 (α=0.05)')
print(f'Bonferroni  有意: {res["sig_bonf"].sum():2d} 件 (α={0.05/len(res):.4f})')
print(f'BH-FDR      有意: {res["sig_bh"].sum():2d} 件 (FDR≤0.05)')
print(f'\n# Bonferroni は厳しすぎ、 BH-FDR は探索的研究に適切')
print(res.nsmallest(8, 'p')[['pref','mean','p','p_bonf','p_bh']].to_string(index=False))

📤 実行結果:

全国年次平均 高齢化率 = 29.24% 総検定数 = 47 補正なし 有意: 32 件 (α=0.05) Bonferroni 有意: 14 件 (α=0.0011) BH-FDR 有意: 30 件 (FDR≤0.05) # Bonferroni は厳しすぎ、 BH-FDR は探索的研究に適切 pref mean p p_bonf p_bh 東京都 22.507253 1.122786e-13 5.277094e-12 5.277094e-12 沖縄県 20.973425 2.386479e-08 1.121645e-06 5.608226e-07 愛知県 24.227399 6.399174e-08 3.007612e-06 1.002537e-06 神奈川県 24.387982 1.345960e-07 6.326012e-06 1.581503e-06 滋賀県 24.963662 3.515238e-06 1.652162e-04 3.304324e-05 島根県 33.086067 5.076150e-06 2.385791e-04 3.976318e-05 高知県 33.905168 6.175583e-06 2.902524e-04 4.146463e-05 秋田県 35.399196 1.025284e-05 4.818835e-04 6.023544e-05

💬 結果の読み方: 47 件の多重比較に対して、 補正なしは 偽陽性のリスクが高い(FWER ≈ 0.91)。 Bonferroni(α/47)は FWER を厳密に 0.05 に抑えるが過剰に保守的。 BH-FDR は「有意と判定したうちの偽陽性率を 5% 以下」に制御する 探索的研究の標準。 SSDSE のように 47 県という固定セットを総当たりする場合は BH-FDR を推奨。

⚖ 旧パラダイム vs 新パラダイム — 研究設計の刷新

項目旧パラダイム(〜2010 年代前半)新パラダイム(2015 年以降)
仮説論文執筆時に決定(HARKing 可能)データ収集前に 事前登録
サンプルサイズ「集めやすい量」、 optional stopping事前検出力分析で固定、 sequential analysis 規約
分析手順データを見ながら柔軟に調整事前登録の手順を厳守、 逸脱は明記
結果指標p 値のみ報告("p < .05")効果量 + 95% CI + p 値の 三点セット
多重比較「主要分析だけ」と言い訳して未補正事前登録の全検定数に対して Bonferroni/BH
探索 vs 確認区別なし、 すべて確認的に書く明確に分離、 探索的 finding は再検証を要請
データ・コード「requestに応じて」(実際は応じない)GitHub / OSF / Zenodo で DOI 付き公開
査読結果を見てから判断Registered Reports(結果を見ずに採否)
「失敗」結果ファイルドロワーに眠るプレプリント、 Null Results journal で公表
追試「興味深くない」と排除Many Labs、 Multi-site で組織的に実施

🐍 追加 Python 実装 ⑥ — データのチェックサム生成(再現性保証)

🎯 このコードでやること: SSDSE-B-2026 ファイルの SHA-256 ハッシュを計算し、 「論文に書いたデータ」と「読者が手元で読み込むデータ」が 完全に同じバイト列かを確認する手段を提供する。

📥 入力データ: SSDSE-B-2026 の生 CSV ファイル(バイナリ)。

 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
import hashlib
import pandas as pd
import platform
import sys

# データファイルのチェックサム
path = 'data/raw/SSDSE-B-2026.csv'
with open(path, 'rb') as f:
    data = f.read()
sha256 = hashlib.sha256(data).hexdigest()
md5    = hashlib.md5(data).hexdigest()

print(f'ファイル: {path}')
print(f'サイズ  : {len(data):,} bytes')
print(f'SHA-256 : {sha256}')
print(f'MD5     : {md5}')

# 行数・列数の確認
df = pd.read_csv(path, encoding='cp932', skiprows=[1])
print(f'\n行数 = {len(df):,}')
print(f'列数 = {df.shape[1]}')
print(f'年度 = {df["SSDSE-B-2026"].min()}{df["SSDSE-B-2026"].max()}')
print(f'県数 = {df["Prefecture"].nunique()}')

# 環境記録
print(f'\nPython     : {sys.version}')
print(f'Platform   : {platform.platform()}')
print(f'pandas     : {pd.__version__}')

# 主要列(2023年)の統計を「指紋」として記録
fp = {
    '人口合計': df[df['SSDSE-B-2026'] == 2023]['A1101'].sum(),
    '人口平均': df[df['SSDSE-B-2026'] == 2023]['A1101'].mean(),
    '高齢者合計': df[df['SSDSE-B-2026'] == 2023]['A1303'].sum(),
}
print(f'\nデータ指紋 = {fp}')

📤 実行結果:

ファイル: data/raw/SSDSE-B-2026.csv サイズ : 359,821 bytes SHA-256 : 0fdbe5f603bb8e1ee72d83cca77e674cf9b45865d88c8f4fda5eb8046ea6f463 MD5 : 8a78e9cf372cf18772e9d6cef35dc003 行数 = 564 列数 = 112 年度 = 2012〜2023 県数 = 47 Python : 3.11.5 (main, Sep 11 2023, 13:54:46) Platform : Linux-5.15.0-91-generic-x86_64 pandas : 2.1.4 データ指紋 = {'人口合計': 124353000, '人口平均': 2645808.5, '高齢者合計': 36229000}

🖥 この 3 行だけは実行環境によって変わります: Python / Platform / pandas の 3 行は、 実行したマシンの OS・Python・ライブラリのバージョンをそのまま印字したものです(上は Linux + Python 3.11.5 + pandas 2.1.4 で記録した例。 macOS + Python 3.13 + pandas 2.3 で走らせれば当然その値が出ます)。 環境によって変わることこそが、 この行を記録する理由です ── 数年後に結果が合わないとき、 「データが違うのか、 環境が違うのか」を切り分けられます。 逆に サイズSHA-256MD5行数列数県数データ指紋は、 同じ CSV を読む限りどの環境でも一字一句同じにならなければおかしい。 ここがズレたらデータが差し替わっている合図です。

💬 結果の読み方: SHA-256 ハッシュを論文の Data Availability に記載しておけば、 読者は sha256sum コマンドで自分が読み込んだファイルが「論文と同じデータ」かを 1 秒で確認できる。 公的統計でも年度途中で訂正がかかることがあるので(SSDSE 2026 も Errata 公開済)、 ハッシュ記録は必須。 これだけで Methods reproducibility の基礎が担保される。

🎓 教育的考察 — 再現性危機をどう教えるか

再現性危機は単なる「過去の失敗事例」ではなく、 これからデータサイエンスを学ぶ学生に最初に伝えるべき概念です。 本サイトのジャストインタイム型データサイエンス教育では、 以下の段階で導入を推奨:

学習段階扱う概念SSDSE での演習
高校情報 II / 大学初年次「同じデータから異なる結論」の体験SSDSE で 4 通りの前処理を試し、 結論が変わることを確認
大学 2 年(統計入門)p 値の意味、 多重比較、 効果量本ページの①「112 列で総当たり相関」を実行し、 5886 件中 5063 件が「有意」になる体験
大学 3 年(研究入門)事前登録、 オープンサイエンス、 RRSSDSE を題材に OSF にダミー事前登録を提出する演習
学部卒論事前検出力分析、 効果量・CI 併記SSDSE での卒論を OSF 事前登録 + GitHub 公開で実施
修士・博士Registered Reports、 メタアナリシス、 ベイズSSDSE での RR スタイル論文執筆、 Bayesian model comparison

教育的なキーメッセージは:

📖 用語の歴史 — 「再現性」の議論はいつから?

出来事・文献
1620Francis Bacon Novum Organum — 「実験は繰り返されるべし」(科学方法論の祖)
1934Karl Popper Logik der Forschung — 反証可能性、 H0 棄却の論理
1959Theodore Sterling — 出版バイアスの最初の指摘("publication decisions and their possible effects")
1979Robert Rosenthal — file drawer problem の概念化、 fail-safe N の提案
1992Jacob Cohen "A Power Primer" — 検出力分析の体系化、 心理学への警鐘
2005Ioannidis "Why Most Published Research Findings Are False" — 危機の理論的根拠
2011Simmons, Nelson & Simonsohn "False-Positive Psychology" — p-hacking 概念の普及
2011Open Science Framework (OSF) 創設、 Center for Open Science 設立
2012Begley & Ellis — がん生物学 11% 再現、 製薬業界への衝撃
2013Button et al. — 神経科学の検出力 0.21 を実証
2014Cortex で Registered Reports 開始、 Gelman & Loken "garden of forking paths"
2015Open Science Collaboration 心理学 100 論文プロジェクト → Science 掲載、 「再現性危機」が世界的トピック化
2016ASA Statement on p-values、 経済学 Camerer et al. 18 論文プロジェクト
2017Munafò et al. "Manifesto for Reproducible Science" Nat Hum Behav 創刊号
2018Nosek et al. "The preregistration revolution" PNAS、 SSRP 21 論文プロジェクト
2019Amrhein et al. Nature "Retire statistical significance"、 800+ 科学者署名
2020NeurIPS 再現性チェックリスト義務化、 ML 分野でも本格化
2021Soderberg et al. RR の効果検証、 「仮説支持率 RR 44% vs 従来 96%」
2022米国 OSTP「すべての連邦資金研究のオープンアクセス化」を発表(2025 年実施)
2023LLM の再現性問題が浮上(同じプロンプトで異なる出力、 モデル更新による検証不能)
2024SSDSE-B-2024 公開、 統計教育における事前登録演習の標準化議論
2025EU AI Act 施行、 ハイリスク AI の透明性要件に再現性条項含む

🧪 S-Value(Shannon Surprise Value)— p 値の代替指標

再現性危機の議論から派生して、 「p 値の二値判定をやめよう」という運動が生まれた。 その代替案の 1 つが Greenland (2019) の S-value

定義

$$ S = -\log_2(p) $$

S-value は p 値の負の log₂。 「データが H0 の下でどれだけ驚くべきか」を bit(コイン投げの連続表回数)で表現する。

p 値S-value (bits)直感的解釈
0.501.0コイン投げで 1 回表(驚きなし)
0.103.33.3 回連続表(少し驚く)
0.054.34.3 回連続表(やや驚く)
0.016.66.6 回連続表(かなり驚く)
0.00110.010 回連続表(強く驚く)
1e-1239.940 回連続表(非常に強い驚き)

利点:①連続値なので「α=0.05 という閾値」の任意性を回避、 ②bits 単位で「驚きの量」を直感的に表現、 ③小さい p 値の差(0.001 vs 0.00001)を log スケールで見やすく。

📌 SSDSE-B-2026 の高齢化-人口相関の p=3.2e-12 は S=38.2 bits。 「コイン投げ 38 回連続表」 ≒ 偶然では到底起こらない、 という直感が掴みやすい。

🔎 Sensitivity Analysis — 「結論の頑健性」を測る

事前登録した分析パスが 1 つだとしても、 他のもっともらしい選択をしたら結論がどう変わるかを補助的に示すのが感度分析。 再現性向上の重要ツール。

Multiverse Analysis(多元宇宙分析、 Steegen et al. 2016)

合理的な分析の選択肢をすべて列挙し、 全ての組み合わせで分析を実行して結論の分布を見る。

例:SSDSE-B-2026 で「高齢化と人口減少の関係」を分析する場合:

192 通りすべてで分析し、 「192 パス中 188 で p<0.05、 r の範囲は [-0.84, -0.42]」のように 頑健性を示す。 もし 192 パスのうち半分しか有意でなければ、 結論は 選択次第であり、 主張を弱める必要がある。

Specification Curve Analysis(Simonsohn et al. 2020)

Multiverse の結果を effect-size 順にソートしてグラフ化。 「下位 25% でも有意」「中央値が 0 をまたぐ」など、 一目で結論の頑健性が分かる視覚化手法。

🎯 Equivalence Testing — 「H0 を支持する」ための検定

再現性危機の議論で繰り返される誤解:「p > 0.05 なので効果なし」と書くのは間違い。 「有意でない」≠「効果なし」。 「効果なし」を統計的に主張するには 同等性検定(TOST: Two One-Sided Tests)を使う。

TOST の論理

  1. 事前に「実質的に意味のある最小効果量」 $\Delta$ を決める(例: d=0.3)
  2. H0: $\|d\| \geq \Delta$(実質的差あり)、 H1: $\|d\| < \Delta$(実質的差なし)
  3. 2 つの片側 t 検定を実施、 両方とも p < α で「同等性あり」と結論

📌 通常の t 検定で「効果あり」を、 TOST で「効果なし」を示す。 両方が「有意でない」場合は サンプルが足りない、 結論未定であり、 これも正直な報告。

SSDSE-B-2026 で例えば「2 つの政策グループの自治体で重要 KPI に差がない」ことを示したい場合、 通常の検定で p>0.05 だけ書くのは nullity の誤謬。 TOST で実質的同等性を主張する必要がある。 statsmodels.stats.weightstats.ttost_ind で実装可能。

⚠️ よくある落とし穴(7 件)

再現性危機の議論をするときに、 学生・実務者・研究者がよく踏むワナをまとめました。

❌ 1. 「再現性危機 = 研究不正」と誤解する
再現性危機の大半は意図的な不正ではなく、 過小検出力・多重比較・p-hacking・出版バイアスといった システムレベルの構造問題。 個人を責めても解決しない。
❌ 2. p < 0.05 を「効果が大きい」と解釈する
p 値は「H0 のもとでデータが得られる確率」であり、 効果の大きさではない。 必ず効果量(Cohen's d、 r、 オッズ比)と信頼区間を併記する。
❌ 3. 「Bonferroni 補正したから OK」で済ます
Bonferroni は FWER は抑えるが、 検出力を大きく犠牲にする。 探索的な分析では FDR(Benjamini-Hochberg)の方が適切。 そもそも事前登録で検定数を絞るのが本筋。
❌ 4. HARKing(Hypothesizing After Results are Known)
データを見てから「実はこういう仮説だった」と書き換える行為。 探索的発見と確認的検証の区別を明示せず、 後出しで仮説を変えると検定の意味が消える。
❌ 5. n を結果が出るまで増やす(optional stopping)
「あと 10 人増やして有意になったらやめる」を繰り返すと、 真の α は 0.05 を遥かに超える(Armitage 1969)。 事前にサンプルサイズを固定するか、 ベイズ的中断ルール/逐次検定を使う。
❌ 6. winner's curse — 公表された効果量を信じる
出版バイアスのもとで公表される効果量は 真の効果より過大。 メタアナリシスでも対策が必要(PET-PEESE、 trim-and-fill)。 後続研究の検出力計算に元論文の d をそのまま使うと過剰楽観。
❌ 7. 「再現できなかった」= 「元論文が間違い」と短絡
再現失敗は、 元論文の偽陽性・追試の過小検出力・文脈効果(時代・文化)・操作の細部の違いなど 複数の解釈が可能。 1 回の再現失敗ではなく Many Labs 的な複数試行が必要。

🧭 詳細解説 — 再現性危機を一段深く掘り下げる

歴史的背景:2005 年から 2015 年まで

再現性危機の議論の口火を切ったのは John Ioannidis (2005) の論文 “Why Most Published Research Findings Are False”。 PLoS Medicine に掲載され、 PPV(Positive Predictive Value)の理論計算に基づいて「公表結果の大半は偽である」と主張しました。 これは当初は控えめに受け止められましたが、 2010 年代に入り 具体的な追試プロジェクト が次々と「危機」を可視化していきます。

原因の構造分析(Munafò et al. 2017 “Manifesto for Reproducible Science”)

Nature Human Behaviour 創刊号に掲載された Munafò らのマニフェストは、 再現性危機の原因を 5 階層に整理:

  1. 研究設計の問題:過小検出力、 仮説の事前不固定、 統計的盲検性なし
  2. 分析の問題:p-hacking、 garden of forking paths、 HARKing、 optional stopping
  3. 報告の問題:不完全な手法記述、 効果量・CI の不提示、 仮定検証の不開示
  4. 出版の問題:出版バイアス(有意結果優遇)、 reviewer 2 のジレンマ、 速度競争
  5. キャリアインセンティブの問題:論文数で評価、 大ヒット狙い、 ジャーナル格付け

対抗策:オープンサイエンスの 7 つの実践

実践何を防ぐか
事前登録(Pre-registration)p-hacking、 HARKing、 garden of forking paths、 optional stopping
Registered Reports出版バイアス、 有意結果優遇のキャリアインセンティブ
データ・コード公開分析の不透明性、 再現不能性、 誤り修正の遅延
事前検出力分析過小検出力、 winner's curse、 偽陰性
Many Labs / Multi-Lab 連携単一研究のばらつき、 文脈効果の見落とし
プレプリント(arXiv、 OSF Preprints)公表の遅延、 査読の前段階での誤り発見
透明性チェックリスト(TOP guidelines)報告の不完全性、 再現に必要な情報の欠落

日本における再現性危機の文脈

日本では 2014 年の STAP 細胞事件が「研究不正」の文脈で大きく報じられましたが、 これは典型的な 意図的捏造であり、 再現性危機の主流の議論(過小検出力・p-hacking・出版バイアス)とは別の問題です。 しかし結果として「再現性」「公開性」への関心が高まり、 日本学術会議(2015、 2020)、 JST、 AMED が 研究データマネジメント計画(DMP)義務化を推進する契機となりました。

2020 年代以降、 機械学習・AI 分野での再現性問題(モデル重みの非公開、 ハイパーパラメータ調整の不開示、 評価データセットのリーク)が新たな焦点になっており、 NeurIPS、 ICML が再現性チェックリストを義務化しました。

参考文献

⚠️ 条件・限界・誤解回避

適用条件 (再現性の概念が意味を持つ条件)

  1. 計算再現性 (computational reproducibility): 同じデータ・同じコード・同じ計算環境で同じ結果が出ること。 SSDSE-B-2026 のような公開データでは Docker / Renv / pip freeze で環境固定すれば達成可能。 これは「最低限の前提」で、 これすら満たさない研究が分野によっては 30% に達する。
  2. 結果再現性 (replicability): 同じ方法を別のデータで適用して類似の結論が得られること。 Open Science Collaboration (2015) の心理学 100 件再現で 39 件しか元結果を再現できなかったのはこの水準。 効果量の方向・大きさ・有意性のいずれを基準にするかで再現率が変わる。
  3. 一般化可能性 (generalizability): 異なる集団・時期・文化・条件でも同じ結論が成立すること。 47 都道府県データの結論が他国の地域データでも成立するかは、 別途検証が必要。
  4. 事前登録 (preregistration) が可能な研究デザイン: 仮説検証型研究 (確証的研究) では事前登録が再現性を保証する強力な手段。 探索的研究では事前登録の意味が変わり、 EDA (Exploratory Data Analysis) として明示的に区別する。

限界

  1. 「完全な再現」は実質的に不可能: 計算機の浮動小数点演算順序、 乱数シード、 ライブラリのバージョンマイナーアップデートで結果が微妙に変わる。 「実質的に同じ結論が得られるか」を基準にする。
  2. 再現性の定義が分野間で異なる: 物理学では「直接再現 (direct replication)」、 心理学では「概念的再現 (conceptual replication)」、 経済学では「ロバストネス (robustness)」と用語が分かれる。 メタ解析時に用語の統一が必要。
  3. 「再現できない」= 「元結果が誤り」ではない: 再現研究のサンプルサイズ不足、 条件の微妙な違い、 集団の差で再現に失敗することがある。 元結果が真である可能性を否定する強い証拠ではなく、 効果量の不確実性を増やす情報。
  4. 探索的解析と確証的解析の境界が曖昧: 同じデータで多くの仮説を検証した場合、 どれが「事前登録された主仮説」でどれが「事後的に発見された関係」か区別困難。 split-sample 設計が必要。
  5. 負結果 (null result) の出版バイアス: 再現研究で「効果なし」と結論された場合でも、 出版されにくいため、 メタ解析の対象から漏れる。 Registered Report や preprint がこの問題を緩和する。

誤解回避

  1. 「再現性危機 = 科学の崩壊」ではない: 再現性問題は「科学の自己修正機能が働いている証拠」とも解釈できる。 1980 年代までは「論文に書かれた結論は信頼できる」前提で運用されていたが、 2010 年代以降は「論文の結論を独立に検証する文化」に転換した。
  2. 「p < 0.05 は再現性を保証する」ではない: 検出力 50% の研究で p < 0.05 を得た場合、 再現研究でも有意になる確率は約 30% に過ぎない (Ioannidis 2005)。 効果量と検出力の両方を見る必要がある。
  3. 「単一再現の失敗 = 元結果を否定」ではない: 効果量の信頼区間が重なれば、 統計的有意性が異なっても結論は両立する。 単一研究の有意性ではなく、 メタ解析的視点が必要。
  4. 「事前登録すれば再現性は保証される」は楽観的: 事前登録は「探索/確証の混同」を防ぐが、 効果量の過大評価・出版バイアス・モデル誤指定の問題は残る。 事前登録は必要条件で十分条件ではない。
  5. 「機械学習は再現可能」も部分的: 同じコード・同じシードでも、 GPU の非決定的演算、 ライブラリのバージョン差、 ハードウェアの数値精度で結果が微妙に変わる。 ML 分野では「reproducibility checklist」が NeurIPS/ICML で必須化された。

実務でのチェックリスト

歴史的経緯

再現性危機 (reproducibility crisis) という用語は 2010 年代に広まったが、 個別の問題提起は数十年遡る。 John Ioannidis の 2005 年論文 Why Most Published Research Findings Are False は、 検出力・効果量・先験確率・偏りの組み合わせで「論文の結論が真である確率」を計算し、 標準的な研究では 50% 未満になることを示した。 2011 年に Daryl Bem のサイキック心理学論文 (時間逆行的影響) が JPSP に掲載されたことを契機に、 心理学界の方法論的反省が始まり、 Brian Nosek らが Center for Open Science (COS) を設立。 2015 年の Open Science Collaboration による Reproducibility Project: Psychology で、 100 件の心理学論文の 39% しか再現できないという結果が公表された。 同時期に Amgen (2012) が「がん研究の 89% が再現不可能」と発表し、 医学・生命科学にも波及。 2017 年に Munafò らが Nature Human Behaviour で「再現性のあるサイエンスのマニフェスト」を発表、 事前登録・open data・preprint の三本柱を提唱した。 2020 年代には機械学習分野で「ML reproducibility crisis」(Pineau et al. 2019) が認識され、 NeurIPS で reproducibility checklist が必須化された。

関連分野での発展

心理学では Many Labs プロジェクト (2014-2020) で大規模協調再現研究が複数実施され、 効果量の地理的・文化的変動が定量化された。 経済学では Camerer et al. (2016, 2018) で行動経済学・実験経済学の主要論文の 60-70% が再現された (心理学より高い再現率)。 医学では Reproducibility Project: Cancer Biology (2014-2021) で、 がん生物学の主要 50 論文の 50% しか再現できないと結論。 機械学習では Papers with Code、 ML Reproducibility Challenge、 Distill.pub のような initiative が広まり、 「コード公開・ベンチマーク統一・実験設定の透明化」が標準化された。 経済学の Replication Project: Experimental Economics は OSF で公開されている。 SSDSE-B-2026 のような公的統計データを用いた研究は、 元データが公開済みで誰でも再分析できるため、 「データ再現性」は構造的に高いが、 解析方法の選択 (回帰モデル・変数選択・サブグループ) によって結論が変わるため、 multiverse analysis (Steegen et al. 2016) のような感度分析が推奨される。

詳細演習: SSDSE-B-2026 で multiverse analysis

multiverse analysis (Steegen et al. 2016) は「研究者の任意選択 (forking paths) が結果にどう影響するか」を網羅的に評価する手法。 SSDSE で「高齢化率が医療費を予測するか」を検証する場合、 任意選択肢: (a) 説明変数を高齢化率のみ vs 高齢化率+人口密度+所得; (b) 47 都道府県全件 vs 政令市除外; (c) 線形 vs 対数変換; (d) 通常回帰 vs ロバスト回帰。 2×2×2×2 = 16 通りの分析を全て実施し、 p 値、 効果量、 結論の分布を可視化する。 結果のロバストネスを評価し、 「16 通り中 13 通りで p < 0.05、 効果量範囲 [0.3, 0.7]」のように報告する。 これは単一研究での p hacking 回避と、 再現性向上の有効手段。

詳細演習: Many Labs 風の大規模協調研究

日本の都道府県研究で Many Labs 風の協調を考えると、 47 県の研究機関が同じ仮説 (例: 「高齢化率 vs 合計特殊出生率」) を共通プロトコルで分析する。 各機関で独立に分析した結果を統合し、 効果量の地理的変動を定量化する。 SSDSE-B-2026 のような共通公開データを用いれば、 「データの違い」要因を排除し、 「解析手法の違い」のみを評価できる。 メタ分析的にすべての結果を統合すると、 単一研究では得られない頑健な結論が得られる。 NIH の Many Labs 4 (老化研究) や経済学の Many Analysts Many Data project がモデル。

詳細演習: 計算再現性の Docker 環境構築

SSDSE 分析の計算再現性を保証する Docker 化の手順: (1) Dockerfile に Python 3.11、 pandas 2.0、 scikit-learn 1.3、 statsmodels 0.14 などバージョン固定; (2) requirements.txt または poetry.lock を同梱; (3) データ・コード・出力を分離した directory 構造; (4) GitHub Actions で CI/CD を設定し、 リポジトリ更新時に自動再現テスト; (5) docker hub に push して再現環境を公開; (6) README に再現手順を 5 ステップで明記。 このワークフローで「10 年後の研究者でも同じ結果を再現できる」状態を達成。

詳細演習: Registered Report の流れ

Registered Report の標準フロー: (1) Stage 1: 研究計画書 (仮説・方法・解析計画・検出力分析) を執筆; (2) Stage 1 査読 (デザインの妥当性のみ評価、 結果を見ない); (3) In-Principle Acceptance (IPA) を獲得 → 結果に関わらず出版確定; (4) データ収集・解析; (5) Stage 2: 結果と考察を執筆; (6) Stage 2 査読 (計画通りの実施を確認)。 SSDSE のような既存データでも Registered Report は適用可能で、 「データを見る前に分析計画を確定」する。 採用ジャーナル例: CortexEuropean Journal of PersonalityRoyal Society Open ScienceBMC Medicine

詳細演習: 効果量の信頼区間と再現性

SSDSE で 47 県の相関 r=0.55 (95%CI [0.32, 0.72]) を発見した場合、 再現研究での効果量推定値の予測範囲は概ね信頼区間内に収まる確率が 95%。 再現研究で r=0.40 が出ても、 元の信頼区間内なので「再現失敗」とは言えない。 一方、 元論文が r=0.55 (95%CI [0.45, 0.65]) と狭い CI を報告し、 再現で r=0.20 (95%CI [0.05, 0.35]) なら、 CI が重ならず再現失敗。 効果量の信頼区間で「再現可能性の幅」を判定する手法 (small telescopes、 Simonsohn 2015) が有用。

誤用例: HARKing (Hypothesizing After Results are Known)

研究例: 「SSDSE で 100 指標 × 47 県の全相関を計算し、 p < 0.05 を 12 件発見。 その中で最強の相関 (r=0.78) を主仮説として『この仮説を事前に持っていた』と論文に書く」というアプローチは HARKing で、 再現性の最大の敵。 正しい対応: (a) 探索的解析であることを明示; (b) 別データで再検証; (c) 事前登録で次の研究を計画。 HARKing の検出には、 効果量分布の「z-curve analysis」(Schimmack 2020) や、 報告 p 値の「p-curve analysis」(Simonsohn 2014) などのメタ分析的手法が開発されている。

R/Python 実装の対応関係

計算再現性を保証するツール: R の renv パッケージ、 targets でワークフロー管理。 Python の poetryconda、 Docker。 事前登録は OSF (R では osfr、 Python では osfclient でプログラマティックに登録)。 multiverse analysis は R の multiverse パッケージで実装。 Many Labs 風の協調研究は GitHub と OSF を組み合わせる。 メタ分析・p-curve・z-curve は R の metaforpcurvezcurve パッケージで実装可能。 SSDSE 分析の再現可能ワークフロー例は GitHub の e-stat-ssdse リポジトリで公開されている。

ケーススタディ 1: Open Science Collaboration (2015)

Open Science Collaboration (2015) は心理学の 100 件の論文を世界中の 270 名の研究者が独立に再現した史上最大の協調再現研究。 主要結果: (a) 元論文の 97% が p < 0.05 だったが、 再現研究では 36% のみ; (b) 元論文の効果量平均 d=0.40 に対し、 再現研究は d=0.20 と半減; (c) 効果量の信頼区間で判定すると 47% が再現成功。 この衝撃的結果は心理学界を揺さぶり、 事前登録・open data・Registered Report の普及を加速した。 SSDSE 的な公的統計研究では、 元データが共通なので「データ再現性」は構造的に高いが、 「解析再現性」(同じデータで同じ結論を独立に得る) の検証は別途必要。

ケーススタディ 2: Reproducibility Project: Cancer Biology

Cancer Biology Project (2014-2021) は がん研究 50 論文の独立再現を試みたが、 実施できたのは 23 件のみ (残り 27 件は実験プロトコルが不完全で再現不可能)。 結果: 23 件中 11 件 (50%) が「効果量の方向と大きさで再現」、 11 件が「方向のみ再現」、 1 件が「再現失敗」。 がん生物学のような複雑な実験系では計算再現性のみならず実験プロトコルの完全文書化が課題。 SSDSE 的に公的統計データを用いる場合、 「データソース・前処理・解析コード・統計モデル」の 4 要素を完全文書化する必要がある。

ケーススタディ 3: 経済学の再現研究

Camerer et al. (2016) は Science/Nature 掲載の経済学実験 18 件を再現し、 11 件 (61%) が成功 (心理学の 36% より高率)。 続く Camerer et al. (2018) では行動経済学 21 件のうち 13 件 (62%) が成功。 経済学の再現率が高い理由: (a) 計算経済学では精密な数学モデル、 (b) 実験経済学では金銭インセンティブが明確、 (c) サンプルサイズが心理学より大きい。 SSDSE のような公的統計研究は経済学に近く、 元データが公開・再利用可能であれば計算再現性は高い。

ケーススタディ 4: 機械学習の再現性

Pineau et al. (2019) は ICLR/NeurIPS の論文の再現可能性を調査し、 30% 程度しか完全再現できないと結論。 主因: (a) コード未公開、 (b) ハイパーパラメータ未記載、 (c) GPU の非決定性、 (d) ランダムシード未固定。 これを受けて NeurIPS 2020 から「reproducibility checklist」が必須化、 Papers with Code でコードベンチマーク公開が標準化。 SSDSE 的なデータ駆動研究でも、 GitHub でのコード公開・Docker での環境固定・乱数シード明示が再現性の最低限。

ケーススタディ 5: COVID-19 研究の再現性課題

COVID-19 パンデミック (2020-2023) では、 急速な研究公開で品質問題が顕在化。 Mehra et al. (2020) の LancetNEJM 論文が再現不可能で撤回 (Surgisphere scandal)。 RECOVERY Trial (UK) は事前登録・透明な手順で hydroxychloroquine の効果なしを確証的に示し、 再現性研究の好例。 SSDSE 的な公衆衛生研究でも、 事前登録・データ公開・コード公開の 3 点セットが研究品質の最低基準。

再現性向上のための行動原則 (TOP Guidelines)

TOP Guidelines (Transparency and Openness Promotion) は 8 領域 × 3 レベルの 24 項目で、 学術誌が採用する標準: (1) 引用基準 (Citation): データ・コード・材料の明示引用; (2) データ透明性 (Data Transparency): データ公開; (3) 解析コード透明性 (Analytic Methods Transparency): コード公開; (4) 研究材料透明性; (5) デザイン・解析透明性; (6) 事前登録: 研究計画事前登録; (7) 解析計画事前登録: 解析詳細事前登録; (8) 再現研究: Replication studies の歓迎。 SSDSE 研究で TOP Guidelines を遵守することで、 国際的な研究品質基準を満たせる。

再現性向上の実装テンプレート

SSDSE 分析の再現可能ワークフロー: (1) 事前登録: OSF/AsPredicted で仮説と解析計画を登録; (2) データ管理: e-Stat からダウンロード、 raw データを 1 度だけ保存、 前処理スクリプトで処理; (3) 環境管理: Docker または poetry/conda でライブラリバージョン固定; (4) 解析スクリプト: 1 コマンドで全結果を再現可能なように設計; (5) ランダムシード: 全乱数生成で明示固定; (6) 結果出力: 図表をスクリプトで自動生成、 手作業を排除; (7) バージョン管理: GitHub で全変更を追跡; (8) 公開: 論文投稿時に GitHub/OSF リポジトリ URL を明示; (9) 査読: 査読者がスクリプトを実行して結果を再現できるか確認; (10) 長期保存: Zenodo で DOI 付き永続保存。

SSDSE-B-2026 を用いた再現性研究の標準ワークフロー

公的統計データを用いた研究での再現性確保: (1) データソース明示: e-Stat の SSDSE-B-2026 URL、 ダウンロード日時、 ファイル MD5 ハッシュ; (2) 前処理ドキュメント: 欠損値処理、 変数変換、 サブセット選択の全手順; (3) 解析パイプライン: R Markdown または Jupyter Notebook で全解析を文書化; (4) 結果再現: 1 つの make コマンドで論文の全図表を再生成; (5) 感度分析: multiverse analysis で「解析者の自由度」が結果に与える影響を可視化; (6) 公開: GitHub + Zenodo + OSF の 3 か所で永続保存; (7) 査読・再現研究の招待: 論文末尾で「データ・コードは公開済み、 独立再現を歓迎」と明示。 これにより、 公的統計データ研究の再現性基準を業界標準として確立できる。

再現性の階層構造

Goodman et al. (2016) の分類による再現性の階層: (1) Methods reproducibility (方法論再現性): 同じ方法を別データで適用しても同じ手順で実施できる; (2) Results reproducibility (結果再現性): 同じデータで同じコードを実行すると同じ結果が出る; (3) Inferential reproducibility (推論再現性): 同じデータで別の解析者が独立に分析しても同じ結論に至る; (4) Replicability (再現可能性): 別データで同様の方法を実施して類似の結論が得られる; (5) Generalizability (一般化可能性): 別の集団・条件で同じ結論が成立する。 SSDSE 研究では (1)-(3) を構造的に達成しやすく、 (4)-(5) は研究設計次第。

FAIR データ原則

FAIR Principles (Wilkinson et al. 2016) はデータの再利用性を 4 原則で定義: (1) Findable: メタデータ・persistent identifier (DOI) で検索可能; (2) Accessible: 標準プロトコル (HTTPS) でアクセス可能、 認証必要なら明示; (3) Interoperable: 標準フォーマット (CSV、 JSON、 RDF) を採用; (4) Reusable: ライセンス・出所・利用条件を明示。 e-Stat の SSDSE-B-2026 は FAIR 原則に概ね準拠している (CSV ダウンロード、 メタデータ付き、 CC-BY-like ライセンス)。 研究データの公開時は FAIR 原則に基づく Zenodo・OSF・Figshare 等が推奨される。

再現性研究のメタ分析手法

複数の再現研究を統合するメタ分析手法: (1) Forest plot: 個別研究の効果量と CI を縦に並べる; (2) Funnel plot: publication bias を視覚化; (3) p-curve analysis: p < 0.05 の研究の p 値分布から真の効果量を推定; (4) z-curve analysis: z 値の分布から expected replicability rate を推定; (5) small telescopes: 「元研究の effect size の 33%」を再現研究での検出限界として評価; (6) Robust Bayesian meta-analysis: 事前分布の選択に対するロバストネス。 SSDSE 的に「47 県研究のメタ分析」を実施する際、 これらの手法で再現性を定量化する。

研究者の自由度と Garden of Forking Paths

Gelman-Loken (2014) の「garden of forking paths」概念: 研究者は分析過程で多くの選択をする (欠損値処理、 変数変換、 アウトライア除外、 サブグループ、 統計モデル)。 各選択肢は事前指定されていないため、 結果次第で選択を変えることで p < 0.05 を達成できる。 これは意図的な p hacking とは異なる「無意識のバイアス」だが、 結果は同様に偽陽性を量産する。 対策: (1) 事前登録で選択を固定; (2) multiverse analysis で全選択肢の結果を報告; (3) split-sample で探索/確証を分離; (4) blind analysis (Box 1975) で結果を見ずに解析を完了; (5) reproducible workflow で意思決定を透明化。

再現性向上のための学術出版改革

2010 年代以降の出版モデル改革: (1) Open Access: PLOS、 eLife、 PeerJ のような OA ジャーナル; (2) Preprint Server: arXiv、 bioRxiv、 SocArXiv、 PsyArXiv で査読前公開; (3) Registered Reports: 結果に関わらず出版される事前登録査読; (4) Data and Code Availability Statements: 多くの誌が必須化; (5) Citation of Datasets: データそのものを論文と同等に引用; (6) Post-publication Peer Review: PubPeer、 F1000Research; (7) Transparency Pledges: TOP Guidelines を採用するジャーナル; (8) Reviewer Open Identity: 査読者名公開のオプション。 これらの改革で出版エコシステム全体の透明性が向上している。

再現性危機と AI 時代の研究

2023 年以降の生成 AI 普及で、 再現性問題が新たな次元を持つ: (1) AI 生成コードの再現性: ChatGPT・Copilot で生成したコードはバージョン・プロンプト依存で同じ結果を保証しない; (2) AI 推論の非決定性: LLM の出力は temperature・seed・モデルバージョン依存; (3) AI ベンチマークの test set 漏洩: 訓練データに評価データが混入する問題; (4) AI による研究自動化: AI が仮説生成・解析・論文執筆を行う研究の透明性課題; (5) AI alignment と再現性: AI の出力が訓練データ・fine-tuning に強く依存。 SSDSE 研究で AI を活用する場合、 これらの新たな再現性課題に対応する必要がある。

EBPM (Evidence-Based Policy Making) と再現性

日本政府の EBPM (証拠に基づく政策立案) 推進では、 再現性確保が重要な柱: (1) 政策評価の事前登録: 内閣府の政策評価で事前登録の動き; (2) RCT の活用: 教育・社会保障で RCT (randomized controlled trial) の試行; (3) 公的統計データの公開: e-Stat、 RESAS、 SSDSE で官民の研究を促進; (4) 研究機関の協働: 国立社会保障人口問題研究所、 経済産業研究所などのオープン研究; (5) EBPM ガイドライン: 各省庁での評価手法の標準化。 SSDSE-B-2026 を用いた政策研究で再現性基準を遵守することで、 EBPM の品質と社会的信頼が向上する。

再現性危機の主要要因

再現性危機の根本原因 (Munafò et al. 2017): (1) 低検出力: 検出力 50% 程度の研究で「有意」を得ても、 再現性は低い; (2) publication bias: p < 0.05 のみが出版される選択バイアス; (3) p ハッキング: 多重比較・選択的報告・データ加工で人為的に p 値を低下; (4) HARKing: 結果を見てから仮説を作成; (5) 不十分な統計学習: 研究者の統計学的知識不足; (6) 競争的学術環境: 採用・昇進・助成が「華やかな発見」を評価; (7) 査読の限界: 査読者が再現性を独立に検証できない; (8) データ・コード非公開: 検証が物理的に不可能; (9) 原データへのアクセス制限: 機密性・プライバシーで再分析困難; (10) 研究機関の評価指標: 論文数・h-index 重視。 これらが複合的に作用して再現性危機を生じている。

各分野の再現性危機の特徴

分野ごとの再現性問題の特徴: (1) 心理学: 効果量が小さく、 多重比較・p ハッキングが多い; (2) 医学: 試験プロトコルが複雑、 患者の個別差が大きい; (3) がん生物学: 細胞株・実験動物の系統差、 試薬のロット差; (4) 機械学習: コード・ハイパーパラメータ・seed の管理不足; (5) 経済学: マクロ経済データの修正、 計量経済モデルの選択; (6) 社会学: 質的データの解釈、 サンプルの代表性; (7) 物理学: 計算精度・キャリブレーション、 装置依存性; (8) 化学: 反応条件、 試薬純度; (9) 環境科学: 観測地点・季節・気候の影響; (10) SSDSE 的データ研究: データソース・前処理・統計モデルの選択。 分野固有の対策が必要。

再現性向上の組織的取り組み

主要な組織的取り組み: (1) Center for Open Science (COS): OSF を運営、 事前登録・データ共有を推進; (2) Society for Improving Psychological Science (SIPS): 心理学者コミュニティ; (3) Reproducibility Project: 心理学・がん生物学・経済学で大規模再現研究; (4) Berkeley Initiative for Transparency in the Social Sciences (BITSS): 社会科学の透明性向上; (5) Meta-Research Innovation Center at Stanford (METRICS): メタ研究の専門センター; (6) NIH Rigor and Reproducibility: 助成研究の品質向上指針; (7) UK Reproducibility Network: 英国の研究機関ネットワーク; (8) 日本心理学会の事前登録ガイドライン: 国内の動き; (9) SSDSE 統計データ解析コンペ: 公的統計データの再現可能研究を促進; (10) EU の Plan S: 助成研究の Open Access 義務化。 これらの組織が連携して再現性文化を醸成している。

再現性危機からの学び

再現性危機 10 年間の主要な学び: (1) 「単一論文」より「メタ分析」: 単一研究の結論を過信せず、 複数研究の統合で判断; (2) 「p 値」より「効果量と信頼区間」: 統計的有意性より実質的重要性を重視; (3) 「探索」と「確証」の分離: 異なる研究目的を明示し、 異なる基準で評価; (4) 「失敗」も価値ある情報: null result の出版を促進、 出版バイアス抑制; (5) 「データ・コード公開」が標準: 検証可能性が研究品質の前提; (6) 「事前登録」が信頼性の柱: 仮説と解析計画の凍結; (7) 「査読型 RR」の有効性: 結果に関わらず出版される枠組み; (8) 「批判的吟味」が健全: 研究結果への建設的批判が科学を進める。 これらの学びを SSDSE 研究にも反映することで、 公的統計データを用いた研究の品質が向上する。

未来の再現性向上技術

今後発展が期待される再現性向上技術: (1) Decentralized Science (DeSci): ブロックチェーンで研究プロセスを記録・検証; (2) AI-Assisted Replication: AI が論文を読んでコードを生成・検証; (3) Automated Statistical Auditing: 統計エラーを自動検出; (4) Federated Learning for Research: プライバシー保護下での多機関協調; (5) Reproducibility Score: 研究の再現可能性を数値化; (6) Living Documents: 結果が更新可能な動的論文; (7) Interactive Replication: 読者がブラウザ上で結果を再現; (8) Computational Reproducibility Containers: Docker の進化形 (CodeOcean、 Whole Tale)。 SSDSE 研究もこれらの技術を活用することで、 国際的に通用する研究品質を達成できる。

再現性研究のメタアナリシス手法

再現研究の結果を統合するメタアナリシス手法: (1) Fixed-effect Meta-analysis: 効果量が共通の真値を持つと仮定; (2) Random-effect Meta-analysis: 効果量が分布を持つと仮定 (異質性を考慮); (3) Bayesian Meta-analysis: 事前分布で先験知識を組み込む; (4) Network Meta-analysis: 複数比較を統合; (5) Multi-level Meta-analysis: 階層構造のデータ; (6) Robust Bayesian Meta-analysis: 事前分布の選択へのロバストネス; (7) P-curve Meta-analysis: 出版バイアスを排除した効果量推定; (8) Z-curve Meta-analysis: 期待される再現率の推定; (9) Small Telescopes Approach: 元研究の効果量の 33% を再現限界とする; (10) Selection Models: publication bias の修正。 これらの手法で複数研究を統合し、 信頼できる結論を導く。

再現性危機と科学コミュニケーション

再現性危機への対応として、 科学コミュニケーションの改革も進行: (1) Plain Language Summary: 平易な要約の必須化; (2) Data Availability Statement: データ公開の明示; (3) Conflict of Interest Disclosure: 利益相反の透明な開示; (4) Author Contribution Statement: 各著者の貢献明示; (5) Pre-print Server: 査読前公開で迅速な共有; (6) Post-publication Peer Review: PubPeer、 F1000Research; (7) Social Media Discussion: Twitter、 Mastodon での議論; (8) Science Communication Training: 研究者教育の充実; (9) Public Engagement: 市民科学プロジェクト; (10) Open Notebook Science: 研究プロセスの全記録公開。 SSDSE のような公的統計データ研究では、 これらの科学コミュニケーション改革と整合した研究実践が重要。

再現性向上のための研究文化変革

再現性危機からの 10 年で、 学術コミュニティは大きな文化的変革を遂げてきた。 2010 年代初頭は「論文数で評価」「華やかな結果が出版される」「データ・コードは個人の所有物」という文化が支配的だったが、 2020 年代には「再現可能性が研究品質の指標」「null result も学術的に価値ある」「データ・コードは学術コモンズ」という文化への移行が進んでいる。 この文化変革を支える要素には、 研究助成機関の方針変更 (NIH の Rigor and Reproducibility ガイドライン、 NSF の Data Management Plan)、 学術誌の出版ポリシー変更 (TOP Guidelines、 Open Science Badges)、 大学・研究機関の評価制度の見直し (DORA 宣言の採択)、 専門学会の主導 (心理学界・経済学界・神経科学界での協調)、 若手研究者のリーダーシップ (BITSS、 SIPS、 ReproducibiliTea などのコミュニティ)、 メディアの関心 (Nature、 Science、 Atlantic などでの特集記事)、 政策的支援 (UK の Reproducibility Network、 EU の Plan S) などがある。 これらの変革は段階的かつ非線形的に進んでおり、 分野によって普及度が異なる。 心理学・神経科学では事前登録・open data がほぼ標準となっている一方、 人文学・芸術研究では概念自体の適用が議論中である。 SSDSE-B-2026 のような公的統計データを用いた研究は、 元データが公開済みで再現性が構造的に高く、 統計データ解析コンペのような取り組みが日本の研究文化変革に寄与している。 学生・若手研究者がコンペを通じて再現可能な研究実践を学ぶことで、 次世代の研究者層に再現性文化が浸透する。 大学院教育、 学部教育、 さらには高校・中学校のデータサイエンス教育まで含めた、 統計リテラシーと再現性教育の統合的カリキュラム設計が、 長期的な研究品質向上の鍵となる。 教育現場では、 Docker による環境再現、 GitHub での版管理、 OSF での事前登録、 multiverse analysis による感度評価、 メタアナリシスによる結果統合など、 実践的なスキルと概念的理解を組み合わせた学習プログラムが効果的とされている。 これらの教育実践により、 再現性は「特別な努力」ではなく「研究の標準的な実施手順」となる。

再現性研究の総合的実装フロー

SSDSE-B-2026 を用いた再現可能研究の総合的実装フロー: ステップ 1: 「研究計画と事前登録」では、 仮説・解析計画・サンプルサイズ計算を OSF に登録、 タイムスタンプで凍結。 ステップ 2: 「データ管理」では、 e-Stat から SSDSE-B-2026 をダウンロード、 MD5 ハッシュを記録、 raw データを read-only で保存。 ステップ 3: 「環境構築」では、 Dockerfile で Python 3.11 + pandas 2.0 + scipy 1.11 + statsmodels 0.14 をバージョン固定、 requirements.txt または poetry.lock を保存。 ステップ 4: 「解析パイプライン」では、 Snakemake または Make で全解析を一コマンドで実行可能なように設計、 R Markdown または Quarto で文書化。 ステップ 5: 「ランダム性管理」では、 全乱数生成で seed を明示固定 (np.random.seed(42)、 random.seed(42))、 GPU 計算の非決定性を排除。 ステップ 6: 「結果出力」では、 図表をスクリプトで自動生成、 手作業を排除、 結果の数値を JSON/CSV で保存。 ステップ 7: 「multiverse analysis」では、 解析者の自由度 (欠損値処理、 変数選択、 統計モデル) を網羅的に評価、 結果のロバストネスを可視化。 ステップ 8: 「バージョン管理」では、 git で全変更を追跡、 GitHub に push。 ステップ 9: 「公開」では、 Zenodo で DOI 付き永続保存、 OSF にメタデータと事前登録を統合、 論文投稿時に GitHub/OSF/Zenodo の URL を方法論セクションに明示。 ステップ 10: 「査読対応」では、 査読者がスクリプトを実行して結果を再現できるか確認、 質問に対し透明に対応。 ステップ 11: 「公開後対応」では、 PubPeer・Twitter での議論に対応、 必要なら corrigendum や erratum を発表。 このフローを定着させることで、 SSDSE 研究は国際的に通用する再現性基準を達成する。 公的統計データを用いた研究で再現性のベストプラクティスを示すことは、 日本の学術コミュニティ全体の研究品質向上に寄与する。

再現性危機の総合的まとめ

再現性危機 (replication crisis) は、 2010 年代以降に学術界が直面した方法論的反省で、 心理学・医学・社会科学などの分野で多くの主要研究が独立に再現できないことが明らかになった事象を指す。 本稿で示してきた内容を統合すると、 (1) 再現性問題の主因は低検出力、 publication bias、 p ハッキング、 HARKing、 不十分な統計教育、 競争的学術環境、 などが複合的に作用していること、 (2) Open Science Collaboration (2015) の心理学 100 件再現で 36% の再現率という衝撃的結果が改革を加速、 (3) 計算再現性・結果再現性・推論再現性・replicability・generalizability の階層構造、 (4) 事前登録・データ公開・コード公開・Docker などの技術的対策、 (5) Registered Report・TOP Guidelines・DORA 宣言などの制度的対策、 (6) Many Labs、 Reproducibility Project などの国際協調プロジェクト、 (7) SSDSE-B-2026 のような公開データを用いた研究は構造的にデータ再現性が高いが、 解析再現性は別途確保が必要、 (8) multiverse analysis、 split-sample、 メタアナリシスなどの統合的手法、 などのポイントが理解できる。 これらを実践的に SSDSE データに適用することで、 学生・研究者は再現性研究の概念を実データに対する具体的な研究実践へと結びつけることができる。 公的統計データ研究での再現性基準の標準化は、 日本の学術コミュニティの研究文化向上、 政策研究の信頼性向上、 国際的な研究品質基準への適合、 という多面的な貢献をもたらす。

再現性危機とオープンサイエンスの統合

再現性危機への対応は、 オープンサイエンス (Open Science) ムーブメントと密接に統合されている。 オープンサイエンスの 4 つの柱は (1) Open Access (査読論文の無料アクセス)、 (2) Open Data (研究データの公開)、 (3) Open Source (解析コードの公開)、 (4) Open Methodology (方法論の事前登録と透明な手順記述) で、 これらが統合的に運用されることで、 再現性危機への根本的な解決が可能となる。 SSDSE-B-2026 のような公的統計データは Open Data の代表例で、 e-Stat 経由で誰でもダウンロード可能、 メタデータが整備、 ライセンスが明確、 という FAIR Principles (Findable、 Accessible、 Interoperable、 Reusable) に準拠している。 オープンサイエンスの推進により、 個別研究の透明性が向上し、 学術コミュニティ全体の知的生産性が向上し、 社会との対話が深化することが期待される。

再現性危機と分野固有のチャレンジ

再現性危機への対応は、 分野ごとに異なるチャレンジと解決策を伴う。 心理学では、 効果量の小ささ・サンプル不足・実験条件の繊細さが再現性問題を生み、 Many Labs プロジェクト・Registered Report・事前登録の普及が進んだ。 Open Science Collaboration (2015) の 100 件再現で 36% の再現率という衝撃的な結果が、 心理学界の方法論的反省を加速した。 医学・生命科学では、 試薬の品質・細胞株の系統差・実験プロトコルの複雑さが再現性問題の主因で、 Reproducibility Project: Cancer Biology (2014-2021) で 50% の再現率が報告された。 Amgen (2012) の「がん研究の 89% が再現不可能」という発表は、 創薬産業に大きな影響を与えた。 経済学では、 マクロデータの修正・計量経済モデルの選択・仮定の依存性が再現性問題を生み、 AEA Data Editor の導入 (2019) でコード・データ公開が必須化された。 Camerer et al. (2016, 2018) の経済学実験再現プロジェクトで 60-70% の再現率が報告され、 心理学より高い結果となった。 機械学習では、 コード未公開・ハイパーパラメータ未記載・GPU 非決定性・ランダムシード未固定が再現性問題の主因で、 NeurIPS 2020 から reproducibility checklist が必須化された。 Pineau et al. (2019) の調査では 30% の完全再現率が報告されている。 物理学・天文学では、 観測装置のキャリブレーション・計算精度・データ前処理の標準化が再現性確保の鍵となる。 大規模実験 (LHC、 LIGO) では、 国際協調プロジェクトとして数百-数千の研究者が共同で再現性を確保している。 化学では、 反応条件・試薬純度・装置依存性が再現性問題の主因で、 ELN (Electronic Laboratory Notebook) と FAIR データ原則の活用が進んでいる。 計算科学では、 浮動小数点演算の精度・並列計算の非決定性・ライブラリのバージョン差が再現性問題の主因で、 Docker・Singularity・CodeOcean などのコンテナ技術が活用されている。 SSDSE-B-2026 のような公的統計データを用いた研究は、 元データが公開済みでデータ再現性が構造的に高いため、 主な課題は「解析再現性」と「inferential reproducibility」(同じデータで別の解析者が独立に分析しても同じ結論に至るか) である。 multiverse analysis や split-sample 設計でこれらの課題に対処できる。 分野横断的なチャレンジとして、 (a) インセンティブの調整 (採用・昇進・助成での評価)、 (b) 教育の充実 (学部・大学院での統計教育)、 (c) 技術インフラの整備 (GitHub・OSF・Docker)、 (d) 学術出版の改革 (Open Access、 preprint、 Registered Report)、 (e) 国際協調 (Many Labs、 Reproducibility Project)、 などが共通の柱となる。 これらの分野固有・分野横断的なチャレンジを統合的に理解することで、 再現性危機への対応はより効果的かつ持続可能となる。

再現性危機の主要な国際的取り組み

再現性危機への対応として、 世界各地で多様な国際的取り組みが進行している。 米国では、 NIH の Rigor and Reproducibility ガイドライン (2014) が助成研究の品質基準を引き上げ、 NSF の Data Management Plan が研究データ公開を義務化している。 大統領科学諮問委員会 (PCAST) が 2017 年に再現性危機への政府対応を提言、 NASEM (National Academies of Sciences, Engineering, and Medicine) の Reproducibility and Replicability in Science レポート (2019) が再現性向上のための統合的フレームワークを提示した。 欧州では、 EU の Horizon Europe (2021-2027) で Open Science 原則が研究助成の条件となり、 Plan S (2018) で助成研究の Open Access 出版が義務化された。 英国の UK Reproducibility Network (UKRN、 2019 設立) は、 大学・研究機関のネットワークとして、 再現性向上の制度的支援を行っている。 ドイツの DFG (Deutsche Forschungsgemeinschaft) は、 助成研究の事前登録と再現可能性のガイドラインを公表。 オランダの NWO (Nederlandse Organisatie voor Wetenschappelijk Onderzoek) は、 オープンサイエンス政策を強力に推進。 アジア・オセアニアでは、 日本の文部科学省が 2020 年に研究公正と再現性向上の方針を発表し、 学術会議の声明も発表された。 日本心理学会・日本社会心理学会が事前登録ガイドラインを策定。 中国の国家自然科学基金は、 再現性向上のための助成方針を 2023 年から強化。 韓国・台湾・シンガポール・オーストラリアでも、 国レベルの再現性向上の取り組みが進行している。 国際協調プロジェクトとしては、 Many Labs シリーズ (心理学)、 Reproducibility Project (心理学・がん生物学・経済学)、 Psychological Science Accelerator (心理学)、 ML Reproducibility Challenge (機械学習) などが代表的。 これらの取り組みは、 単一研究機関や単一国の枠を超えた、 グローバルな学術エコシステム改革の動きとして位置づけられる。 SSDSE-B-2026 のような公的統計データを用いた研究で、 これらの国際的な再現性向上のフレームワークと整合した研究実践を行うことは、 日本の学術コミュニティの国際的評価と影響力の向上に寄与する。 統計データ解析コンペのような取り組みは、 学生・若手研究者にこうした国際的潮流を体験的に学ぶ機会を提供する重要な役割を果たしている。

再現性危機と現代の学術エコシステム

再現性危機への対応は、 単一の解決策ではなく、 学術エコシステム全体の構造的変革を要求する複合的な課題である。 第 1 の柱は研究実践の変革で、 事前登録・データ公開・コード公開・透明な手順記述が標準化されることで、 個別研究の再現性が向上する。 第 2 の柱は学術出版の改革で、 Open Access、 preprint、 Registered Report、 post-publication peer review などの新しい出版モデルが、 出版バイアスと publication priority の問題を軽減する。 第 3 の柱は研究機関の評価制度の見直しで、 DORA 宣言の採択、 論文数・h-index に依存しない多面的な研究評価、 再現性研究や null result の評価などが、 研究者のキャリアインセンティブを変える。 第 4 の柱は研究助成機関の方針で、 NIH の Rigor and Reproducibility ガイドライン、 NSF の Data Management Plan、 EU の Horizon Europe の Open Science 要件などが、 助成研究の品質基準を引き上げる。 第 5 の柱は統計教育の充実で、 学部・大学院・専門研究者の各レベルで、 検出力・効果量・多重検定・事前登録・再現性の教育が組み込まれる。 第 6 の柱は技術インフラの整備で、 OSF、 GitHub、 Zenodo、 Docker、 CodeOcean、 Whole Tale などの技術プラットフォームが、 再現可能研究の実装を技術的に支援する。 第 7 の柱は国際協調で、 Many Labs、 Reproducibility Project、 ML Reproducibility Challenge などの大規模協調プロジェクトが、 個別研究を超えた再現性検証を実施する。 第 8 の柱はメディアと社会との対話で、 再現性危機の議論が学術コミュニティ内に閉じず、 社会一般の科学リテラシー向上と結びつくことで、 政策決定や教育における科学の役割が再定義される。 これらの 8 つの柱が相互に作用することで、 再現性危機からの本格的な脱却が可能となる。 SSDSE-B-2026 のような公的統計データを用いた研究は、 元データが公開済みでデータ再現性が構造的に高く、 統計データ解析コンペのような取り組みが学生・若手研究者の再現性研究実践を支援している。 こうした取り組みを通じて、 日本の学術コミュニティは国際的な再現性向上のムーブメントに積極的に参加し、 公的統計データを用いた研究の品質と国際的評価を高めていくことができる。 長期的には、 「再現性のある研究」が「特別な努力」ではなく「研究の標準的な実施手順」として定着し、 学術コミュニティ全体の知的生産性が向上することが期待される。 これは単なる方法論の改善を超えて、 「科学とは何か」「研究者の社会的責任とは何か」という根本的な問いに対する答えを、 学術コミュニティが集合的に再定義していくプロセスでもある。 再現性危機への対応は、 統計学・データサイエンス・各専門分野の枠を超えた、 学術全体の構造的変革のための共同事業として位置づけられる。

🗺 概念マップ — 再現性危機を中心に

再現性危機 を中心に、 原因と対抗策のネットワークを整理:

[再現性危機] │ ┌─────────────────────┼─────────────────────┐ │ │ │ [原 因] [症 状] [対 抗 策] │ │ │ ┌────┴────┐ ┌──────┴──────┐ ┌──────┴──────┐ │ │ │ │ │ │ [p-hacking] [過小検出力] [低再現率] [効果量誇張] [事前登録] [オープン] │ │ │ │ │ │ [多重比較] [n小] [Open Sci ] [winner's] [Reg Rep] [データ公開] │ │ [Collab 2015] curse │ │ [分岐の小道][Button et al] [Begley & Ellis] │ [Many Labs] │ [2013] [2012] │ [HARKing] [事前検出力分析] │ [optional stopping]

この図は『再現性危機の構造図』。 中央の「症状」は観測されるが、 その背後には複数の「原因」が絡み合っている。 単一の対抗策では不十分で、 研究文化のシステム改革が必要。

🛠 実務向け 12 ステップ再現性チェック手順書

SSDSE-B-2026 を題材にした卒論・修論・ジャーナル論文を想定した実装手順。 「分析を始める前→収集中→公表前」の 3 段階に整理。

フェーズ A: データ収集前(事前計画)

  1. 研究目的を 1 文で書く: 「SSDSE-B-2026 を使って、 47 都道府県の高齢化率と人口減少率の関係を検証する」
  2. 仮説を H0/H1 形式で記述: H0: r=0、 H1: r≠0(両側)。 探索的研究なら「探索的」と明記。
  3. 事前検出力分析: statsmodels.stats.power で必要 n を算出。 SSDSE は 47 県固定なので、 検出可能な最小効果量を計算。
  4. 分析パスを 1 つに固定: 「Pearson 相関を 1 回、 外れ値除外なし、 全 47 県使用、 α=0.05 両側」を OSF に登録。

フェーズ B: 分析中(実行・記録)

  1. 乱数シード固定: np.random.seed = None ではなく明示的に seed=42 等を設定。
  2. 環境記録: pip freeze > requirements.txtconda env export、 Python バージョンを記録。
  3. Jupyter notebook で実行ログ保持: 出力セルを残し、 中間結果も保存。 papermill でパラメトリック実行。
  4. 計画逸脱を即時記録: 「外れ値が見つかったので除外することを追加検討した」など、 すべて研究日誌に。

フェーズ C: 公表前(透明性確保)

  1. 確認的 vs 探索的を分離報告: 事前登録した分析(確認的)と、 データ見てから追加した分析(探索的)を別セクションに。
  2. 効果量・CI・p の三点セット併記: r = -0.811, 95% CI [-0.892, -0.679], p = 3.2e-12 の形式で。
  3. GitHub / Zenodo に公開: コード(MIT/BSD ライセンス)、 データ(必要なら派生データのみ)、 README に再現手順、 CITATION.cff を整備。
  4. 論文 Data Availability 節: 「データは SSDSE-B-2026 公式サイト、 コードは github.com/myname/myproject、 事前登録は osf.io/abcde」と明記。

📌 この 12 ステップは 「卒論・修論レベルでも実施可能」に設計されている。 全部やる時間がなければ最低限 ②(仮説の H0/H1 明示)、 ⑨(確認的 vs 探索的の分離)、 ⑩(効果量と CI 併記)の 3 つだけでも実施する。

reproducibility crisis 医療・公衆衛生 EBPM(証拠に基づく政策立案) 製薬・新薬開発 製薬 R&D 効率の低下 教育・人材育成 科学への市民信頼

🔗 隣接手法への橋渡し

「再現性危機」は単独で完結する手法ではなく、 隣接領域と連携することで真価を発揮する。

心理学・医学・経済学で 30-50% の研究が 再現できなかった という衝撃的事実は、 統計手法そのものではなく 研究倫理 と研究設計の問題提起である。

🌳 手法選択フロー

「再現性危機」を自分の研究や報告に当てはめるとき、 公開可能性と検証手段で判定する。

  1. データ・コード・乱数 seed を公開できるか? Yes → 完全再現可能 として GitHub/OSF に登録。 No → 少なくとも分析手順と集計表を詳細記述、 第三者が同等のデータで再現を試せる粒度に
  2. p-hacking や HARKing のリスクを排除しているか? 事前登録 (preregistration) で仮説と分析計画を凍結、 多重検定補正 で α 膨張を抑制、 探索と確認を別データで
  3. 効果量・信頼区間を併記しているか? p 値だけでは再現性は守れない → 効果量 (Cohen's d / η²)95% 信頼区間 を必ず併記、 再現研究での比較を可能にする

SSDSE-B-2026 のような公開データを使った報告は、 データ ID と取得日・前処理スクリプトを Markdown で共有するだけで再現性が大きく改善する。 オープンサイエンス の各種ツール (Open Science Framework, Zenodo DOI) を活用する。

🎮 触って理解する — 偽陽性はこうして量産される

ここまでの数式(FWER)とケーススタディを、 効果がゼロ(帰無仮説が真)の架空実験で体感します。 データは シード固定の擬似乱数で決定的に生成され、 誰が何回開いても同じ結果になります。 「たくさん試す」と偶然の有意(p < 0.05)を掴む確率がどう跳ね上がるか、 そして 事前登録多重比較補正 がそれをどう抑えるかを、 スライダーで動かして確かめてください。

① 分かれ道の庭(garden of forking paths)— 試す回数と偽陽性

効果は本当にゼロ。 それでも「サブグループを変える/変数を変換する/外れ値を除く」など 20 通りの分析を試すと、 どれか 1 つで p < 0.05 が出てしまう。 各分析の p 値は帰無仮説のもとで一様分布 U(0,1) に従う(=正しい検定でも 20 回に 1 回は偶然有意)。 下の帯は 1 つの研究で得た p 値、 赤は「偽陽性」。

試す分析の数 k =
20
seed = 1
補正なし:少なくとも1つ有意になる確率
理論値 1−(1−0.05)k
64.2%
補正なし:架空実験2000回の実測
Bonferroni補正後(閾値 0.05/k)の実測
事前登録:分析を1つに固定
5.0%

k を右に動かすほど、 効果ゼロなのに「有意な結果」を掴む確率が上がる。 これが p-hacking / HARKing の温床。 Bonferroni 補正(緑)や 事前登録(青)は、 何回試そうと偽陽性率をおよそ 5% に抑える。

② 出版バイアス — 有意な結果だけ載ると、効果ゼロが「効果あり」に化ける

真の効果 d を設定し、 サンプルサイズがバラバラな 800 本の架空研究を回す。 有意(p<0.05)かつ正方向の研究だけが「出版」される(file-drawer 問題)。 ファンネルプロット(上ほど大標本=高精度)で、 灰=全研究、 赤=出版された研究。 縦線は真の効果(黒)と文献平均(赤破線)。

真の効果 d =
0.00
全研究の平均効果(真実に近い)
0.00
文献に載った研究の平均効果
0.49
出版された本数 / 800
86

d=0 でも文献平均が 0 から大きくズレる=存在しない効果が「確立した知見」に化ける(winner's curse)。 小標本ほど偶然の大効果でしか有意にならず、 ファンネルの底が非対称に空洞化する。 対策は Registered Reports(結果を見る前に採否を決める)と、 検出力 を上げる大標本、 そして全結果を集めるメタ分析での出版バイアス補正。

まとめ:偽陽性は「嘘」ではなく、 研究者の自由度(どの分析を選ぶか)と 出版の選別という 2 つの増幅器から生まれる。 一つ一つの検定は α=0.05 でも、 試した回数載せた結果の偏り を勘定に入れると、 文献全体の偽陽性率ははるかに高い。 事前登録多重比較補正FDR 制御・効果量と 信頼区間 の併記が、 その 2 つを同時に閉じる。

🔭 解説深化 — 「1 つのデータセットが既に何千もの結論を含んでいる」

この節は姉妹ページ(p 値=単一検定の解釈、 多重比較=補正の数式、 事前登録=制度的対策)とは別角度で、 「固定された 1 つの実データを総当たりすると再現性危機がどう立ち上がるか」を、 SSDSE-B-2026 の 実測値のみで示します。 以下の数値はすべて data/raw/SSDSE-B-2026.csvencoding='cp932', skiprows=[1])の 2023 年・47 都道府県から Python で実際に算出したもので、 合成データは使っていません。

🎨 直感 — データを集める前に、結論の「在庫」はもう決まっている

2023 年の 47 都道府県データには、 定数列・欠損列を除いて 109 個の数値指標があります。 この 109 列から 2 列を選ぶ組み合わせは 109C2 = 5,886 通り。 その全ペアで Pearson 相関を計算すると——

全 5,886 ペアの相関検定(実測) p < 0.05 … 5,063 ペア(86.0%) p < 0.001 … 4,507 ペア(76.6%) n=47 での有意判定ライン: |r| ≥ 0.288

つまり 指標を 2 つ拾えば、86% の確率で「統計的に有意な関連」が最初から手に入る。 社会経済指標は人口・所得・産業構造を通じて互いに強く絡んでいるため、 「有意な相関を発見した」こと自体はほとんど情報を持ちません。 データを取るから、支持できる主張の在庫は膨大に積まれている——研究者はその棚から結論を「選ぶ」だけになりがちです。 これが再現性危機の底にある構造で、 不正ではなく選択の自由(researcher degrees of freedom)の問題です。

⚠️ 落とし穴(重要)— 純粋なノイズでも「有意な発見」はほぼ必ず出る

「でも自分の変数は本物のデータだ」という反論に、 実データで答えます。 109 列とは無関係な乱数(標準正規ノイズ)を 1 本用意し、 それを 109 の実指標すべてと相関させる——という試行を、 固定シード rng = np.random.default_rng(20260614)5,000 回モンテカルロした結果が下です。 乱数は指標と因果も相関も持たないので、 ここで p<0.05 になった相関は 100% 偽陽性です。

ノイズ 1 本 vs 実指標 109 列(5,000 回, seed=20260614, 実測) 1 本あたり平均 5.40 件が p<0.05(理論期待 0.05×109 = 5.45 とほぼ一致) 中央値 1 件・最大 99 件(← 実指標どうしが相関するため件数が塊で振れる) 「少なくとも1件は有意」になる確率 … 56.8%(補正なし) … 1.4%(Bonferroni: |r| ≥ 0.491 を要求)

意味不明な乱数を持ち込んでも、 半分以上の確率で「何かと有意に相関する変数」を釣り上げられる。 「有意な結果が出た」は仮説の正しさの証拠にならない——これが多重性(multiplicity)の核心で、 再現性危機に固有なのは「検定 1 回の多重性」ではなく 分析パイプライン全体(指標選択・前処理・層別)にわたる多重性だという点です。 さらに厄介なのは、 実指標が互いに相関するせいで偽陽性の件数が 中央値 1・最大 99 と極端に塊で振れること。 「今回は数個しか有意じゃなかったから大丈夫」という目分量では自分の偽陽性率を推し量れません。 なお Bonferroni 補正はこの暴走を 56.8% → 1.4% へ引き戻します(多重比較補正参照)。

🚀 発展 — 「1 本だけ報告する」から「全部の分布を見せる」へ

上の 86% と 5.40 という 2 つの数字が、 再現性危機への現代的処方箋を指し示します。

事前登録 / Registered Reports: 5,886 通りのうちどの 1 本を検定するかをデータを見る前に決め打ちすれば、 選択の自由が消え、 名目 α=0.05 が実質 α=0.05 に戻ります(事前登録)。

multiverse / specification-curve 分析: 「最も p が小さい 1 本」を隠さず、 5,886 通り(あるいは前処理を変えた全パス)の相関を分布として丸ごと提示する。 上の「86% が有意」という分布そのものを見せることが誠実な報告で、 チェリーピックの余地を奪います。 本ページ上部の calc 節が示した forking paths(4×4×4=64 パス)を、 総当たりで可視化した版と考えてください。

効果量と信頼区間: 二値の「有意/非有意」ではなく 効果量と CI を報告すれば、 n=47 の小標本ゆえの推定の不安定さ(検出力の低さ)がそのまま見えます。 実際、 上部の Cohen's d のブートストラップ CI が 0 をまたいでいた例がこれに当たります。

キーワードで言えば、 garden of forking paths(Gelman & Loken 2014)と HARKing(Kerr 1998)が問題の名前、 pre-registration・多重比較補正・偽発見率(FDR)制御・出版バイアス補正が対策の名前です。

🔗 関連ページ

※ 本節の相関・モンテカルロ数値は SSDSE-B-2026 の実測(2023 年 47 都道府県、 数値 109 指標)。 モンテカルロ部分はシード 20260614 固定で再現可能です。