Dev Study
← 評価のための統計
レッスン 7 / 10·約 8 分·第22期 評価のための統計

差が見えないのは、差が無いからとは限らない

リクエストがアプリケーションに届くまで
  1. ブラウザURL入力
  2. DNS名前→IP
  3. ルータ経路選択
  4. ロードバランサ振り分け
  5. Nginx受け口
  6. アプリ処理今ここ
  7. DB保存

「何も変わっていない世界」で珍しいかどうかを測る道具は、差がある世界でどれだけ差を拾えるかを別に問わないと、沈黙を読み違えます。

まず結論

「統計的に有意でない」は、差が無いことの証拠ではありません。本当に差があっても、件数が足りなければ有意と出る割合((統計的)検出力)は低いままです。

転換率 5.0% が 5.5% に上がる改善でも、各群1000人なら有意と出るのは約8%です。有意でないときに言えるのは、95%区間(信頼区間)が否定できる範囲までです。

? 読む前に予測

真の転換率が 5.0% から 5.5% に本当に上がった改善を、各群1000人の A/B テストにかけます(両側5%)。「統計的に有意」と出るのは、繰り返したときおよそ何割でしょうか。

当てることが目的ではありません。外した予測ほど記憶に残るので、直感で選んでください。

抽象原理

検出力は、差がある世界の側で測る

p値は「何も変わっていない世界」で、その結果がどれだけ珍しいかを測りました。では逆に、本当に差がある世界では、検定はどれだけの割合で差を拾えるのでしょうか。この割合が(統計的)検出力です。

Power is the probability of rejecting the null hypothesis given that the alternative hypothesis is true.

分類器の再現率(実際の陽性のうち拾えた割合)と同じ形です。検出力は、本当に差がある実験のうち、有意と拾えた割合です。拾えなかった残りは「有意でない」と報告されます。

拾えるかどうかは、差と差のばらつきの比で決まります。5.0% と 5.5% を各群1000人で比べると、差の標準誤差は約1.0ポイント、有意の線はその約2倍の約2.0ポイントです。真の差 0.5 ポイントに、ばらつきが上乗せされて線を越えた回だけが有意になります。

5.0%→5.5%・各群1000人で「有意」と出るまで
真の差 0.5 ポイント改善は本当に効いている
各群1000人で測ると
差の標準誤差 約1.0ポイント差そのものより大きい
有意の線 約2.0ポイント両側5%
繰り返すと
有意 約8%検出力 0.0793
有意でない 約92%差はあるのに
  • ・線を越えるかどうかは、真の差ではなく、差とばらつきの比で決まる
  • ・ばらつきは件数の平方根でしか縮まない。件数を増やすと検出力が上がる

ASA 声明(2016)も同じ向きを書いています。larger p-values do not imply a lack of importance or even lack of effect.

具体実物

件数を変えて、検出力を計算と模擬で確かめる

正規近似の計算と、実際に乱数で A/B テストを繰り返す模擬を並べました(python3 標準ライブラリのみ。模擬は seed=1)。

5.0%→5.5%・両側5%の検出力(Python 3.14.6、seed=1。後半の行は省略)コマンド出力
python 3.14.6 seed=1 z_.975=1.959964
5.0->5.5% n/arm=1000: power unpooled=0.0793 (upper tail only 0.0723) pooled-H0=0.0792
5.0->5.5% n/arm=5000: power unpooled=0.2018 (upper tail only 0.2007) pooled-H0=0.2017
5.0->5.5% n/arm=31000: power unpooled=0.7971 (upper tail only 0.7971) pooled-H0=0.7971
5.0->5.5% n/arm for 80%: unpooled 31230.7 pooled 31233.4
simulated pooled z-test n/arm=1000 R=4000: 0.0815
simulated pooled z-test n/arm=5000 R=2000: 0.1895

各群1000人の行は計算 0.0793、4000回の模擬 0.0815 で、seed=2 でも模擬は 0.0808 でした。差のある実験を繰り返しても、有意になるのは10回に1回もありません。 5000人で約0.20、3万1千人で約0.80。80% に要る件数は群ごとに約3万1千人です。

3万1千人の設計では、真の差が標準誤差の約2.8倍になります。Gelman & Carlin(2014)の the power will be 80% if the true effect is 2.8 standard errors away from zero と同じ位置です。

✓ ここまでの確認

各群5000人で 5.0% と 5.5% を比べる設計の検出力は約0.20です。この設計で試した改善が「有意でない」と出ました。妥当な読みはどれですか。

抽象原理

有意でないとき、言えるのは区間まで

一般の形にします。「有意でない」は、その設計で見分けられる大きさより真の差が小さかった「かもしれない」、というだけです。言えることを決めるのは 95%区間です。

Dirty Dozen(2017)の §5.4 はまさにこの例です。MSN のページビューが 0.5% 増えたが有意でなかった。

More careful look at the result revealed that the confidence interval of the metric lied over about ±5% and the experiment was not configured to have an enough power for the metric; it turned out that only 7.8% or larger change could be detected with 80% power, given the configuration of the experiment. Therefore, we cannot assume that we did not impact the underpowered metric.

区間が約 ±5% なら、0.5% の効果も 3% の効果も否定できません。反対向きの誤りもあります。区間が、事業上意味のある最小の差より狭い範囲に収まっていれば「あっても小さい」とは言えます。有意でなければ何も言えない、わけではありません。

同論文は at least 80% power を勧め、低い検出力で有意になった場合は変化が誇張されやすいとも書きます。有意の線を越えられるのは、ばらつきで上に大きく振れた回だからです。

具体実物

「写らなかった」は「無かった」ではない

同じ構造は性能分析編『写っていないことは、起きていない証拠ではない』にありました。10ミリ秒ごとに覗くサンプリングで、全体の 6.70% を占める関数が12回中4回、0サンプルになりました。

あちらの限界は観測の分解能、こちらは件数で決まる検出力です。どちらも、道具が拾える大きさより小さいものは「無い」と出ます。サンプリングの「0」が呼ばれていないのか写らなかったのかを区別できないように、「有意でない」も差が無いのか拾えなかったのかを区別できません。

✓ ここまでの確認

Dirty Dozen の MSN の例(ページビュー 0.5% 増、有意でない、区間は約 ±5%)について、原文の結論に合うのはどれですか。

⇄ 2つを見比べる
具体例 A

A/B テスト(5.0%→5.5%、各群1000人)

差は本当にあるのに、約92%の実験で有意でないと出る。有意でない結果だけを見た人は、改善は効かなかったと結論する。

具体例 B

サンプリング型のプロファイラ(10ミリ秒間隔)

全体の6.70%を占める関数が、12回中4回は0サンプルだった。その回だけを見た人は、この関数は問題でないと結論する。

検定とプロファイラ。道具は違いますが、「無い」という出力について共通して言えることは何でしょうか。

「この道具は、どれくらいの大きさなら拾えるのか」を両方で問うてみてください。

この章のまとめ

  • (統計的)検出力は、本当に差がある世界で有意と出る割合。p値とは別の世界の量。
  • 5.0%→5.5% は、各群1000人で約8%、5000人で約20%、約3万1千人で約80%。
  • 「有意でない」から言えるのは 95%区間が否定できる範囲まで。広ければ「分からない」、狭ければ「あっても小さい」。
  • 検出力が低いまま有意になった差は、誇張されやすい。
  • 「無い」という出力は、道具の分解能と一緒に読む。

自分の現場で確かめる

読んだだけでは身につきません。手元の環境で実際に見てみてください。

環境:

理解度チェック

読んだ直後は「分かった」と感じやすいものです。実際に解いて確かめてください。

問題 1 / 3正解: 0

Kohavi ら(2007)の近似式 n = (4rσ/Δ)² と「over 1.6 million users」の読み方として正しいのはどれですか。

用語集(3語)
(統計的)検出力
本当に差がある世界で、検定が「統計的に有意」と出る割合。Dirty Dozen の定義は `the probability of rejecting the null hypothesis given that the alternative hypothesis is true`。
検出力不足 (underpowered)
見たい大きさの差に対して件数が足りず、検出力が低い状態。有意でない結果が差の不在を意味しなくなる。
誇張比 (exaggeration ratio)
Gelman & Carlin(2014)の量。有意になった回の推定値の絶対値の期待値を、真の効果で割ったもの。検出力が低いほど大きい。