さて、私はこれのハッシュを作成したようです。別の方法でこれをもう一度説明してみましょう。それが問題を解決するのに役立つかどうかを確認します。
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つあります。
- カテゴリ変数
BP
とNationality
が関連しているか独立しているかを知りたい場合があります。
- 高血圧が英国の統計学者の間でよりも米国の統計学者の間でより一般的であるかどうか疑問に思うかもしれません。
最後に、高血圧の統計学者の割合が、私たちが話した米国の統計学者の割合と等しいかどうか疑問に思うかもしれません。これは、表の限界比率を指します。これらはデフォルトでは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つの割合(変数は異なります)を比較します。これらのデータは両方です「ペア」と「アンペア」を同時に(データのさまざまな側面に関して)。これは混乱を招きます。この混乱を避けるために、私はあなたがどの質問をしているのかを考える必要があると主張します。具体的には、知りたい場合:
- 変数が独立している場合:カイ2乗検定を使用します。
- 高血圧の割合が国籍によって異なる場合:割合の違いについてはz検定を使用します。
- 限界比率が同じ場合: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回使用することなく、関連情報のみを使用します。データに意味のある結果が得られるのは、単に「起こる」だけではありません。
私は、コンティンジェンシーテーブルが「ペア」であるかどうかを把握しようとすることは役に立たないと信じ続けています。データを尋ねる質問に一致するテストを使用することをお勧めします。