「購入率が上がり、p値も0.05未満でした」。この報告だけでは、新しい施策を採用する理由として足りません。比較した相手、人数の数え方、差の大きさ、運用費や悪影響まで確認して、初めて判断につながります。
統計的仮説検定は、特定の仮説とデータの整合性を、決めた比較方法で調べる手続きです。この記事では検定の選び方から結果の読み方までを扱います。数値と業務例はすべて学習用の仮想例であり、実際の顧客や施策の成果ではありません。
この記事で参照するASA・NIST・SciPy・statsmodels・Microsoft Research・arXiv・Python・Matplotlibの公式資料28件は、2026年10月7日に本文を再確認しました。検定の前提、APIの説明、仮想計算例の境界に変更はなく、実データの成果を示す記事ではありません。
30秒で要点
- 先に「誰について、何の差を知りたいか」を決めます。検定名はその後です。
- p値は仮説が正しい確率ではありません。非有意でも「差がない」とは限りません。
- 差の大きさと信頼区間を示し、事業上必要な差や悪影響と照らし合わせます。
- 割付、人数、欠測、比較回数、終了条件が崩れると、計算が正しくても解釈は変わります。
検定に入る前に、判断したいことを一文にする
「新しいフォームはよいか」では、何を測るかが定まりません。例えば「対象利用者を同じ期間にAとBへランダムに割り付け、割付後14日以内の申し込み完了率の差を調べる」とします。14日は例であり、実際には申し込みまでの時間に合わせて決めます。
ここで知りたいのは、利用者ごとの完了の有無です。同じ人の10回の訪問を、独立した10人として扱う問いではありません。店舗単位で変更する場合も、店舗内の注文をすべて独立した割付単位とみなさず、まとまりを考慮した設計が必要です。
また、「差がゼロかを調べる」「採用に必要な差を超えるかを調べる」「許容範囲内で同等かを示す」は別の問いです。知りたい結論に合わせて、仮説と分析方法を事前に定めることから始めます。母集団や標本の言葉が曖昧なら、統計学の基礎を先に確認してください。
帰無仮説・p値・有意水準を分けて理解する
購入率の差を調べる例では、帰無仮説H0を「対象母集団でAとBの購入率が等しい」、対立仮説H1を「等しくない」と置きます。H0が常に「効果なし」である必要はなく、基準値との差や許容する差を含む仮説もあります。
p値は、H0と検定に必要なモデルを仮定したとき、観測されたもの以上に極端な検定統計量が得られる確率です。「今回の結果が偶然だけで起きた確率」「H0が正しい確率」「Bが優れる確率」ではありません。NISTの定義では、観測した統計量以上に極端な値まで含めて計算します。
表が収まらない場合は、横にスクロールできます
| 用語 | 何を表すか | 読み替えてはいけないこと |
|---|---|---|
| 検定統計量 | 差などを、その検定で評価できる尺度にまとめた値 | 事業価値そのもの |
| 有意水準α | H0が真のときに誤って棄却する確率を、手続き全体で制御する基準 | 今回の結論が誤りである確率 |
| p値 | H0とモデルの下での、観測値以上に極端な統計量の確率 | 仮説が真である確率 |
| 検出力 | 指定した大きさの差が本当にあるとき、それを検出してH0を棄却する確率 | どんな効果でも検出できる確率 |
αを0.05にするなら、比較数や途中判定も含めて、その水準に対応する計画が必要です。5%は慣用値であり、損失や安全性を無視して選ぶ規則ではありません。NISTは検出力が特定の対立仮説に対して決まることも説明しています。
両側検定は改善・悪化の両方向を調べます。片側検定を使うなら、片方向を検証する理由と反対方向の悪影響をどう扱うかを先に決めます。結果を見てから、有意になりやすい側へ切り替えません。
「棄却しない」は「同じと証明した」ではない
p値が事前の基準を下回れば、採用した検定の下でH0を棄却します。ただし、計測漏れやモデルの不適合によって小さなp値が出ることもあります。業務上の因果説明まで、検定だけで証明されるわけではありません。
基準を下回らない場合は「H0を棄却するだけの証拠が得られなかった」と読みます。人数不足で重要な差を見逃す場合もあるため、同等性や品質の安全性の証明には使えません。同等性を示したい場合は、事前に許容幅を置いた専用の設計が必要です。ASAの六原則も、p値だけによる結論や、効果の大きさとの混同を避けるよう求めています。
問いとデータから検定の候補を絞る
最初に確認するのは、指標が金額・時間などの量か、購入した/しなかったという二値か、カテゴリ別の件数かです。次に、群が独立しているか、同じ対象の前後など対応があるかを確認します。
平均の差を調べる
表が収まらない場合は、横にスクロールできます
| 問い | 候補 | 先に確かめる条件 |
|---|---|---|
| 一つの母平均が基準値と違うか | 1標本t検定 | 独立した観測、平均に関心がある理由、分布と極端な値 |
| 独立した二群の母平均が違うか | Welchのt検定など | 群間・群内の独立性。不等分散を扱えても、依存や選別は解消しない |
| 同じ対象の前後で平均が変わるか | 対応のあるt検定 | 正しい一対一の対応、対象間の独立性、差の分布 |
| 複数群の母平均がすべて等しいか | 分散分析(ANOVA)、条件に応じWelch型 | 通常の一元配置では独立性・群内の正規性・等分散など |
比率・カテゴリ別件数を調べる
表が収まらない場合は、横にスクロールできます
| 問い | 候補 | 注意点 |
|---|---|---|
| 一つの成功確率が基準値と違うか | 二項検定、条件に応じた比率の近似検定 | 分子と分母、独立した二値の試行というモデルをそろえる |
| 独立した二群の購入率が違うか | 2標本比率のz検定、少数例ではFisherの正確検定など | 成功数・失敗数が少ない場合の正規近似に注意する |
| カテゴリの構成比が指定した比率に合うか | カイ二乗適合度検定など | 指定した期待度数と比較する。区分や推定したパラメータも影響する |
| 二つのカテゴリ変数に関連があるか | カイ二乗独立性検定など | クロス集計の期待度数、独立性、欠測・重複を確認する |
根拠となる実装・条件は、二項検定、比率のz検定、Fisher検定、適合度検定、独立性検定で確認できます。率だけを検定ツールへ入力せず、人数と件数を残すことが出発点です。
順位を使う方法も、問いと条件が変わる
「正規分布でなければ、すべてノンパラメトリック検定へ置き換える」という選び方はできません。順位に変えると、平均差とは別の性質を調べることがあります。
表が収まらない場合は、横にスクロールできます
| 状況 | 候補 | 誤解しやすい点 |
|---|---|---|
| 独立二群の順位による比較 | Mann–WhitneyのU検定 | 一般には分布についての検定。単純な中央値差と読むには形状などの追加条件が必要 |
| 同じ対象の二条件の比較 | Wilcoxon符号付順位検定 | 差の分布の対称性などを確認する。対応を無視しない |
| 独立した複数群の順位による比較 | Kruskal–Wallis検定 | どの群が違うかは別途比較が必要。位置の差として読む条件を確認する |
| 同じ対象・ブロックで三条件以上を比較 | Friedman検定 | 一般的な二元配置ANOVAの代替ではない。反復測定の対応を前提にする |
分布・相関・回帰で調べられる範囲
分布の確認にはヒストグラムやQ-Qプロットを使い、Shapiro–Wilk検定などを補助にできます。非有意だから正規性が保証されたわけではありません。通常の1標本Kolmogorov–Smirnov検定は、連続した参照分布が完全に指定されていることが前提です。同じデータから平均や分散を推定した分布へ、そのまま通常の基準を当てることはできません。
Pearson相関は線形関係、Spearman相関は順位による単調な関係を扱います。相関ゼロはあらゆる関係がないという意味ではなく、相関が有意でも因果関係の証明ではありません。小標本でのp値の計算法にも注意が必要です。回帰では、t検定で係数の線形な制約、F検定で複数の制約をまとめて調べられます。t検定が単回帰専用というわけではありません。係数が有意でも、予測誤差が十分小さいとは限らないため、残差の診断と、実際に予測したい未使用の対象・期間での評価を分けます。
計算例:p値が小さくても、採用条件は満たすとは限らない
以下は仮想のA/Bテストです。同じ対象条件から利用者単位でランダムに分け、各利用者の同じ観測期間内の購入有無を一度だけ数えます。二群は独立し、事前に定めた人数で一度だけ分析するとします。
表が収まらない場合は、横にスクロールできます
| 群 | 購入した人 | 割り付けた人 | 購入率 |
|---|---|---|---|
| A | 200 | 10,000 | 2.0% |
| B | 250 | 10,000 | 2.5% |
差B−Aは0.5パーセントポイント(pp)、Aを基準にした相対差は25%です。差を「0.5%改善」とだけ書くと、どちらの意味か分かりません。
二群の比率が等しいというH0に対する、プールした分散を使う両側z検定では、zは約2.384、p値は約0.0171です。差の95%信頼区間を各群の推定分散から求めるWald法では、約+0.089~+0.911ppとなります。ここでは連続性補正・多重比較調整を使っていません。十分な成功・失敗数がある教材としての正規近似であり、少数例や依存したデータへそのまま使う方法ではありません。
仮に、追加運用費などを考えて「少なくとも+0.75ppの改善を見込みたい」と先に決めていたらどうでしょうか。区間にはこの基準より小さい差も大きい差も含まれます。ゼロとの差は検出されましたが、+0.75pp以上の改善を確かめられたとは言えません。そもそも0.75ppを超えるか検証することが目的なら、最初からその問いに合う仮説・標本数を設計します。
なお、95%信頼区間は「今回の区間に真の差が95%の確率で入る」という意味ではありません。前提を満たす同じ手順を繰り返したとき、その手順で得る区間が真の値を含む割合についての性質です。NISTの信頼区間の説明も、この区別を示しています。
手元で計算を確かめる
次は上記の仮想入力を使ったPython標準ライブラリだけのコードです。Python 3.12で実行確認しています。x_aとx_bは購入人数、n_aとn_bは各群の利用者数です。外部データも通信も不要です。
from math import erfc, sqrt
from statistics import NormalDist
x_a, n_a = 200, 10000
x_b, n_b = 250, 10000
p_a, p_b = x_a / n_a, x_b / n_b
diff = p_b - p_a
pooled = (x_a + x_b) / (n_a + n_b)
se_null = sqrt(pooled * (1 - pooled) * (1 / n_a + 1 / n_b))
z = diff / se_null
p_value = erfc(abs(z) / sqrt(2))
se_diff = sqrt(p_a * (1 - p_a) / n_a + p_b * (1 - p_b) / n_b)
margin = NormalDist().inv_cdf(0.975) * se_diff
print(f"difference: {100 * diff:.3f} pp")
print(f"relative: {100 * diff / p_a:.1f}%")
print(f"two-sided p: {p_value:.6f}")
print(f"95% Wald CI: [{100 * (diff - margin):.3f}, {100 * (diff + margin):.3f}] pp")
期待する出力は、差0.500 pp、相対差25.0%、p値0.017126、区間[0.089, 0.911] ppです。検定の標準誤差と区間の標準誤差を区別している点にも注目してください。計算方法はstatsmodelsの比率検定と二群の比率差の区間に照合しています。
業務の問いによって、検定の後に確認することも変わる
次の四つは適用を考えるための仮想例です。検定が改善率や売上を保証するという意味ではありません。
表が収まらない場合は、横にスクロールできます
| 場面 | 検証したい問い | 結果だけでは決められないこと |
|---|---|---|
| ECのボタン変更 | 同時期のランダム割付で購入率が変わるか | 利益率、返品、誤購入、長期の再購入までよくなるか |
| 製造工程の変更 | 寸法の平均や不良率が基準・対照工程と違うか | 非有意だから工程が管理状態・安全・規格内だとは言えない。ばらつきや経時変化も別途確認 |
| 五つの顧客区分 | 購入金額などの分布に違いがあるか | 属性差は施策効果ではない。どの区分へ介入すべきかは別の比較が必要 |
| 需要予測のモデル | 説明変数の係数に関する仮説を棄却できるか | 未使用期間の予測誤差、欠品/在庫費用、関係が今後も続くか |
五群をすべて二群ずつ比べると10比較になります。全体検定のp値、個別比較のp値、追加で探した分析を混ぜずに報告します。指標や区分を増やして「どこかで有意になった」を成功とする前に、比較全体の誤りをどう抑えるか決めます。Bonferroni法などの多重比較の考え方はこの問題に対応しますが、どの方法でも後付けの探索を無条件に正当化するわけではありません。
結論を壊しやすい三つの行動
有意になった日に通常の検定を止める
固定人数で分析する検定を毎日繰り返し、有意になったときだけ終了すると、予定した誤検出率を保てなくなります。品質や安全性の監視を止める必要はありませんが、効果の判定と分けて設計します。
Johariらの逐次推論の研究では、途中停止に対応したp値や信頼区間を扱っています。通常のp値を名前だけ変えて使えるものではなく、独立性や分布など、その方法の条件を確認する必要があります。良い結果が出た比較だけを残す
説明用に、H0が真である独立した20検定が、それぞれ厳密に5%の確率で誤検出すると仮定します。一つ以上を誤検出する確率は1 - 0.95 ** 20、約64.2%です。現実の指標は独立とは限らず、この数値をすべての分析へ当てはめることはできません。しかし、試した比較数を隠して一件のp値だけ出す問題は見えます。
事前に決めた主分析と探索的な分析を分け、見つけた仮説は新しいデータや別の実験で確かめます。追加分析が不要なのではなく、得られた証拠の位置づけを正直に残します。
都合の悪い人や値を後から除く
「入力を完了した人だけ」「購入者だけ」など、変更の影響を受ける行動で分母を選ぶと、比較している対象が変わることがあります。MicrosoftのSRM解説では、割付、ログ、除外条件が人数の不整合を生む例を扱っています。
欠測や外れ値は、誤入力・計測障害なのか、実際に起きた値なのかを確認します。除外規則を先に定め、除外件数と理由、別の妥当な扱いをしたときの感度分析を残します。欠測を無条件に「購入なし」へ置き換えることも避けます。
最小の検証計画と結果票を一組にする
初めて使うなら、多数の指標を試す前に一つの意思決定について、次の票を埋めます。これは統計モデルの妥当性を自動認定する診断票ではなく、比較条件の抜けを見つけるための道具です。
表が収まらない場合は、横にスクロールできます
| 時点 | 記録すること |
|---|---|
| 開始前 | 対象・割付単位・主指標・H0/H1・片側/両側・α・検出したい差・検出力・予定人数・観測窓・終了条件 |
| 開始前 | 採用に必要な事業条件、悪影響を見る指標、欠測/除外規則、比較数への対応、担当者 |
| 実施中 | 実際の割付、重複、計測障害、予定からの変更と安全上の中止理由 |
| 終了時 | 各群の人数/件数、効果の単位、区間の方法、検定名とp値、前提確認、探索した追加分析 |
| 判断時 | 採用・限定継続・見送り・未確定の理由、残る不確実性、次に確かめる条件と期限 |
「有意だから採用」「非有意だから無意味」で終えず、何が分かり、何がまだ分からないかを残します。人数の設計にはサンプルサイズとA/Bテストの罠、比較の作り方には実験計画法、個別の平均比較にはt検定実践ガイドを参照してください。