McNemarの検定とカイ2乗検定の違いは何ですか?また、それぞれを使用するタイミングをどのように知るのですか?


30

さまざまなソースで読み上げようとしましたが、私の場合、どのテストが適切かはまだわかりません。データセットについて質問している3つの質問があります。

  1. 被験者は、異なる時間にXからの感染についてテストされます。Xの正の比率がXの正の比率に関連するかどうかを知りたい:

                 After   
               |no  |yes|
    Before|No  |1157|35 |
          |Yes |220 |13 |
    
    results of chi-squared test: 
    Chi^2 =  4.183     d.f. =  1     p =  0.04082 
    
    results of McNemar's test: 
    Chi^2 =  134.2     d.f. =  1     p =  4.901e-31
    

    私の理解では、データは繰り返し測定されるため、McNemarの検定を使用する必要があります。McNemarの検定は、Xの陽性の割合が変化したかどうかを検定します。

    しかし、私の質問にはカイ2乗検定が必要なようです。Xafterの陽性の割合がX beforeの陽性の割合に関連しているかどうかをテストします。

    McNemarの検定とカイ2乗の違いを正しく理解しているかどうかさえわかりません。私の質問が「Xに感染した被験者の割合が以前と異なっているか」という場合、正しいテストは何でしょうか?

  2. 同様のケースですが、前後の代わりに、ある時点で2つの異なる感染を測定します。

            Y   
          |no  |yes|
    X|No  |1157|35 |
     |Yes |220 |13 |
    

    「1つの感染の割合が高いほどYの割合が高い」という質問がある場合、ここでどのテストが正しいでしょうか?

  3. 私の質問が「時間t2の感染Yは時間t1の感染Xに関連していますか?」であった場合、どのテストが適切でしょうか?

                  Y at t2   
                |no  |yes|
    X at t1|No  |1157|35 |
           |Yes |220 |13 |
    

私はこれらのすべてのケースでマクネマーのテストを使用していましたが、それが私の質問に答えるのに適切なテストであるかどうか疑問があります。Rを使用していglmます。代わりに二項式を使用できますか?それはカイ二乗検定に似ていますか?


1
Mcnemarテストに関するstats.stackexchange.com/questions/tagged/mcnemar-testトピックをここで読みましたか?
ttnphns

「2つの確率の関係」とはどういう意味ですか?
マイケルM

@ttnphns私はそれらを通過しましたが、私の質問にそれを再定式化することができませんでした。さらに考えた後、Q1:Chi-sqに基づいて2つの質問に答えることができるようです。割合の変化。私は正しいですか?
アント

ここでは、標準の独立性テストを使用できません。これは、各人が2つの値で表され、ランダムでないサンプルが発生するためです。χ2
マイケルM

ありがとう@MichaelMayer。私はこれを見るまでマクネマーを使用していまし。Mcnemar'sの説明では、同じケースでChi-sqを実行すると何が答えられるかを説明しています。私は非常に困惑しています。各ページのテストの内容はこのページにまとめられており、Chi-sqに進む必要がありますが、それらは同じテーマの測定なので、McNemarを選択する必要があります。
アント

回答:


48

McNemarのテストが人々にとって理解するのが非常に難しいことは非常に残念です。ウィキペディアのページの上部で、ページの説明は人々が理解するのが難しいと述べています。McNemarの検定の典型的な簡単な説明は、「被験者内カイ2乗検定」であるか、「分割表の限界均質性の検定」であるかのいずれかです。これらのどちらも非常に役に立たないと思います。まず、「被験者内カイ二乗」の意味が明確ではありません。被験者を常に2回(各変数で1回)測定し、それらの変数間の関係を判断しようとしているためです。さらに、「限界均質性」 (悲劇的に、この答えでさえ混乱するかもしれません。もしそうなら、以下の私の2回目の試みを読むのを助けるかもしれません。)

あなたの一番上の例について推論するプロセスを経て、マクネマーのテストが適切かどうか(もしそうなら、なぜか)を理解できるかどうか見てみましょう。あなたが置きました:

ここに画像の説明を入力してください

これは分割表であるため、カイ二乗分析を暗示しています。さらに、との関係を理解し、カイ2乗検定は変数間の関係をチェックするため、一見、カイ2乗検定はあなたの質問に答える分析。 BeforeAfter

ただし、これらのデータを次のように表示することもできます。

ここに画像の説明を入力してください

この方法でデータを見ると、通常の古い実行できると思うかもしれません。しかし、は正しくありません。2つの問題があります。1つ目は、各行に同じサブジェクトから測定されたデータがリストされるため、サブジェクト間テストを行いたくない、サブジェクト内テストを行います。第二に、これらのデータは二項分布として分布するため、分散は平均の関数です。これは、サンプル平均が推定されると心配する追加の不確実性がないことを意味します(つまり、後で分散を推定する必要はありません)。したがって、分布を参照する必要はありません。tttttz分布。(この詳細については、それはここに私の答えを読むために役立つかもしれない: -test対テストが。)そこで、我々は被験者内必要があるだろう検定を。つまり、比率が等しいかどうかの被験者内テストが必要です。 zχ2z

これらのデータについて考え、分析する方法は2つあります(データを見る方法は2つあります)。そのため、どの方法を使用するかを決定する必要があります。カイ2乗検定は、とが独立しているかどうかを評価します。つまり、前もって病気だった人は、病気になったことがない人よりも後で病気になる可能性が高いということです。これらの測定値が同じ被験者で評価される場合、どのようにそれが当てはまらないかを見るのは非常に困難です。(ほとんどそうであるように)有意でない結果が得られた場合、それは単にタイプIIエラーになります。および代わりにBeforeAfterBeforeAfter独立しているため、治療が機能するかどうかをほぼ確実に知りたいと思います(カイ2乗は答えません)。これは、平均が等しいかどうかを確認したい治療対対照研究の数に非常に似ていますが、この場合、測定はyes / noであり、被験者内である点が異なります。治療の前後に血圧を測定する、より一般的な状況を考えてください。bpが事前にサンプルの平均を上回っていた人は、ほぼ確実にその後高いbpsに入る傾向がありますが、ランキングの一貫性については知りたくないので、治療が平均bpの変化につながったかどうかを知りたいです。ここでのあなたの状況は直接類似しています。 具体的には、被験者内を実行しますtz-プロポーションの同等性のテスト。それがマクネマーのテストです。

それで、私たちがマクネマーのテストを実施したいことに気付いたとき、それはどのように機能しますか?被験者間テストを実行するのは簡単ですが、被験者内バージョンを実行するにはどうすればよいですか?被験者内の割合のテストを行う方法を理解するための鍵は、分割表を調べて、割合を分解することです:z

AfterNoYestotalBeforeNo1157351192Yes22013233total1377481425
Before割合は行の合計を全体の合計で割ったもので、割合は列の合計を全体の合計で割ったものです。分割表を見ると、それらが次のようになっていることがわかりたとえば、 ここで興味深いのは、After
Before proportion yes=220+131425,After proportion yes=35+131425
13観察の前後にイエスでした。それらは最終的に両方の比率の一部になりますが、両方の計算に含まれる結果として、イエスの比率の変化に関する明確な情報は追加されません。さらに、それらは2回カウントされますが、これは無効です。同様に、全体の合計は両方の計算になり、明確な情報は追加されません。比率を分解することで、イエスの前後の比率に関する唯一の明確な情報がと存在することを認識できるため、これらは分析する必要がある数値です。これがマクネマーの洞察でした。さらに、彼は、ヌルの下で、これはヌル比率に対する二項検定であることに気付きました。22035220/(220+35).5。(R出力はカイ2乗として分布する同等の定式化があります。)

McNemarのテストについては、2x2より大きい分割表への拡張を含む別の議論があります


Rデータを使用したデモを次に示します。

mat = as.table(rbind(c(1157, 35), 
                     c( 220, 13) ))
colnames(mat) <- rownames(mat) <- c("No", "Yes")
names(dimnames(mat)) = c("Before", "After")
mat
margin.table(mat, 1)
margin.table(mat, 2)
sum(mat)

mcnemar.test(mat, correct=FALSE)
#  McNemar's Chi-squared test
# 
# data:  mat
# McNemar's chi-squared = 134.2157, df = 1, p-value < 2.2e-16
binom.test(c(220, 35), p=0.5)
#  Exact binomial test
# 
# data:  c(220, 35)
# number of successes = 220, number of trials = 255, p-value < 2.2e-16
# alternative hypothesis: true probability of success is not equal to 0.5
# 95 percent confidence interval:
#  0.8143138 0.9024996
# sample estimates:
# probability of success 
#              0.8627451 

データの被験者内の性質を考慮に入れなかった場合、比率の同等性のテストはやや劣ります。

prop.test(rbind(margin.table(mat, 1), margin.table(mat, 2)), correct=FALSE)
#  2-sample test for equality of proportions without continuity
#  correction
# 
# data:  rbind(margin.table(mat, 1), margin.table(mat, 2))
# X-squared = 135.1195, df = 1, p-value < 2.2e-16
# alternative hypothesis: two.sided
# 95 percent confidence interval:
#  0.1084598 0.1511894
# sample estimates:
#    prop 1    prop 2 
# 0.9663158 0.8364912 

つまり、のX-squared = 133.6627代わりにchi-squared = 134.2157。この場合、多くのデータがあり、上記のように重複しているのはケースのみであるため、これらの違いはほとんどありません。(ここで別の、より重要な問題は、これがデータを2回カウントすることです。つまり、ではなくです。) N = 2850 N = 142513N=2850N=1425


具体的な質問に対する答えは次のとおりです。

  1. 正しい分析はMcNemarのテストです(上記で詳しく説明しました)。
  2. このバージョンは扱いにくく、「1つの感染の割合が高いほどYの割合が高い」という表現はあいまいです。次の2つの質問があります。

    • いずれかの感染症にかかった患者が他の感染症にかかる傾向があるかどうかを知りたい場合は、完全に合理的です。この質問は、2つの異なる感染に対する感受性が独立しているのか(おそらく異なる生理学的経路を介して収縮しているため)、そうでないのか(おそらく免疫系が一般的に弱くなっているために収縮しているのか)を尋ねています。
    • また、同じ割合の患者が両方の感染症を発症する傾向がある場合に知っておくべきことも完全に合理的です。その場合、McNemarのテストを使用します。ここでの質問は、感染が同様に毒性であるかどうかです。
  3. これもまた同じ感染であるため、もちろんそれらは関連しています。私は、このバージョンは治療の前後ではなく、後のある時点にあると思います。したがって、バックグラウンド感染率が有機的に変化しているかどうかを尋ねていますが、これも完全に合理的な質問です。とにかく、正しい分析はマクネマーのテストです。
    編集:おそらくタイプミスが原因で、3番目の質問を誤って解釈したように思われます。今では、2つの異なる時点で2つの異なる感染として解釈します。この解釈では、カイ二乗検定が適切です。

@Alexis私の知る限り、あなたとグングはお互いに話し合っているようです。いわゆる「非ペア」または「独立サンプル」t検定、または「一方向」または「独立サンプルANOVA」でも、実際にはペアのデータが必要な意味で必要です。各被験者について、両方のカテゴリグループを記録する必要がありますメンバーシップ変数連続的な結果変数。(グループメンバーシップ変数に2つのレベルがある場合、通常、対応のないt検定を使用します。3+レベルの場合、一元配置分散分析が必要です)。
シルバーフィッシュ

2
どのテストを使用するかを説明するときに、両方の見方を示します-連続変数の観測値があり、被験者ごとに1つあり、被験者が2(または3+)のグループから来ており、グループの場合は、独立サンプルt検定(または一元配置分散分析)を使用します。次に、データテーブルを見て選択を確認します。各サブジェクトについて、グループメンバーシップのカテゴリと連続変数の2つの情報がありますか。物事を好転させて、t検定はバイナリ変数と連続変数の間の関連性の一種の検定であると言うことさえできます。
シルバーフィッシュ

2
各被験者について、異なる条件下で取得した2つの(または3+)連続測定値があり、条件間の違いをテストする場合は、対応のあるt検定(または相関サンプルANOVA)が使用されます。これは異なる意味で「ペア」です。しかし、この質問では、被験者ごとに2つのカテゴリ変数が記録されています。データテーブルを見ると、これらのカテゴリ変数の記録された値はペアになっている必要があります。しかし、これ研究デザイン自体がペアになっているという意味ではありません。これは紛らわしい(gung notesとして)。しかし、研究デザインを知っていれば、これで解決できます(アレクシスのメモとして)
Silverfish

@Silverfish各被験者について(同じ名目変数の)2つの観測がある場合、どのような意味でペア設計ではありませんか?
アレクシス

1
@Alexis「同じ変数の」ことが重要であり、混乱を招く可能性があります。異なる条件下または異なる時間ではありますが、同じ変数を表していることをご存知かもしれませんが、データテーブルのレイアウト方法によっては、異なる変数として記録されるように見える場合があります(たとえば、「before」と「after」変数)。
シルバーフィッシュ

22

さて、私はこれのハッシュを作成したようです。別の方法でこれをもう一度説明してみましょう。それが問題を解決するのに役立つかどうかを確認します。

McNemarの検定とカイ2乗検定を説明する従来の方法は、データが「ペア」であるかどうかを尋ね、データがペアである場合はMcNemarの検定を推奨し、データが「ペアでない」場合はカイ2乗検定を推奨します。これは多くの混乱につながることがわかりました(このスレッドは例です!)。これに代えて、あなたが尋ねようとしいる質問に焦点を合わせ、あなたの質問に一致するテストを使用することが最も役立つことがわかりました。これをより具体的にするために、作成されたシナリオを見てみましょう。

統計会議を歩き回り、出会った統計学者ごとに、それらが米国出身か英国出身かを記録します。また、高血圧か正常血圧かを記録します。

データは次のとおりです。

mat = as.table(rbind(c(195,   5),
                     c(  5, 195) ))
colnames(mat)        = c("US", "UK")
rownames(mat)        = c("Hi", "Normal")
names(dimnames(mat)) = c("BP", "Nationality")
mat
#         Nationality
# BP        US  UK
#   Hi     195   5
#   Normal   5 195

この時点で、データに対してどのような質問をしたいかを把握することが重要です。ここで質問できる質問は3つあります。

  1. カテゴリ変数BPNationalityが関連しているか独立しているかを知りたい場合があります。
  2. 高血圧が英国の統計学者の間でよりも米国の統計学者の間でより一般的であるかどうか疑問に思うかもしれません。
  3. 最後に、高血圧の統計学者の割合が、私たちが話した米国の統計学者の割合と等しいかどうか疑問に思うかもしれません。これは、表の限界比率を指します。これらはデフォルトではRに出力されませんが、このようにして取得できます(この場合、まったく同じであることに注意してください)。

    margin.table(mat, 1)/sum(mat)
    # BP
    #    Hi Normal 
    #   0.5    0.5 
    margin.table(mat, 2)/sum(mat)
    # Nationality
    #  US  UK 
    # 0.5 0.5 
    

私が言ったように、多くの教科書で議論されている従来のアプローチは、データが「ペア」であるかどうかに基づいて、使用するテストを決定することです。しかし、これは非常に紛らわしいです。この分割表は「ペア」になっていますか?米国と英国の統計学者の割合を高血圧と比較すると、異なる人々のセットで測定された2つの割合(同じ変数であるにもかかわらず)を比較していることになります。一方、高血圧の割合を米国の割合と比較したい場合、同じ人々のセットで測定された2つの割合(変数は異なります)を比較します。これらのデータは両方です「ペア」と「アンペア」を同時に(データのさまざまな側面に関して)。これは混乱を招きます。この混乱を避けるために、私はあなたがどの質問をしているのかを考える必要があると主張します。具体的には、知りたい場合:

  1. 変数が独立している場合:カイ2乗検定を使用します。
  2. 高血圧の割合が国籍によって異なる場合:割合の違いについてはz検定を使用します。
  3. 限界比率が同じ場合:McNemarの検定を使用します。

ここでは、分割表が「ペア」になっていないため、McNemarの検定を使用して限界比率の平等性をテストすることはできず、代わりにカイ2乗検定を使用する必要があると主張する人がいます。これが競合のポイントであるため、結果が理にかなっているかどうかを確認してみましょう。

chisq.test(mat)
#  Pearson's Chi-squared test with Yates' continuity correction
# 
# data:  mat
# X-squared = 357.21, df = 1, p-value < 2.2e-16
mcnemar.test(mat)
#  McNemar's Chi-squared test
# 
# data:  mat
# McNemar's chi-squared = 0, df = 1, p-value = 1

カイ2乗検定では、p値が約0になります。つまり、限界比率が実際に等しい場合、等しい限界比率からデータを取得する確率は本質的に0であると言います。 しかし、限界比率は上記とまったく同じ、 です! カイ二乗検定の結果は、データに照らしても意味がありません。一方、McNemarの検定では、p値1が得られます。つまり、真の限界比率が等しい場合、これに等しいか、または同等からさらに近い限界比率を見つける可能性が100%あるということです。観察された限界比率は、それらよりも等しくなることはできないため、この結果は理にかなっています。 50%=50%

別の例を試してみましょう。

mat2 = as.table(rbind(c(195, 195),
                      c(  5,   5) ))
colnames(mat2)        = c("US", "UK")
rownames(mat2)        = c("Hi", "Normal")
names(dimnames(mat2)) = c("BP", "Nationality")
mat2
#         Nationality
# BP        US  UK
#   Hi     195 195
#   Normal   5   5
margin.table(mat2, 1)/sum(mat2)
# BP
#     Hi Normal 
#  0.975  0.025 
margin.table(mat2, 2)/sum(mat2)
# Nationality
#  US  UK 
# 0.5 0.5 

この場合、限界比率は非常に異なり、です。2つのテストをもう一度試して、その結果が観察された限界比率の大きな違いとどのように比較されるかを見てみましょう。 97.5%50%

chisq.test(mat2)
#  Pearson's Chi-squared test
# 
# data:  mat2
# X-squared = 0, df = 1, p-value = 1
mcnemar.test(mat2)
#  McNemar's Chi-squared test with continuity correction
# 
# data:  mat2
# McNemar's chi-squared = 178.605, df = 1, p-value < 2.2e-16

今回は、カイ2乗検定によりp値1が得られます。これは、限界比率が可能な限り等しいことを意味します。しかし、限界比率は明らかに等しくないことがわかったため、この結果はデー​​タを考慮しても意味がありません。一方、McNemarの検定では、p値が約0になります。言い換えると、母集団で本当に等しい場合、これらと同等から限界比率のデータを取得することはほとんどありません。観察された限界比率は等しくないため、この結果は理にかなっています。

カイ2乗検定の結果が得られたという事実は、データが与えられても意味をなさないので、ここでカイ2乗検定を使用すると何か問題があることを示唆しています。もちろん、McNemarのテストが適切な結果を提供したという事実は、それが有効であることを証明するものではなく、単なる偶然かもしれませんが、カイ2乗テストは明らかに間違っています。

McNemarのテストが正しいテストである理由について議論を進めることができるかどうか見てみましょう。3番目のデータセットを使用します。

mat3 = as.table(rbind(c(190,  15),
                      c( 60, 135) ))
colnames(mat3)        = c("US", "UK")
rownames(mat3)        = c("Hi", "Normal")
names(dimnames(mat3)) = c("BP", "Nationality")
mat3
#         Nationality
# BP        US  UK
#   Hi     190  15
#   Normal  60 135
margin.table(mat3, 1)/sum(mat3)
# BP
#     Hi Normal 
# 0.5125 0.4875 
margin.table(mat3, 2)/sum(mat3)
# Nationality
#    US    UK 
# 0.625 0.375 

今回は、とを比較し、母集団で実際の限界比率が同じだったのではないかと考えます。2つの比率を比較しているため、最も直感的なオプションは、2つの比率が等しいかどうかのz検定を使用することです。ここで試すことができます: 62.5 51.25%62.5%

prop.test(x=c(205, 250), n=c(400, 400))
#  2-sample test for equality of proportions with continuity correction
# 
# data:  c(205, 250) out of c(400, 400)
# X-squared = 9.8665, df = 1, p-value = 0.001683
# alternative hypothesis: two.sided
# 95 percent confidence interval:
#   -0.18319286 -0.04180714
# sample estimates:
# prop 1 prop 2 
# 0.5125 0.6250 

prop.test()限界比率をテストするために使用するには、「成功」の数と「試行」の総数を手動で入力する必要がありましたが、出力の最後の行から比率が正しいことがわかります。私たちが持っているデータの量を考えると、それらが実際に等しい場合、平等からここまで限界的な比率を得る可能性は低いです。

このテストは有効ですか?ここには2つの問題があります。このテストでは、実際に400のみである800データがあると考えています。このテストでは、これら2つの比率が同じ人で測定されたという意味で独立していないことも考慮していません。

これを分解して別の方法を見つけることができるかどうか見てみましょう。分割表から、限界比率は次のとおりであることがわかります。 ここで私たちが見ているのは、高血圧の米国の統計学者が両方の限界的な割合で現れるということです。これらは両方とも2回カウントされており、限界比率の違いに関する情報を提供していません。さらに、両方の分母にも合計表示されます。一意で特徴的な情報はすべて、2つの非対角セル数(および
1904001560π=0.5

% high BP: 190+15400% US: 190+60400
1904001560)。限界比率が同じであるか異なるかは、それらにのみ起因します。観測値がこれらの2つのセルのいずれかに等しくなる可能性があるかどうかは、nullの下で確率二項分布として分布します。それがマクネマーの洞察でした。実際、McNemarの検定は、基本的に、これらの2つのセルに等しく観測値が含まれるかどうかの二項検定です。 π=.5
binom.test(x=15, n=(15+60))
#  Exact binomial test
# 
# data:  15 and (15 + 60)
# number of successes = 15, number of trials = 75, p-value = 1.588e-07
# alternative hypothesis: true probability of success is not equal to 0.5
# 95 percent confidence interval:
#   0.1164821 0.3083261
# sample estimates:
# probability of success 
#                    0.2 

このバージョンでは、有益な観測のみが使用され、2回カウントされません。ここでのp値ははるかに小さく、0.0000001588です。これは、データの依存関係が考慮される場合によくあります。つまり、この検定は、比率の差のz検定よりも強力です。さらに、上記のバージョンはMcNemarのテストと本質的に同じであることがわかります。

mcnemar.test(mat3, correct=FALSE)
#  McNemar's Chi-squared test
# 
# data:  mat3
# McNemar's chi-squared = 27, df = 1, p-value = 2.035e-07

非同一性が紛らわしい場合、McNemarの検定は通常、Rで結果を2乗してカイ2乗分布と比較します。これは上記の2項式のような正確な検定ではありません。

(15-60)^2/(15+60)
# [1] 27
1-pchisq(27, df=1)
# [1] 2.034555e-07

したがって、分割表の限界比率が等しいことを確認する場合、McNemarの検定(または手動で計算された正確な二項検定)は正しいです。データを不正に2回使用することなく、関連情報のみを使用します。データに意味のある結果が得られるのは、単に「起こる」だけではありません。

私は、コンティンジェンシーテーブルが「ペア」であるかどうかを把握しようとすることは役に立たないと信じ続けています。データを尋ねる質問に一致するテストを使用することをお勧めします。


1
あなたは私の票を得た。:)
アレクシス

11

使用するテストの問題、2つのバイナリ変数間に関連性がないという帰無仮説の分割表対McNemarのは、データがペアになっているか依存しているか、またはペアになっていないかという問題です/独立: χ 2χ2χ2

2つの独立したサンプルのバイナリデータ
この場合、分割表テストを使用します。χ2

たとえば、米国の20人の統計学者のサンプルと、英国の37人の統計学者の個別の独立したサンプルがあり、これらの統計学者が高血圧であるか正常血圧であるかどうかの測定値があるとします。あなたの帰無仮説は、英国と米国の統計学者の両方が高血圧であるという同じ潜在的確率を持っているということです(すなわち、米国か英国からのものかを知ることは高血圧の確率について何も語らない)。もちろん、各グループで同じサンプルサイズを使用することも可能ですが、それによってサンプルが独立している(つまりペアになっていない)事実は変わりません。

ペアのサンプルのバイナリデータ
この場合、McNemarのテストを使用します。χ2

たとえば、国際統計会議からサンプリングされた個別に一致した症例対照研究データがあり高血圧の30人の統計学者(症例)と高血圧のない30人の統計学者(対照;年齢、性別、BMIおよび喫煙状態で個別に一致した人)特定の場合)、英国での職業的居住と他の場所での居住について遡及的に評価されます。ヌルとは、症例間で英国に居住する確率は、対照として英国に居住する確率と同じであるということです(つまり、高血圧状態について知ることは、英国の居住歴について何も語らないということです)。

実際、McNemarのテストはデータのペアを分析します。具体的には、不一致のペアを分析します。そう及びよりである不一致ペアのカウントがS χ 2 = [ R - S - 1 ] 2rsχ2=[(rs)1]2(r+s)

アント、あなたの例では、あなたのデータはペアにされています(同じ被験者で同じ変数が2回測定されます)。

[gungと私は以前の回答についてしばらくの間同意しなかった。]

引用された参考文献
「我々は、まだ比較割合で興味を持っていると仮定すると?我々のデータがペアになっている場合は、我々はむしろ独立したよりも、何ができるのか ...このような状況で、我々はマクネマー検定を使用しています。」 -パガーノとGauvreau、生物統計学の原則、第二エディション、349ページ。[ 強調追加 ]

「この表現は、McNemarマッチドペア検定統計としてよく知られており(McNemar、1949)、マッチドペア分析の主流となっています。」—ロスマン、グリーンランド、ラッシュ。Modern Epidemiology、286ページ。[ 強調を追加 ]

「ペアのt検定と分散分析の反復測定を使用して、調査対象の変数を間隔スケールで測定できる実験を分析できます(そして、パラメトリック法に必要な他の仮定を満たします)。第5章では、結果が名目尺度で測定されますか?この問題は、個人が治療に反応したかどうかを尋ねる場合、または同じ個人で陽性または陰性分類される2つの異なる診断テストの結果を比較する場合にしばしば発生します。そのような実験の1つとして、そのような実験、変化に対するマクネマーの検定を分析する手順を開発します。」—グランツ、生物統計学の入門書、第7版、200ページ。[ 強調を追加。グランツは、偶発事象テーブルテストをペアのデータに誤って適用した例を201ページで説明しています。]χ2

ケースごとに1つのコントロールを持つ一致したケースコントロールデータの場合、結果の分析は単純であり、適切な統計検定はMcNemarのカイ2乗検定です。オッズ比と統計量の計算では、唯一の寄与者暴露が異なるペア、つまり、ケースは暴露されたが対照は暴露されなかったペア、および対照は暴露されたが症例は暴露されなかったペアです。」— Elwood。疫学研究および臨床試験の批判的評価、第1版、189〜190ページ。[ 強調を追加 ]


7

McNemarのテストに対する私の理解は次のとおりです。介入がバイナリの結果に大きな違いをもたらしたかどうかを確認するために使用されます。あなたの例では、被験者のグループの感染がチェックされ、応答がyesまたはnoとして記録されます。その後、すべての被験者に何らかの介入、例えば抗生物質が与えられます。その後、感染について再度チェックされ、応答が再びyes / noとして記録されます。応答(のペア)は、隣接テーブルに入れることができます:

             After   
           |no  |yes|
Before|No  |1157|35 |
      |Yes |220 |13 |

そして、マクネマーのテストはこれに適しているでしょう。

表から、「no」から「yes」(35 /(1157 + 35)または2.9よりも多くが「yes」から「no」(220 /(220 + 13)または94.4%)に変換されていることが明らかです。 %)。これらの割合を考慮すると、McNemarのP値(4.901e-31)はカイ2乗P値(0.04082)よりも正確に見えます。

隣接テーブルが2つの異なる感染を表す場合(質問2)、カイ2乗がより適切です。

3番目の質問はあいまいです。最初に、t2のYとt1のYを関連付けますが、表ではt1の「X」とt2のYを記述します。t2でのY対t1でのYは最初の質問と同じであるため、McNemarのテストが必要です。一方、t1でのXとt2でのYは異なるイベントが比較されていることを示すため、カイ2乗がより適切になります。

編集:アレクシスがコメントで述べたように、一致した症例対照データもマクネマーのテストによって分析されます。たとえば、1425人のがん患者が研究のために募集され、各患者に対して一致した対照も募集されます。これらすべて(1425 * 2)の感染がチェックされます。各ペアの結果は、同様の表で表示できます。

             Normal   
           |no  |yes|
Cancer|No  |1157|35 |
      |Yes |220 |13 |

より明確に:

                                    Normal:
                                    No infection   Infection  
Cancer patient:     No infection    1157            35      
                    Infection       220             13      

それは、癌患者が感染していたのではなく、制御された方が逆ではなく、はるかに頻繁であることを示しています。その重要性は、マクネマーの検定によって検証できます。

これらの患者とコントロールが一致せず、独立していない場合、次の表を作成し、カイ二乗検定のみを行うことができます。

            Infection
            No    Yes
Cancer  No  1377   48
        Yes 1192  233

より明確に:

                No infection        Infection
No cancer       1377                48
Cancer          1192                233

これらの数値は、最初の表のマージンと同じであることに注意してください。

> addmargins(mat)
      After
Before   No  Yes  Sum
   No  1157   35 1192
   Yes  220   13  233
   Sum 1377   48 1425

それが、マクネマーのテストで「限界周波数」や「限界同質性」などの用語を使用する理由であるに違いありません。

興味深いことに、addmargins関数は、使用するテストの決定にも役立ちます。総計が観察された被験者の数の半分である場合(ペアリングが行われたことを示す)、McNemarの検定が適用されます。それ以外の場合、カイ二乗検定が適切です。

> addmargins(mat)
      Normal
Cancer   No  Yes  Sum
   No  1157   35 1192
   Yes  220   13  233
   Sum 1377   48 1425
> 
> addmargins(mat3)
      Infection
Cancer   No  Yes  Sum
   No  1377   48 1425
   Yes 1192  233 1425
   Sum 2569  281 2850

上記の表のRコードは、上記の回答からのものです。

mat = as.table(rbind(c(1157, 35), 
                      c( 220, 13) ))
colnames(mat) <- rownames(mat) <- c("No", "Yes")
names(dimnames(mat)) = c("Cancer", "Normal")

mat3 = as.table(rbind(c(1377, 48), 
                     c(1192, 233) ))
colnames(mat3) <- rownames(mat3) <- c("No", "Yes")
names(dimnames(mat3)) = c("Cancer", "Infection")

次の擬似コードも、違いを知るのに役立ちます。

subject_id      result_first_observation    result_second_observation   
1               no                          yes                     
2               yes                         no                      
...

mcnemar.test(table(result_first_observation, result_second_observation))



pair_id     result_case_subject     result_control_subject  
1           no                      yes                     
2           yes                     no                      
...

mcnemar.test(table(result_case_subject, result_control_subject))



subject_id      result_first_test       result_second_test
1               yes                     no
2               no                      yes
..

chisq.test(table(result_first_test, result_second_test))

編集:

mid-pマクネマーテストのパフォーマンスのバリエーション(https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3716987/)は興味深いものです。これは、比較bしてc(yesまたはno研究を通じて残っていなかった人々の数を無視して)noからyesに変更していない数に対するYESからNOに変更していない分割表、すなわち数の。https://gist.github.com/kylebgorman/c8b3fb31c1552ecbaafbに示すように、Pythonの二項検定を使用して実行できます

binom.test(b, b+c, 0.5)ランダムな変更ではbに等しいと予想されるため、これは同等である可能性がありますc


3
介入分析だけでなく、観察的な意味で一致した症例対照データの分析にも使用されます。
アレクシス

Q3の表の前の説明/設定を考えると、「X」はタイプミスであると思いますが、それは良いキャッチであり、これはスレッド+1への有用な貢献です。
GUNG -復活モニカ

@mso編集Q3。t1でXです!そうでなければ、あなたが言うように、それはQ1と変わらない。このQは1年以上前のもので、私を混乱させたのと同じ考えで誰かが戻ってきたのを見て驚いた。興味を持ってフォロー!
アント

申し訳ありませんが、OPはQ3を明確にしました。明らかに、2つの異なる時点で2つの異なる病気です。繰り返しますが、良いキャッチです。
GUNG -復活モニカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.