分散分析(ANOVA)| 3 群以上の平均比較・事後検定・効果量の実務ガイド
「分散分析(ANOVA)を活用したいが、どう判断すればいいかわからない」
そのとき多くの人は、一元配置ANOVA、二元配置ANOVA、事後検定、効果量など「技術」を学ぶことから始めます。
もちろん技術は重要です。
ただ実務では、技術以前に「前提(目的・戦略・判断軸)」が設計されていないことで、何を学んでも噛み合わない状態になっているケースが少なくありません。
何のために分散分析(ANOVA)を活用するのか(目的)
どこで勝つのか(戦略)
何を見て良し悪しを判断するのか(判断軸)
ここが曖昧だと、分散分析(ANOVA)の活用が「作業」になりやすく、改善の方向性もブレます。
結果として、分散分析(ANOVA)を活用しても成果が出ない、改善施策を打っても成果が出ない、といったズレが起きやすくなります。
この記事が想定する読者:3群以上の平均比較でANOVAを活用したいが、目的・戦略・判断軸を設計したい担当者。
判断を誤るとどうなるか:技術(一元配置・事後検定・効果量)から入ると前提が曖昧で何を学んでも噛み合わない。先に目的・どこで勝つか・何を見て良し悪しを判断するかを決め、そのうえで前提検証→ANOVA→事後検定→効果量の順で回すと失敗しにくい。
3 群以上の平均値を比較する場面では、t 検定を繰り返すと第一種の誤りが膨張します。そこで分散分析(ANOVA)を使い、群間差の有無を一括で検定します。本記事は、前提検証と事後検定、効果量の扱いまで実務で必要なポイントを整理します。
※この記事は、分散分析(ANOVA)を理解し、判断に活用する方向けです。即効性を求める方や、すでに前提設計が明確な方には、より具体的な実践記事をおすすめします。
この記事を読む前に
この記事では、統計学の基礎知識があることを前提としています。以下の記事を事前に読んでおくと、より深く理解できます:
TL;DR
- 目的: 3 群以上の平均差の有無を確認
- 手順: 前提確認 → ANOVA → 事後検定(Tukey/Games–Howell)→ η²
- 注意: 不等分散は Welch-ANOVA、正規性が怪しければノンパラ
まずはここだけ(やさしい導入)
- 何をする?: 3 つ以上のグループの平均が「全体として」違うかをまず確認
- いつ使う?: LP A/B/C の CVR 比較、複数価格帯の満足度比較、教育/医療の 3 条件比較
- どう読む?: p 値で“全体差の有無”、事後検定で“どこが違うか”、η² で“差の大きさ”
用語ミニ辞典(1 行で)
- ANOVA: 3 群以上の平均差の有無を一括検定(分散の比= F)
- 事後検定: どの組み合わせが違うかを追加で調べる検定(多重比較を制御)
- η²/partial η²: 効果の大きさ(説明された分散の割合)。文脈で解釈
- 球面性: 繰り返し測定での分散構造仮定(満たさないと補正が必要)
- Welch-ANOVA: 等分散が怪しいときの分散分析の拡張
適用の前提(正規性・等分散・独立)
- 正規性: シャピロ–ウィルク検定、QQ プロット、サンプルサイズも考慮
- 等分散: Levene/Brown–Forsythe。満たさない場合は Welch-ANOVA
- 独立: 実験計画の担保(交絡要因の統制)
種類と選択
- 一元配置 ANOVA: 1 要因で複数群比較
- 二元配置 ANOVA: 2 要因(交互作用の検討が可能)
- 繰り返し測定 ANOVA: 同一対象を繰り返し測定(球面性の確認)
手順(実務フロー)
- 仮説設定と要因設計(主効果/交互作用)
- 前提確認(正規性・等分散・球面性)
- ANOVA 実行(F 統計量・p 値)
- 事後検定(Tukey、Holm、Games–Howell など設計に応じて)
- 効果量の報告(η²、partial η²、ω²)と 95%CI
- 実務的意義と意思決定(費用対効果・実装可能性)
実務ケーススタディ(LP A/B/C の CVR 比較)
目的: 3 種の LP(A/B/C)の平均 CVR の差を検証し、勝ち案を特定する。
- 設計と前処理
- 期間・流入・端末を均衡化。異常セッションを除外(事前ルール)
- ANOVA と前提
- 等分散が怪しければ Welch-ANOVA。非正規なら変換 or ノンパラも検討
- 事後検定と効果量
- Tukey(等分散)/Games–Howell(不等分散)でペア差を特定
- 効果量 η²/partial η² を併記し、実務的な意味(CVR の差 × 母数)で判断
- 意思決定
- コスト・開発工数と合わせて実装案を決定。CI が広ければ追加データ収集
事後検定の選び方(要約)
- 等分散・等サンプル: Tukey HSD
- 不等分散・不等サンプル: Games–Howell
- 多重比較全般: Holm/Benjamini–Hochberg で FWER/FDR を制御
import numpy as np
import pandas as pd
from statsmodels.stats.multicomp import pairwise_tukeyhsd
# A, B, C は 1 次元配列(例題と同様)
df = pd.DataFrame({'value': np.r_[A, B, C],
'group': ['A']len(A)+['B']len(B)+['C']len(C)})
print(pairwise_tukeyhsd(endog=df['value'], groups=df['group']))
# Games–Howell(要: pip install scikit-posthocs)
import scikit_posthocs as sp
print(sp.posthoc_gameshowell(df, val_col='value', group_col='group'))
効果量の扱い(やさしい目安)
- η² = 群間平方和 / 全平方和(モデルが説明した割合)。0.01/0.06/0.14 程度が小/中/大の目安
- partial η² は共分散分析や多要因での各効果の寄与を分けて解釈する際に使用
- ω² はやや保守的な推定(サンプルに依存しにくい)。報告方針を事前に統一
よくある誤解とその構造
分散分析(ANOVA)を活用する際、「手法を選べば成果が出る」という誤解が生じやすいです。具体的には「分散分析(ANOVA)を活用すれば成果が出る」「p値 < 0.05 なら効果がある」「前提条件を満たさなくても使える」といった形で現れます。
なぜこの誤解が生じるのか
これらの誤解は、「手法の選択」と「前提設計」の関係を逆転させて考えることで生じます。
多くの解説では、手法の選択(ANOVAの適用、p値の解釈、前提条件の確認など)が重要であることが強調されます。確かに手法の選択は重要です。しかし、手法の選択が先に来るのではなく、「何を達成したいのか」「どこで勝つのか」「何を見て良し悪しを判断するのか」という前提設計が先にあるべきです。
前提設計が明確でない状態で手法を選んでも、どれを選んでも効果が発揮されにくい傾向があります。なぜなら、手法は「手段」であり、目的が明確でなければ、手段の選択基準が曖昧になるからです。
判断の構造を可視化する
分散分析(ANOVA)を活用する際の判断プロセスを整理すると、以下のようになります:
- 前提設計(目的・戦略・判断軸の明確化)
- 何を達成したいのか(3群以上の平均差の検証?事後検定?効果量の評価?)
- どこで勝つのか(どの群を比較するのか)
- 何を見て良し悪しを判断するのか(p値?効果量?実務的意義?)
- データの明確化(分析対象の特定)
- どのデータを分析するのか
- データの種類と品質はどうか
- 前提条件の確認(前提設計に基づく確認)
- 正規性、等分散、球面性の確認
- 前提が満たされない場合は適切な代替法を検討
- 手法の選択(前提設計に基づく選択)
- 一元配置/二元配置/繰り返し測定ANOVAの選択
- 前提が満たされない場合の代替法の選択(Welch-ANOVA、ノンパラなど)
- 解釈と活用(実務での活用)
- p値と効果量(η²/partial η²)を併記
- 事後検定でどの組み合わせが違うかを特定
- 実務的意義(費用対効果、実装可能性)と併せて判断
この順序を逆転させると、手法の選択が目的化し、成果につながりにくくなります。
実務で見落とされがちな点
前提設計が欠落している場合、以下のような問題が起きやすいです:
- 分散分析(ANOVA)を活用しても成果が出ない
- 改善施策を打っても成果が出ない
- 改善の方向性がブレる
これらの問題は、手法の選択ではなく、前提設計の欠落が原因である可能性が高いです。
また、p値のみで判断してしまう誤解も生じやすいです。p値は「帰無仮説が真のときにこれほどまたはそれ以上の極端な結果が観察される確率」であり、「効果が真である確率」ではありません。効果量(η²/partial η²)と事後検定、費用対効果と併せて判断することが重要です。
身近なたとえ
3 種類のランディングページ(A/B/C)の平均 CVR を同時比較したい状況。A と B、B と C…を t 検定で何度も比べると“たまたまの当たり”が増えます。ANOVA は「全体として差があるか」をまず確認し、差があるならどこが違うかを事後検定で特定します。
一般的に語られる分散分析(ANOVA)の考え方
分散分析(ANOVA)について、多くの場合、以下のような考え方が語られます。ただし、これらは一般的な傾向であり、すべてのケースに当てはまるわけではありません。
分散分析(ANOVA)の重要性
分散分析(ANOVA)は、3 群以上の平均値を比較する場面で重要な手法として重要とされています。t 検定を繰り返すと第一種の誤りが膨張するのを避け、群間差の有無を一括で検定でき、事後検定でどの組み合わせが違うかを特定できる可能性があります。
判断の軸:
- 自社の目的(何を達成したいか)に照らして、どの分散分析(ANOVA)が重要か
- 自社のリソース(時間・予算・人材)に照らして、どの分散分析(ANOVA)が現実的か
- 自社のターゲット顧客に照らして、どの分散分析(ANOVA)が有効か
実務視点で見ると見落とされがちな点
一般的な考え方とは別に、実務では以下の点が見落とされがちです。ただし、これらもすべてのケースに当てはまるわけではありません。
前提設計の欠落
分散分析(ANOVA)で成果が出ない最大の原因は、手法の選択ではなく、前提設計(目的・戦略・判断軸)の欠落である可能性が高いです。
何が起きるか:
- 分散分析(ANOVA)を活用しても成果が出ない
- 改善施策を打っても成果が出ない
- 改善の方向性がブレる
判断の軸:
- 目的(何を達成したいか)が明確か
- 戦略(どこで勝つか)が決まっているか
- 判断軸(何を見て良し悪しを判断するか)が設定されているか
多重比較の問題
t 検定の乱用(多重比較で α 膨張)や、多重比較の調整なしで検定を実施すると、検定数が増えるほど、少なくとも 1 つの偽陽性結果を得る確率が上昇する可能性があります。Holm/Benjamini–Hochberg で FWER/FDR を制御することが重要とされています。
効果量の無視
有意差の有無だけで終える(効果量と実務意義の不記載)と、大きなサンプルサイズでは、ビジネス的に意味のない小さな差も統計的に有意になりうる可能性があります。常に効果量(η²、partial η²、ω²)を併せて報告することが重要とされています。
ミニ例題と Python コード
import numpy as np
from scipy import stats
# 3 群のサンプル(CVR%を仮に連続値として)
A = np.array([3.2, 3.5, 3.0, 3.4, 3.1])
B = np.array([3.6, 3.8, 3.7, 3.5, 3.9])
C = np.array([3.1, 3.0, 2.9, 3.2, 3.0])
F, p = stats.f_oneway(A, B, C)
print("F=", round(F,2), "p=", round(p,4))
# 効果量 η²(簡易)
groups = [A,B,C]
grand = np.concatenate(groups)
ss_between = sum([len(g)(g.mean()-grand.mean())2 for g in groups])
ss_total = ((grand - grand.mean())2).sum()
eta_sq = ss_between/ss_total
print("eta^2=", round(eta_sq,3))
読み方の目安:
- p < 0.05 → どれかの平均が異なる可能性(事後検定へ)
- η²: 0.01/0.06/0.14 程度で小/中/大の目安(分野依存)
事後検定の実装例(Games–Howell など)は専用ライブラリの利用を推奨します。
可視化(箱ひげ+平均 ±CI)
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
groups = [A, B, C]
plt.figure(figsize=(6,3))
plt.boxplot(groups, labels=['A','B','C'])
plt.title('Boxplot by group')
plt.tight_layout(); plt.show()
# 平均 ± 95%CI
means = [g.mean() for g in groups]
ses = [g.std(ddof=1)/np.sqrt(len(g)) for g in groups]
cis = [1.96*s for s in ses]
plt.errorbar([0,1,2], means, yerr=cis, fmt='o', capsize=4)
plt.xticks([0,1,2], ['A','B','C'])
plt.title('Mean ± 95% CI')
plt.tight_layout(); plt.show()
練習問題(理解を定着)
- サンプルが不均等で等分散が怪しい。どの ANOVA/事後検定?
- ヒント: Welch-ANOVA と Games–Howell
- F は有意だが η² が小さい。どう報告し、どう判断する?
- ヒント: 効果量と CI を併記し、実務意義(CVR× 母数)で判断
- 事後検定で A–B は有意、A–C は非有意、B–C は有意。何が言える?
- ヒント: 全てのペアで効果が等方向とは限らない。群のプロファイルで解釈
- Welch-ANOVA + Games–Howell を第一候補に。
- 小効果なら費用対効果を併せて慎重に。実装コストが低ければ限定導入+追加検証。
- ペア差の方向/大きさが異なる可能性。平均と CI、効果量で総合判断。
次に読むおすすめの記事
分散分析(ANOVA)について理解を深めたら、以下の記事も参考にしてください:
より深く学ぶ
- 統計的仮説検定入門:仮説検定の基礎知識とANOVAの位置づけ
- t検定実践ガイド:2群比較のt検定(ANOVAは3群以上の比較)
- カイ二乗検定実務ガイド:カテゴリデータの検定
実践的な活用
- A/Bテストのための統計学:ANOVAをA/B/nテストで活用する方法
- コンバージョン率最適化ガイド:ANOVAをコンバージョン最適化で活用する方法
- データドリブンUX改善ガイド:ANOVAをUX改善で活用する方法
関連する基礎知識
- 統計学超入門:統計学の基礎知識
関連記事と次の一歩(旧)
5分診断:分散分析(ANOVA)を活用する前に確認すべきこと
分散分析(ANOVA)を活用する前に、以下の診断で自社の状況を確認することが有効な場合があります。
Q1:前提設計(目的・戦略・判断軸)が明確か?
- Yes → Q2へ
- No → 前提設計を明確にする(分散分析(ANOVA)活用の目的、どの指標を重視するか、何を見て良し悪しを判断するか)
Q2:仮説(検証したい仮説)が明確か?
- Yes → Q3へ
- No → 仮説を明確にする(帰無仮説と対立仮説の設定、検証したい仮説の具体化)
Q3:継続的な改善(効果測定・改善サイクル)ができているか?
- Yes → 次のステップへ
- No → 継続的な改善の仕組みを作る(効果測定、改善サイクル、次の施策の決定)
診断結果に基づく次のアクション:
- Q1がNoの場合:前提設計を明確にする(分散分析(ANOVA)活用の目的、どの指標を重視するか、何を見て良し悪しを判断するか)
- Q2がNoの場合:仮説を明確にする(帰無仮説と対立仮説の設定、検証したい仮説の具体化)
- Q3がNoの場合:継続的な改善の仕組みを作る(効果測定、改善サイクル、次の施策の決定)
分散分析(ANOVA)の要点と判断の軸
分散分析(ANOVA)は、3 群以上の平均値を比較する場面で、t 検定を繰り返すと第一種の誤りが膨張するのを避けるために、群間差の有無を一括で検定する手法です。
ただし、これらは一般的な傾向であり、すべてのケースに当てはまるわけではありません。状況に応じて、複数の視点から検討し、最適な方法を見つけることが重要です。
判断の軸
分散分析(ANOVA)を活用する際は、以下の判断軸を参考にすることが有効な場合があります:
- 前提設計(目的・戦略・判断軸)が明確か
- 仮説(検証したい仮説)が明確か
- 継続的な改善(効果測定・改善サイクル)ができているか
ただし、これらは一般的な傾向であり、すべてのケースに当てはまるわけではありません。状況に応じて、複数の視点から検討し、最適な方法を見つけることが重要です。
重要なポイント
- 前提確認(正規性・等分散・球面性)を実施する
- 適切なANOVAの種類を選択する(一元配置、二元配置、繰り返し測定など)
- 事後検定(Tukey、Holm、Games–Howell など)でどの組み合わせが違うかを特定する
- 効果量(η²、partial η²、ω²)を併せて報告する
- 実務的意義と意思決定(費用対効果・実装可能性)を考慮する
次のステップ
今回紹介した考え方は、あくまで一つの視点です。重要なのは、自社の状況・リソース・目的に照らして、どこを採用し、どこを捨てるかを考えることです。
「正解」は存在しませんが、「自社にとって可能性が高い選択肢」を複数の視点から検討し、検証を繰り返すことで、成果につながる可能性があります。
具体的には、以下のステップを検討することが有効な場合があります:
- 前提設計(目的・戦略・判断軸)を明確にする
- 診断フローで自社の状況を確認する
- 仮説設定と要因設計(主効果/交互作用)
- 前提確認(正規性・等分散・球面性)
- ANOVA 実行(F 統計量・p 値)
- 事後検定(Tukey、Holm、Games–Howell など設計に応じて)
- 効果量の報告(η²、partial η²、ω²)と 95%CI
- 実務的意義と意思決定(費用対効果・実装可能性)
はじめて取り組む方へ(補足)
分散分析(ANOVA)は、最初から完璧を目指すよりも、目的→判断軸→小さな検証の流れを一度回してみる方が前に進みやすいです。まずは自社にとって重要度が高い論点を1つだけ選び、身近なデータで小さく試してみてください。
判断の土台として押さえておくこと
- 目的・戦略・判断軸をANOVAの前に置く:何のために3群比較するか、どこで勝つか、何を見て良し悪しを判断するか。曖昧だと作業化し成果につながらない。
- t検定の多重比較は避け、ANOVA→事後検定→効果量の流れ:第一種の誤りを抑え、F統計量・p値のあとでTukey/Holm/Games–Howell等を設計に応じて選ぶ。効果量(η²等)と95%CIを報告する。
- 前提(正規性・等分散・球面性)を確認する:満たさない場合はWelch-ANOVA・ノンパラ等を検討する。
参考資料
- Field, A. (2013). Discovering Statistics Using IBM SPSS Statistics.
- Maxwell, S. E., & Delaney, H. D. (2004). Designing Experiments and Analyzing Data.
ANOVA(分散分析)についてのご相談はこちら
よくある質問(FAQ)
- Q: サンプルが不均等・分散が違う
- A: Welch-ANOVA と Games–Howell を第一候補に
- Q: 正規性が怪しい
- A: ノンパラ(Kruskal–Wallis)+効果量(η² の代替指標)を併記
- Q: 交互作用があるかも?
- A: 二元配置 ANOVA で主効果と交互作用を同時に検討