
はじめに
「新薬とプラセボの効果を比較したい」「測定器Aと測定器Bの判定結果が一致しているか確認したい」
このような2つの比率データを比較する場面で、クロス集計表を作成してχ二乗検定を実施しようとしていませんか?
それ、いったんストップです。
一見するとχ二乗検定を使う場面に見えますが、同じ対象から2回測定したデータの場合、通常のχ二乗検定ではなくMcNemar検定を使用する必要があります。McNemar検定は医療機器・製薬分野における臨床評価や、製造業における検査方法の比較など、実務でも非常によく使用される統計手法です。
本記事では、
・McNemar検定とは何か
・χ二乗検定との違い
・p値の計算方法
・ExcelでMcNemar検定を実施する方法
について、具体例を使ってわかりやすく解説します。
属性データを集計し見える化するクロス集計表についてわかりやすく解説!
McNemar検定とは?

McNemar検定とは、対応のある2群の比率を比較するための統計検定です。
通常、2つのグループ間で割合に違いがあるかを確認する場合にはχ二乗検定を使用します。
しかし、同じ対象者・同じサンプルを2回評価している場合、データ同士に関連性(対応関係)があるため、McNemar検定を選択します。
代表的な使用例として、
・同じ患者に薬Aと薬Bを使用した際の改善率比較
・同じ製品を測定器Aと測定器Bで判定した結果比較
・処置前後で陽性率が変化したかの確認
があります。
対応のあるデータ・対応のないデータの違いを具体例で解説!データ構造に応じた正しい検定手法の選び方を紹介します。
薬Aと薬Bの効果比較を例に解説

薬Aと薬Bの効果に違いがあるか確認するケースを考えてみます。
100人の被験者を対象として、
・1回目:薬Aを服用
・2回目:薬Bを服用
してもらい、それぞれ血圧改善効果の有無を確認しました。
結果をクロス集計表にすると以下になります。
| 薬B:改善あり | 薬B:改善なし | 合計 | |
|---|---|---|---|
| 薬A:改善あり | 45 | 5 | 50 |
| 薬A:改善なし | 20 | 30 | 50 |
| 合計 | 65 | 35 | 100 |
ここで重要なのは、同じ100人が薬Aと薬Bの両方を試しているという点です。
つまり、「薬Aの結果」「薬Bの結果」には同じ被験者から取得したという対応関係があります。
このようなデータでは独立した2群を比較するχ二乗検定ではなく、対応のある比率を比較するMcNemar検定を使用します。
一方、
・薬A:100人
・薬B:別の100人
のように、異なる被験者で比較する場合は対応関係がないためχ二乗検定が適切になります。

McNemar検定の定義・p値の計算方法
ここからは、McNemar検定の理論式とp値の計算方法を解説します。
McNemar検定のp値の計算方法には、大きく分けて2種類の計算方法があります。
| 計算方法 | 概要 | 特徴・使用場面 |
|---|---|---|
|
χ二乗分布による 近似計算 |
McNemar検定統計量が χ二乗分布に従うことを利用して p値を近似的に求める方法 |
・計算が簡単 ・サンプルサイズが大きい場合に有効 ・b+cが十分大きい場合に使用 |
|
二項分布を利用した 正確p値 (exact p-value) |
帰無仮説のもとで bとcが同じ確率(50%)で 発生すると考えて計算する方法 |
・少数データでも使用可能 ・より厳密なp値を算出 ・b+c<10程度ではこちらを推奨 |
通常はχ二乗分布による近似計算を使用しますが、データ数が少ない場合はχ二乗分布への近似が悪くなるため、その場合は二項分布を利用した正確p値の計算を推奨します。
※下表の一般化されたクロス集計表におけるb+c<10の時は、正確p値を求めることを進めます。
今回は、データ数が少ない場合でも使用しやすい正確p値の計算方法を紹介します。
先ほどの表を一般化すると以下になります。
| 薬B:改善あり | 薬B:改善なし | |
|---|---|---|
| 薬A:改善あり | a | b |
| 薬A:改善なし | c | d |
McNemar検定では、重要になるのは結果が一致しなかった部分です。
つまり、
・b:薬Aのみ改善
・c:薬Bのみ改善
の値だけを使用します。aとdは両方同じ結果になった人数のため、差の評価には使用しません。
では、次項以降で具体的な計算方法について学びましょう!
ステップ1:帰無仮説と対立仮説を設定する
McNemar検定では以下の仮説を設定します。
・帰無仮説H₀:p1=p2(薬Aと薬Bの改善率に差はない)
・対立仮説H₁:p1≠p2(薬Aと薬Bの改善率に差がある)
このとき、帰無仮説が正しい場合は「bとcが発生する確率は同じ」になります。
言い換えると、bとcはそれぞれ50%の確率で発生すると考えることができます。
McNemar検定では、bとcが確率0.5の二項分布に従うことを利用してp値を求めていきます。
ステップ2:正確p値を計算する
正確p値の算出において必要な定義式は以下の2つです。
両側検定の場合は、算出したexact p-valueを2倍します。
帰無仮説H₀(薬Aと薬Bの効果に差がない)が正しい場合、
薬Aのみ改善する人数(b)と薬Bのみ改善する人数(c)は同じ確率で発生すると考えます。
つまり、不一致となった25例(b+c=25)のうち、
どちら側に偏るかは確率50%の二項分布に従うと考えることができます。
今回の結果では、クロス集計表の対角セルの値を取得すると
・b=5
・c=20
となっており、小さい方の値はr=min(5,20)=5になります。
そのため、今回のケースでは「本当に薬Aと薬Bに差がない場合に、25例中5例以下という偏った結果が偶然発生する確率」を求めます。
したがって片側確率は、P(X≦5)として計算します。
先ほどの定義式に当てはめて計算すると、以下のようになります。
exact p = (1/2)b+c × Σj=0r b+cCj
b+c = 25
r = min(5,20)=5
exact p = (1/2)25 × Σj=05 25Cj
exact p = (1/2)25 × ( 25C0 + 25C1 + 25C2 + 25C3 + 25C4 + 25C5 )
= (1/33554432) × ( 1 + 25 + 300 + 2300 + 12650 + 53130 )
= 68406 / 33554432
したがって、p=0.00204<0.05となるため帰無仮説を棄却します。
つまり、薬Aと薬Bでは統計的に有意な効果の違いがあると判断できます。
さらに、クロス集計表の不一致データを確認すると、
・薬Aのみ改善した人数(b):5人
・薬Bのみ改善した人数(c):20人
となっており、薬Bでのみ改善が確認された被験者の方が多いことが分かります。
したがって今回の結果では、「薬Bは薬Aと比較して、血圧改善効果が有意に高い可能性がある」と解釈できます。
まとめ
本記事ではMcNemar検定について、適用場面およびp値の計算方法を解説しました。
ポイントをまとめると、以下になります。
・McNemar検定は対応のある2群の比率比較に使用する
・同じ対象を2回評価したデータに適用する
・独立した2群比較の場合はχ二乗検定を使用する
・医療機器、製薬、品質管理など幅広い分野で使用される
・正確p値を使うことで少数データでも解析できる
対応関係のない比率データを比較する場合はχ二乗検定を使用します。
χ二乗検定について詳しく知りたい方は、以下の記事も確認してください。
クロス集計表を用いて2つのカテゴリ間に関係性があるかを判断するχ二乗検定(独立性の検定)について、計算方法やp値の解釈まで実例を用いて解説します。
サンプルサイズが小さい場合の比率比較で使用するフィッシャーの正確検定について、カイ二乗検定との違いや使い分け、Excelでの実施方法を具体例で解説します。
また、「自分のデータではどの検定方法を使えば良いかわからない」「研究・品質改善で統計解析方法に迷っている」という方は、問い合わせフォームよりお気軽にご相談ください。
「研究・品質改善で統計解析方法に迷っている」
製造業・医療機器分野で統計解析を実践してきた専門家が、
目的に合わせた解析方法の選定から結果解釈までサポートします。
