このページ内のセクションへ素早く飛べます(クリックで該当箇所へジャンプ):
「reproducibility crisis」は統計データ分析の文脈で扱う重要概念のひとつ。 本ページでは「reproducibility crisis」を取り巻く中核キーワードを以下にチップで一覧化する。 各キーワードは関連する概念・手法・道具立てを含み、 文献検索や学習計画の起点になる。
これらのキーワードは「reproducibility crisis の理解 → 適用 → 検証」のプロセスを構成する。 各章で詳しく解説する。
🍰 まずはやさしく
科学の信頼が揺らいでいる状態のことです。
正しい研究の結果を見分けるために使います。
部活の練習法を真似しても結果が出ない例に似ています。
この章では危機の原因と対策を読みます。
🍰 まずはやさしく
研究の結果が再現できない問題のことです。
データ分析の注意点を学ぶために使います。
同じデータから違う結論が出るスマホの集計のような例です。
このページでは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: Psychology | 36 / 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 Replication | 11 / 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 点示す。



🍰 まずはやさしく
間違いが起きる仕組みを数式で表したものです。
なぜ間違った結果が出るかを証明するために使います。
買い物でたまたま安い店を引いたような偶然の例です。
ここではエラー率や検出力の計算式について読みます。
$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 列で総当たり相関を取ると、 ほぼ確実に偽の「有意」が大量に出る。
真の効果サイズ $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% の確率で見逃す」 = 公表されているのは 運良く有意だった研究 ばかり。
公表された「有意」が 本当に 正しい確率:
$$ \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” の核心。
再現性危機の議論では 「再現できた/できなかった」を二値で判定しがちだが、 厳密には複数の連続指標がある。
元論文の効果量 $d_{orig}$ と追試の $d_{rep}$ について、 95% CI が重なるか:
$$ \text{Replication success}_1 = \mathbb{1}[d_{rep} \in \text{CI}_{95}(d_{orig})] $$
同じ符号で、 かつ追試で $p < 0.05$:
$$ \text{Replication success}_2 = \mathbb{1}[\text{sign}(d_{rep})=\text{sign}(d_{orig}) \wedge p_{rep} < 0.05] $$
追試での効果量が元論文の何倍に縮小したか:
$$ \text{Shrinkage} = \frac{d_{rep}}{d_{orig}} $$
OSC (2015) では平均 0.50(半減)、 がん生物学 Begley & Ellis では 0.20 以下に縮小。
追試データの下で 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) が標準枠組みを提示。
「強いポーズ(手を腰に当てる、 胸を張る)を 2 分間続けるとテストステロンが上昇し、 リスク志向が高まる」という心理学研究。 Cuddy の TED トークは累計 7000 万回再生され、 ベストセラー本にもなった。
追試(Ranehill et al. 2015, n=200)では ホルモン効果は完全に消失、 自己報告のみ部分的に残った。 元著者の一人 Dana Carney が 2016 年に「もうこの効果を信じていない」と公式表明。 元論文は n=42(過小検出力)、 多重比較未補正、 p=0.05 ぎりぎり。
教訓: 小さい n、 多重比較、 p≈0.05 → 古典的な再現失敗パターン。
「意志力は有限な資源で、 使うと枯渇する」という社会心理学の大ヒット理論。 200+ 論文が引用、 教科書にも掲載。
Hagger et al. (2016) の Many Labs 追試(23 ラボ、 n=2,141)で効果サイズ d = 0.04(実質ゼロ)。 メタアナリシス(Carter et al. 2015)でも出版バイアス補正後の効果量は無視できるサイズに。
教訓: 「教科書に載るほど確立した理論」でも、 元になった研究群が出版バイアス・小サンプルで構成されていれば崩壊する。
これは 意図的不正のケースで、 上記の再現性危機の主流(非意図的構造問題)とは別カテゴリ。 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)。 |
| FWER | Family-Wise Error Rate。 一群の検定の中で 少なくとも 1 件 偽陽性が出る確率。 Bonferroni 補正で抑制する。 |
| FDR | False Discovery Rate。 「有意」と判定したうちの偽陽性割合の期待値。 Benjamini-Hochberg 法で制御。 |
| PPV | Positive Predictive Value。 「有意な研究」のうち真に正しい割合。 低 PPV = 公表結果の大半が偽。 |
再現性危機の本質は、 ひとつひとつの記号や数式が複雑なのではなく、 「α=0.05 をどう守るか」という問いが研究プロセス全体(事前計画・データ収集・分析・公表)に影響していることです。 個別の検定ではなく、 研究エコシステム全体のエラー制御として読み直す必要があります。
「再現性危機」と一口に言うが、 実は 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(47都道府県・112 項目)を使って「分岐する小道(garden of forking paths)」を実演します。 仮説「高齢化と人口減少には関連がある」を検証する際、 分析者の選択次第で 3 つの異なる結論が出ます。
📌 注(独自定義): 以下の分岐①〜③の r・p は、「人口変化率」「外れ値基準」「サブグループ区分」の 独自の操作的定義に基づく 例示(模式値)であり、 forking paths が結論をどう動かすかを示すための説明用の値です。 CSV からの単一の確定出力ではなく、 厳密な数値は定義の取り方に依存します。
| 高齢化指標 | 人口変化率との相関 r | p 値 | 結論 |
|---|---|---|---|
| 65歳以上人口比率(%) | −0.811 | 3.2e-12 | 強い負の相関 — 有意 |
| 75歳以上人口比率(%) | −0.768 | 2.1e-10 | 強い負の相関 — 有意 |
| 老年人口指数(65+/15-64) | −0.794 | 5.7e-11 | 強い負の相関 — 有意 |
| 平均年齢(年) | −0.732 | 4.8e-9 | 強い負の相関 — 有意 |
→ 結論①「高齢化が進むほど人口は減る」。 ただし複数指標を試して 最も強い相関だけを論文に載せる → p-hacking。
| 前処理 | n | r | p |
|---|---|---|---|
| 全 47 県 | 47 | −0.811 | 3.2e-12 |
| 東京・沖縄を外れ値除外 | 45 | −0.752 | 2.3e-9 |
| 人口 100 万人未満を除外 | 36 | −0.612 | 7.5e-5 |
| IQR×1.5 で機械除外(4 県) | 43 | −0.838 | 8.1e-13 |
→ 結論②「相関は前処理で −0.61 から −0.84 まで変わる」。 数値の幅は「事前にどの前処理を選ぶか」次第。
| サブグループ | n | r | p |
|---|---|---|---|
| 東日本(24 県) | 24 | −0.832 | 3.9e-7 |
| 西日本(23 県) | 23 | −0.776 | 1.4e-5 |
| 人口減少県のみ | 39 | −0.421 | 7.2e-3 |
| 人口増加県のみ | 8 | +0.124 | 0.769 |
→ 結論③「人口増加県では 相関が消える」。 これだけ取り出せば「都市圏では関連がない」とも言える。
📌 重要: ①×②×③ = 4 × 4 × 4 = 64 通りの分析パス。 そのうち「最も p が小さい」「最も r が大きい」だけ報告すると、 実質的に α は 0.05 から大幅に膨らむ。 これが garden of forking paths(Gelman & Loken 2014)。 解決策は 事前登録 で 1 つの分析パスを事前に決め打ちすること。
再現性危機への実践的回答の一つは「単一の 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)') |
📤 実行結果:
💬 結果の読み方: 点推定 d=0.57 は中程度の効果だが、 95% CI が [-0.06, +1.18] と 0 をまたぐ。 つまり「東日本の方が高齢化が進んでいる可能性が高いが、 同程度の可能性も否定できない」というのが正直な結論。 p=0.072 で「有意でない」と判定するのと、 d と CI を示すのとでは、 情報量が全く違う。 後者は政策判断に直接使える。
SSDSE-B-2026 の 47 都道府県 × 数百指標から 1000 種の対応分析(例:高齢化率と各経済指標の相関 t 検定)を網羅的に行ったシナリオで、 偽陽性発見率(FDR)を計算する。
| 状態 | 件数 |
|---|---|
| 真陽性 TP | 50 |
| 偽陽性 FP | 40 |
| 真陰性 TN | 800 |
| 偽陰性 FN | 110 |
1 2 3 | tp, fp = 50, 40 fdr = fp / (tp + fp) print(f"FDR: {fdr:.3f}") |
💬 手計算 (Step 2) 0.444 と Python 出力が完全一致。
🎯 このコードでやること: SSDSE-B-2026 の 112 列から数値列を選び、 すべての 2 列ペアで Pearson 相関を計算。 「α=0.05 で有意」な相関がどれだけ大量に出るかを確認する。
📥 入力データ:
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})') |
📤 実行結果:
💬 結果の読み方: 何の調整もせず α=0.05 で総当たりすると 5,886 ペア中 5,063 件が「有意」。 ここから「興味深い相関」だけ拾って論文にすれば、 容易に偽の発見が量産される。 SSDSE は実データなので、 多くの相関は本物(同じ都道府県の様々な指標は当然連動する)だが、 事前に仮説を 1 つに絞らないと有意性の意味は失われる。
🎯 このコードでやること: 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)}') |
📤 実行結果:
💬 結果の読み方: 総人口と年少人口は本当に強く結びついている(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)」の危険である。
🎯 このコードでやること: 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.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 を確保すること。
🎯 このコードでやること: 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}]') |
📤 実行結果:
💬 結果の読み方: 12 年分(同じ仮説の 12 回検証)で r は −0.585〜−0.710 と 符号・有意性ともに安定。 これが「強い真の効果」のサイン。 一方、 真の効果がない仮説で同じことをすると、 年ごとに r の符号がランダムにブレる。 Many Labs 方式(Klein et al. 2014, 2018)は心理学で同じことを 30〜50 のラボで一斉に行い、 「単一研究のブレ」を可視化することで再現性危機を診断する。
🎯 このコードでやること: 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}') |
📤 実行結果:
💬 結果の読み方: 真の効果が非常に強い(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)で統計的に検出可能。
🎯 このコードでやること: 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)) |
📤 実行結果:
💬 結果の読み方: 47 件の多重比較に対して、 補正なしは 偽陽性のリスクが高い(FWER ≈ 0.91)。 Bonferroni(α/47)は FWER を厳密に 0.05 に抑えるが過剰に保守的。 BH-FDR は「有意と判定したうちの偽陽性率を 5% 以下」に制御する 探索的研究の標準。 SSDSE のように 47 県という固定セットを総当たりする場合は BH-FDR を推奨。
| 項目 | 旧パラダイム(〜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 で組織的に実施 |
🎯 このコードでやること: 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}') |
📤 実行結果:
🖥 この 3 行だけは実行環境によって変わります: Python / Platform / pandas の 3 行は、 実行したマシンの OS・Python・ライブラリのバージョンをそのまま印字したものです(上は Linux + Python 3.11.5 + pandas 2.1.4 で記録した例。 macOS + Python 3.13 + pandas 2.3 で走らせれば当然その値が出ます)。 環境によって変わることこそが、 この行を記録する理由です ── 数年後に結果が合わないとき、 「データが違うのか、 環境が違うのか」を切り分けられます。 逆に サイズ・SHA-256・MD5・行数・列数・県数・データ指紋は、 同じ CSV を読む限りどの環境でも一字一句同じにならなければおかしい。 ここがズレたらデータが差し替わっている合図です。
💬 結果の読み方: SHA-256 ハッシュを論文の Data Availability に記載しておけば、 読者は sha256sum コマンドで自分が読み込んだファイルが「論文と同じデータ」かを 1 秒で確認できる。 公的統計でも年度途中で訂正がかかることがあるので(SSDSE 2026 も Errata 公開済)、 ハッシュ記録は必須。 これだけで Methods reproducibility の基礎が担保される。
再現性危機は単なる「過去の失敗事例」ではなく、 これからデータサイエンスを学ぶ学生に最初に伝えるべき概念です。 本サイトのジャストインタイム型データサイエンス教育では、 以下の段階で導入を推奨:
| 学習段階 | 扱う概念 | SSDSE での演習 |
|---|---|---|
| 高校情報 II / 大学初年次 | 「同じデータから異なる結論」の体験 | SSDSE で 4 通りの前処理を試し、 結論が変わることを確認 |
| 大学 2 年(統計入門) | p 値の意味、 多重比較、 効果量 | 本ページの①「112 列で総当たり相関」を実行し、 5886 件中 5063 件が「有意」になる体験 |
| 大学 3 年(研究入門) | 事前登録、 オープンサイエンス、 RR | SSDSE を題材に OSF にダミー事前登録を提出する演習 |
| 学部卒論 | 事前検出力分析、 効果量・CI 併記 | SSDSE での卒論を OSF 事前登録 + GitHub 公開で実施 |
| 修士・博士 | Registered Reports、 メタアナリシス、 ベイズ | SSDSE での RR スタイル論文執筆、 Bayesian model comparison |
教育的なキーメッセージは:
| 年 | 出来事・文献 |
|---|---|
| 1620 | Francis Bacon Novum Organum — 「実験は繰り返されるべし」(科学方法論の祖) |
| 1934 | Karl Popper Logik der Forschung — 反証可能性、 H0 棄却の論理 |
| 1959 | Theodore Sterling — 出版バイアスの最初の指摘("publication decisions and their possible effects") |
| 1979 | Robert Rosenthal — file drawer problem の概念化、 fail-safe N の提案 |
| 1992 | Jacob Cohen "A Power Primer" — 検出力分析の体系化、 心理学への警鐘 |
| 2005 | Ioannidis "Why Most Published Research Findings Are False" — 危機の理論的根拠 |
| 2011 | Simmons, Nelson & Simonsohn "False-Positive Psychology" — p-hacking 概念の普及 |
| 2011 | Open Science Framework (OSF) 創設、 Center for Open Science 設立 |
| 2012 | Begley & Ellis — がん生物学 11% 再現、 製薬業界への衝撃 |
| 2013 | Button et al. — 神経科学の検出力 0.21 を実証 |
| 2014 | Cortex で Registered Reports 開始、 Gelman & Loken "garden of forking paths" |
| 2015 | Open Science Collaboration 心理学 100 論文プロジェクト → Science 掲載、 「再現性危機」が世界的トピック化 |
| 2016 | ASA Statement on p-values、 経済学 Camerer et al. 18 論文プロジェクト |
| 2017 | Munafò et al. "Manifesto for Reproducible Science" Nat Hum Behav 創刊号 |
| 2018 | Nosek et al. "The preregistration revolution" PNAS、 SSRP 21 論文プロジェクト |
| 2019 | Amrhein et al. Nature "Retire statistical significance"、 800+ 科学者署名 |
| 2020 | NeurIPS 再現性チェックリスト義務化、 ML 分野でも本格化 |
| 2021 | Soderberg et al. RR の効果検証、 「仮説支持率 RR 44% vs 従来 96%」 |
| 2022 | 米国 OSTP「すべての連邦資金研究のオープンアクセス化」を発表(2025 年実施) |
| 2023 | LLM の再現性問題が浮上(同じプロンプトで異なる出力、 モデル更新による検証不能) |
| 2024 | SSDSE-B-2024 公開、 統計教育における事前登録演習の標準化議論 |
| 2025 | EU AI Act 施行、 ハイリスク AI の透明性要件に再現性条項含む |
再現性危機の議論から派生して、 「p 値の二値判定をやめよう」という運動が生まれた。 その代替案の 1 つが Greenland (2019) の S-value。
$$ S = -\log_2(p) $$
S-value は p 値の負の log₂。 「データが H0 の下でどれだけ驚くべきか」を bit(コイン投げの連続表回数)で表現する。
| p 値 | S-value (bits) | 直感的解釈 |
|---|---|---|
| 0.50 | 1.0 | コイン投げで 1 回表(驚きなし) |
| 0.10 | 3.3 | 3.3 回連続表(少し驚く) |
| 0.05 | 4.3 | 4.3 回連続表(やや驚く) |
| 0.01 | 6.6 | 6.6 回連続表(かなり驚く) |
| 0.001 | 10.0 | 10 回連続表(強く驚く) |
| 1e-12 | 39.9 | 40 回連続表(非常に強い驚き) |
利点:①連続値なので「α=0.05 という閾値」の任意性を回避、 ②bits 単位で「驚きの量」を直感的に表現、 ③小さい p 値の差(0.001 vs 0.00001)を log スケールで見やすく。
📌 SSDSE-B-2026 の高齢化-人口相関の p=3.2e-12 は S=38.2 bits。 「コイン投げ 38 回連続表」 ≒ 偶然では到底起こらない、 という直感が掴みやすい。
事前登録した分析パスが 1 つだとしても、 他のもっともらしい選択をしたら結論がどう変わるかを補助的に示すのが感度分析。 再現性向上の重要ツール。
合理的な分析の選択肢をすべて列挙し、 全ての組み合わせで分析を実行して結論の分布を見る。
例:SSDSE-B-2026 で「高齢化と人口減少の関係」を分析する場合:
192 通りすべてで分析し、 「192 パス中 188 で p<0.05、 r の範囲は [-0.84, -0.42]」のように 頑健性を示す。 もし 192 パスのうち半分しか有意でなければ、 結論は 選択次第であり、 主張を弱める必要がある。
Multiverse の結果を effect-size 順にソートしてグラフ化。 「下位 25% でも有意」「中央値が 0 をまたぐ」など、 一目で結論の頑健性が分かる視覚化手法。
再現性危機の議論で繰り返される誤解:「p > 0.05 なので効果なし」と書くのは間違い。 「有意でない」≠「効果なし」。 「効果なし」を統計的に主張するには 同等性検定(TOST: Two One-Sided Tests)を使う。
📌 通常の t 検定で「効果あり」を、 TOST で「効果なし」を示す。 両方が「有意でない」場合は サンプルが足りない、 結論未定であり、 これも正直な報告。
SSDSE-B-2026 で例えば「2 つの政策グループの自治体で重要 KPI に差がない」ことを示したい場合、 通常の検定で p>0.05 だけ書くのは nullity の誤謬。 TOST で実質的同等性を主張する必要がある。 statsmodels.stats.weightstats.ttost_ind で実装可能。
再現性危機の議論をするときに、 学生・実務者・研究者がよく踏むワナをまとめました。
再現性危機の議論の口火を切ったのは John Ioannidis (2005) の論文 “Why Most Published Research Findings Are False”。 PLoS Medicine に掲載され、 PPV(Positive Predictive Value)の理論計算に基づいて「公表結果の大半は偽である」と主張しました。 これは当初は控えめに受け止められましたが、 2010 年代に入り 具体的な追試プロジェクト が次々と「危機」を可視化していきます。
Nature Human Behaviour 創刊号に掲載された Munafò らのマニフェストは、 再現性危機の原因を 5 階層に整理:
| 実践 | 何を防ぐか |
|---|---|
| 事前登録(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 が再現性チェックリストを義務化しました。
再現性危機 (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) のような感度分析が推奨される。
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 風の協調を考えると、 47 県の研究機関が同じ仮説 (例: 「高齢化率 vs 合計特殊出生率」) を共通プロトコルで分析する。 各機関で独立に分析した結果を統合し、 効果量の地理的変動を定量化する。 SSDSE-B-2026 のような共通公開データを用いれば、 「データの違い」要因を排除し、 「解析手法の違い」のみを評価できる。 メタ分析的にすべての結果を統合すると、 単一研究では得られない頑健な結論が得られる。 NIH の Many Labs 4 (老化研究) や経済学の Many Analysts Many Data project がモデル。
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 の標準フロー: (1) Stage 1: 研究計画書 (仮説・方法・解析計画・検出力分析) を執筆; (2) Stage 1 査読 (デザインの妥当性のみ評価、 結果を見ない); (3) In-Principle Acceptance (IPA) を獲得 → 結果に関わらず出版確定; (4) データ収集・解析; (5) Stage 2: 結果と考察を執筆; (6) Stage 2 査読 (計画通りの実施を確認)。 SSDSE のような既存データでも Registered Report は適用可能で、 「データを見る前に分析計画を確定」する。 採用ジャーナル例: Cortex、 European Journal of Personality、 Royal Society Open Science、 BMC 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) が有用。
研究例: 「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 の renv パッケージ、 targets でワークフロー管理。 Python の poetry、 conda、 Docker。 事前登録は OSF (R では osfr、 Python では osfclient でプログラマティックに登録)。 multiverse analysis は R の multiverse パッケージで実装。 Many Labs 風の協調研究は GitHub と OSF を組み合わせる。 メタ分析・p-curve・z-curve は R の metafor、 pcurve、 zcurve パッケージで実装可能。 SSDSE 分析の再現可能ワークフロー例は GitHub の e-stat-ssdse リポジトリで公開されている。
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 的な公的統計研究では、 元データが共通なので「データ再現性」は構造的に高いが、 「解析再現性」(同じデータで同じ結論を独立に得る) の検証は別途必要。
Cancer Biology Project (2014-2021) は がん研究 50 論文の独立再現を試みたが、 実施できたのは 23 件のみ (残り 27 件は実験プロトコルが不完全で再現不可能)。 結果: 23 件中 11 件 (50%) が「効果量の方向と大きさで再現」、 11 件が「方向のみ再現」、 1 件が「再現失敗」。 がん生物学のような複雑な実験系では計算再現性のみならず実験プロトコルの完全文書化が課題。 SSDSE 的に公的統計データを用いる場合、 「データソース・前処理・解析コード・統計モデル」の 4 要素を完全文書化する必要がある。
Camerer et al. (2016) は Science/Nature 掲載の経済学実験 18 件を再現し、 11 件 (61%) が成功 (心理学の 36% より高率)。 続く Camerer et al. (2018) では行動経済学 21 件のうち 13 件 (62%) が成功。 経済学の再現率が高い理由: (a) 計算経済学では精密な数学モデル、 (b) 実験経済学では金銭インセンティブが明確、 (c) サンプルサイズが心理学より大きい。 SSDSE のような公的統計研究は経済学に近く、 元データが公開・再利用可能であれば計算再現性は高い。
Pineau et al. (2019) は ICLR/NeurIPS の論文の再現可能性を調査し、 30% 程度しか完全再現できないと結論。 主因: (a) コード未公開、 (b) ハイパーパラメータ未記載、 (c) GPU の非決定性、 (d) ランダムシード未固定。 これを受けて NeurIPS 2020 から「reproducibility checklist」が必須化、 Papers with Code でコードベンチマーク公開が標準化。 SSDSE 的なデータ駆動研究でも、 GitHub でのコード公開・Docker での環境固定・乱数シード明示が再現性の最低限。
COVID-19 パンデミック (2020-2023) では、 急速な研究公開で品質問題が顕在化。 Mehra et al. (2020) の Lancet、 NEJM 論文が再現不可能で撤回 (Surgisphere scandal)。 RECOVERY Trial (UK) は事前登録・透明な手順で hydroxychloroquine の効果なしを確証的に示し、 再現性研究の好例。 SSDSE 的な公衆衛生研究でも、 事前登録・データ公開・コード公開の 3 点セットが研究品質の最低基準。
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 付き永続保存。
公的統計データを用いた研究での再現性確保: (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 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 県研究のメタ分析」を実施する際、 これらの手法で再現性を定量化する。
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: 査読者名公開のオプション。 これらの改革で出版エコシステム全体の透明性が向上している。
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 (証拠に基づく政策立案) 推進では、 再現性確保が重要な柱: (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 のような公的統計データを用いた研究は、 元データが公開済みでデータ再現性が構造的に高く、 統計データ解析コンペのような取り組みが学生・若手研究者の再現性研究実践を支援している。 こうした取り組みを通じて、 日本の学術コミュニティは国際的な再現性向上のムーブメントに積極的に参加し、 公的統計データを用いた研究の品質と国際的評価を高めていくことができる。 長期的には、 「再現性のある研究」が「特別な努力」ではなく「研究の標準的な実施手順」として定着し、 学術コミュニティ全体の知的生産性が向上することが期待される。 これは単なる方法論の改善を超えて、 「科学とは何か」「研究者の社会的責任とは何か」という根本的な問いに対する答えを、 学術コミュニティが集合的に再定義していくプロセスでもある。 再現性危機への対応は、 統計学・データサイエンス・各専門分野の枠を超えた、 学術全体の構造的変革のための共同事業として位置づけられる。
再現性危機 を中心に、 原因と対抗策のネットワークを整理:
この図は『再現性危機の構造図』。 中央の「症状」は観測されるが、 その背後には複数の「原因」が絡み合っている。 単一の対抗策では不十分で、 研究文化のシステム改革が必要。
SSDSE-B-2026 を題材にした卒論・修論・ジャーナル論文を想定した実装手順。 「分析を始める前→収集中→公表前」の 3 段階に整理。
statsmodels.stats.power で必要 n を算出。 SSDSE は 47 県固定なので、 検出可能な最小効果量を計算。np.random.seed = None ではなく明示的に seed=42 等を設定。pip freeze > requirements.txt、 conda env export、 Python バージョンを記録。papermill でパラメトリック実行。r = -0.811, 95% CI [-0.892, -0.679], p = 3.2e-12 の形式で。CITATION.cff を整備。📌 この 12 ステップは 「卒論・修論レベルでも実施可能」に設計されている。 全部やる時間がなければ最低限 ②(仮説の H0/H1 明示)、 ⑨(確認的 vs 探索的の分離)、 ⑩(効果量と CI 併記)の 3 つだけでも実施する。
「再現性危機」は単独で完結する手法ではなく、 隣接領域と連携することで真価を発揮する。
心理学・医学・経済学で 30-50% の研究が 再現できなかった という衝撃的事実は、 統計手法そのものではなく 研究倫理 と研究設計の問題提起である。
「再現性危機」を自分の研究や報告に当てはめるとき、 公開可能性と検証手段で判定する。
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 を右に動かすほど、 効果ゼロなのに「有意な結果」を掴む確率が上がる。 これが p-hacking / HARKing の温床。 Bonferroni 補正(緑)や 事前登録(青)は、 何回試そうと偽陽性率をおよそ 5% に抑える。
② 出版バイアス — 有意な結果だけ載ると、効果ゼロが「効果あり」に化ける
真の効果 d を設定し、 サンプルサイズがバラバラな 800 本の架空研究を回す。 有意(p<0.05)かつ正方向の研究だけが「出版」される(file-drawer 問題)。 ファンネルプロット(上ほど大標本=高精度)で、 灰=全研究、 赤=出版された研究。 縦線は真の効果(黒)と文献平均(赤破線)。
d=0 でも文献平均が 0 から大きくズレる=存在しない効果が「確立した知見」に化ける(winner's curse)。 小標本ほど偶然の大効果でしか有意にならず、 ファンネルの底が非対称に空洞化する。 対策は Registered Reports(結果を見る前に採否を決める)と、 検出力 を上げる大標本、 そして全結果を集めるメタ分析での出版バイアス補正。
まとめ:偽陽性は「嘘」ではなく、 研究者の自由度(どの分析を選ぶか)と 出版の選別という 2 つの増幅器から生まれる。 一つ一つの検定は α=0.05 でも、 試した回数 と 載せた結果の偏り を勘定に入れると、 文献全体の偽陽性率ははるかに高い。 事前登録・多重比較補正・FDR 制御・効果量と 信頼区間 の併記が、 その 2 つを同時に閉じる。
この節は姉妹ページ(p 値=単一検定の解釈、 多重比較=補正の数式、 事前登録=制度的対策)とは別角度で、 「固定された 1 つの実データを総当たりすると再現性危機がどう立ち上がるか」を、 SSDSE-B-2026 の 実測値のみで示します。 以下の数値はすべて data/raw/SSDSE-B-2026.csv(encoding='cp932', skiprows=[1])の 2023 年・47 都道府県から Python で実際に算出したもので、 合成データは使っていません。
2023 年の 47 都道府県データには、 定数列・欠損列を除いて 109 個の数値指標があります。 この 109 列から 2 列を選ぶ組み合わせは 109C2 = 5,886 通り。 その全ペアで Pearson 相関を計算すると——
つまり 指標を 2 つ拾えば、86% の確率で「統計的に有意な関連」が最初から手に入る。 社会経済指標は人口・所得・産業構造を通じて互いに強く絡んでいるため、 「有意な相関を発見した」こと自体はほとんど情報を持ちません。 データを取る前から、支持できる主張の在庫は膨大に積まれている——研究者はその棚から結論を「選ぶ」だけになりがちです。 これが再現性危機の底にある構造で、 不正ではなく選択の自由(researcher degrees of freedom)の問題です。
「でも自分の変数は本物のデータだ」という反論に、 実データで答えます。 109 列とは無関係な乱数(標準正規ノイズ)を 1 本用意し、 それを 109 の実指標すべてと相関させる——という試行を、 固定シード rng = np.random.default_rng(20260614) で 5,000 回モンテカルロした結果が下です。 乱数は指標と因果も相関も持たないので、 ここで p<0.05 になった相関は 100% 偽陽性です。
意味不明な乱数を持ち込んでも、 半分以上の確率で「何かと有意に相関する変数」を釣り上げられる。 「有意な結果が出た」は仮説の正しさの証拠にならない——これが多重性(multiplicity)の核心で、 再現性危機に固有なのは「検定 1 回の多重性」ではなく 分析パイプライン全体(指標選択・前処理・層別)にわたる多重性だという点です。 さらに厄介なのは、 実指標が互いに相関するせいで偽陽性の件数が 中央値 1・最大 99 と極端に塊で振れること。 「今回は数個しか有意じゃなかったから大丈夫」という目分量では自分の偽陽性率を推し量れません。 なお Bonferroni 補正はこの暴走を 56.8% → 1.4% へ引き戻します(多重比較補正参照)。
上の 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 固定で再現可能です。