データ分析の初期段階において、誰もが一度は次のように考える。
「AグループとBグループの比較ができたのだから、Cグループが増えても同じようにペアを組み合わせて比べればいいだけだろう」
しかし、ここに重大な落とし穴が存在する。統計学において「2」と「3」の間には、初心者が見落としがちな『深い断絶』がある。2つのものを比べる感覚のまま3つ以上の比較に突入すると、高確率で「存在しないはずの差」を「有意差あり」と誤認する罠にハマってしまう。
本記事では、なぜ3つ以上の比較(3群や3カテゴリ)が危険なのか、なぜ「始める前の準備」がすべてを決めるのかを解説した上で、Rを用いた正しい解析手順を提示する。
「2」と「3」の間にある決定的な断絶
なぜ3つ以上になると急に解析が難しくなるのか。そのリスクを直感的に理解するために、身近な例え話を挙げる。
浮気疑惑の例:調査回数が増えることのリスク
ここに、絶対に浮気をしていない(潔白な)パートナーが3人いると仮定する。
- 1回だけスマホをチェックする場合(2群の比較に相当):偶然あやしい通知(誤検知)を見てしまう確率が 5% あるとする。この場合、95%の確率で「潔白である」と正しく判断できる。
- 3回スマホをチェックする場合(3群のペアワイズ比較に相当):1回ごとの誤検知率は5%でも、3回チェックを繰り返すと、「どれか1回くらい、たまたまあやしい通知を見つけてしまう確率」は自動的に跳ね上がり、約 14% になる。
本当はどのグループ間にも差がない(全員潔白である)にもかかわらず、比較の回数を重ねるだけで、偶然発生した小さなブレを「統計的な有意差(黒である)」と誤認してしまう確率が自動的に上昇する。これが統計学における「多重比較の問題(第一種の過誤の膨張)」である。
2群(あるいは2カテゴリ)の比較であればチェックは1回で済むため安全地帯だが、3つ以上になった瞬間、裏で勝手にこの罠が発動するという断絶を、まずは肝に銘じる必要がある。
データが集まってから補正しても「手遅れ」な理由
「データが集まった後から、3回調べた分を厳しめに判定(多重比較調整)すれば問題ないのではないか」と考えがちである。
しかし、ここに初心者にとって最大の難関がある。データが集まった後から「多重比較の調整」をしても、手遅れ(無意味)になってしまうケースがほとんどなのである。なぜなら、多重比較の補正を行うと、有意差を認めるための判定基準が通常よりも「極めて厳格」になるからである。
魚釣りの網の例(サンプルサイズ計算の重要性)
広大な海で、特定の魚(有意差)を捕まえようとしている場面を想像してほしい。
- 2群の比較(通常モード):普通の目の粗さの網(通常のサンプルサイズ)で、十分に魚をすくい上げることができる。
- 3群以上の多重比較(厳格モード):多重比較の補正をかけるということは、網の目がものすごく粗くなるということである。普通の網のままでは、せっかくそこに魚(差)がいても、すべて網の目をすり抜けて逃げてしまいます。
つまり、厳しくなった判定基準のなかで確実に差を検出するためには、「最初からいつもより巨大な網(大きなサンプルサイズ)を用意して、大量のデータを集める」という計画を立てておかなければならない。
統計学ではこれを「事前のサンプルサイズ計算(パワーアナリシス)」と呼ぶ。
現実における厳しい事実
最初に何も考えず、2群の感覚のままデータを集め、後から「3群あるからボンフェローニ補正をしよう」と調整を試みても、データ量が全く足りずに「すべて有意差なし(何も検出できない)」という不毛な結果に終わる。データを集め始める「前」に、すでに勝負は決しているのである。
(※ただし、現実の実務において、理想的なサンプルサイズを常に確保することは予算や時間の制約上難しい。だからこそ、事前にどの程度の検出力を持たせられるか計画することが不可欠となる)
Rによる割合の多重比較検定の実践
事前の計画の重要性を理解した上で、実際に3つのWEBデザイン(A, B, C)におけるコンバージョン(CV)率のデータを解析する手順を解説する。
| デザイン | CVした人数 | アクセス総数 | CV率 |
| デザインA | 80 | 100 | 80% |
| デザインB | 70 | 100 | 70% |
| デザインC | 60 | 100 | 60% |
全体を俯瞰してみる(カイ二乗検定)
多重比較を行うにあたり、まずは全体としてどのような傾向があるのかを俯瞰するため、カイ二乗検定を行ってみる。ただし、ここでの結果にかかわらず、目的である各群の比較はのちほど多重比較検定として直接実行する。
# データの作成(クロス集計表)
cv_data <- matrix(c(80, 70, 60, # CVした人数
20, 30, 40), # CVしなかった人数
nrow = 2, byrow = TRUE)
colnames(cv_data) <- c("Design_A", "Design_B", "Design_C")
rownames(cv_data) <- c("CV", "No_CV")
# 全体のカイ二乗検定
chisq.test(cv_data)
実行結果は以下の通りである。
Pearson's Chi-squared test
data: cv_data
X-squared = 9.5238, df = 2, p-value = 0.008549
p値(p-value)が 0.008549 となり、一般的な有意水準である 0.05 を明確に下回る。全体の傾向としてデザイン間に何らかの差異が存在しそうであることが確認できた。
ペアワイズ検定の実行
各群の個別比較には pairwise.prop.test() 関数を使用する。この関数は、比較回数が増えた分だけp値を自動的に厳しく調整(補正)する。
今回は、最も厳格でクラシカルな多重比較法である「ボンフェローニ(Bonferroni)の補正」を適用する。
# 成功数(CV数)と全体の試行数(アクセス数)をベクトルで指定
success <- c(80, 70, 60)
totals <- c(100, 100, 100)
# ボンフェローニ補正を適用した多重比較
pairwise.prop.test(x = success, n = totals, p.adjust.method = "bonferroni")
結果の解釈
実行結果として、Rからは以下のようなマトリクス(格子状)の表が出力される。
Pairwise comparisons using Pairwise comparison of proportions
data: success out of totals
1 2
2 0.42 -
3 0.01 0.55
P value adjustment method: bonferroni
縦の数字(2, 3)と横の数字(1, 2)は、それぞれデータの入力順(1=デザインA、2=デザインB、3=デザインC)に対応している。交わるマスに示されている数値が、ボンフェローニ補正適用後の「補正済みp値」である。
- 1番(A)vs 2番(B): p =
0.42有意水準 0.05 よりも圧倒的に大きいため、デザインAとBの間に統計的な差があるとは言えない。 - 2番(B)vs 3番(C): p =
0.55同様に 0.05 よりはるかに大きいため、デザインBとCの間にも差があるとは言えない。 - 1番(A)vs 3番(C): p = 0.01有意水準 0.05 を明確に下回っている。したがって、デザインAとデザインCの間には「統計的に有意な差がある」と結論づけることができる。
もし、多重比較の補正をせずに「2群の検定」を3回繰り返していた場合、偶然のバラつきに過ぎない A vs B や B vs C まで「差がある」と誤認(偽陽性)していたリスクがある。ボンフェローニ補正によって判定基準を厳格化したからこそ、「本当に自信を持って差があると言えるのは、デザインAとデザインCのペアだけである」という、確実で安全な結論を導き出すことが可能となる。
まとめ:3つ以上を扱うときのチェックリスト
今後、3つ以上の群やカテゴリを比較する解析を行う際は、必ず以下のロードマップを厳守されたい。
- 「2」の感覚のまま「3」以上のデータを扱ってはならない(断絶の意識)
- データを集める「前」に、多重比較の厳格化に耐えうるサンプルサイズが確保できるか設計する
- 個別の比較を行う際は、必ず
pairwise.prop.test()等を用いて多重比較補正を適用する
「とりあえずデータを集めてから考えよう」というアプローチは、3群以上の世界では致命傷になりかねない。設計の段階から、統計学的な罠を回避するための計画を精緻に立てておくことが重要である。





コメント