글쎄, 내가 이것의 해시를 만든 것 같습니다. 이것을 다른 방식으로 다시 설명해 보도록하겠습니다. 문제를 해결하는 데 도움이되는지 살펴 보겠습니다.
McNemar의 검정과 카이 제곱 검정을 설명하는 전통적인 방법은 데이터가 "페어링"되어 있는지 확인하고 데이터가 쌍을 이루면 McNemar의 테스트를, 데이터가 "페어링되지 않은"경우 카이 제곱 검정을 권장하는 것입니다. 나는 이것이 많은 혼란을 초래한다는 것을 알았습니다 (이 스레드는 예입니다!). 대신에, 귀하가 묻고 자하는 질문 에 집중 하고 질문 과 일치하는 시험을 사용하는 것이 가장 도움이된다는 것을 알게되었습니다 . 이를보다 구체적으로 만들기 위해 구성 시나리오를 살펴 보겠습니다.
통계 회의를 둘러보고 만나는 각 통계 전문가에 대해 미국 출신인지 영국 출신인지 기록합니다. 또한 고혈압인지 정상 혈압인지 기록합니다.
데이터는 다음과 같습니다.
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
이 시점에서 데이터에 대해 어떤 질문을하고 싶은지 알아내는 것이 중요합니다. 여기에 세 가지 다른 질문이 있습니다.
- 우리는 범주 형 변수가 있는지 알고 할 수 있습니다
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
내가 말했듯이, 많은 교과서에서 논의 된 전통적인 접근 방식은 데이터의 "페어링"여부에 따라 사용할 테스트를 결정하는 것입니다. 그러나 이것은 매우 혼란 스럽습니다.이 우발 사태 테이블이 "페어링"되었습니까? 미국 통계와 영국 통계 학자 사이의 고혈압 비율을 비교하면 다른 사람들 집합에서 측정 한 두 비율 (동일한 변수 임)을 비교하는 것입니다. 반면에 고혈압의 비율과 미국의 비율을 비교하려면 동일한 사람 집합에서 측정 한 두 가지 비율 (다른 변수 임에도 불구하고)을 비교합니다. 이 데이터는 모두(데이터의 다른 측면과 관련하여) 동시에 "페어링 된"및 "페어링되지 않은". 이것은 혼란을 초래합니다. 이 혼란을 피하기 위해, 나는 당신이 어떤 질문을하는지 생각해야한다고 주장합니다. 특히 알고 싶은 경우 :
- 변수가 독립적 인 경우 : 카이 제곱 검정을 사용하십시오.
- 고혈압 비율이 국적에 따라 다른 경우 : 비율 차이에 대해 z- 검정을 사용하십시오.
- 한계 비율이 동일한 경우 : McNemar의 검정을 사용하십시오.
우발 상황 테이블이 "페어링"되지 않았기 때문에 McNemar의 테스트를 사용하여 한계 비율의 동등성을 테스트하는 데 사용할 수 없으며 카이 제곱 테스트를 대신 사용해야한다고 주장하는 누군가가 여기에 동의하지 않을 수 있습니다. 이것이 경합의 요점이므로 결과가 의미가 있는지 확인하십시오.
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
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
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
이번에 카이 제곱 검정은 p- 값 1을 제공합니다. 즉, 한계 비율이 가능한 한 같습니다. 그러나 우리는 한계 비율이 분명히 같지 않다는 것을 알았 으므로이 결과는 데이터에 비추어 의미가 없습니다. 반면에 McNemar의 검정은 p- 값이 약 0입니다. 즉, 모집단에서 실제로 동일한 경우 한계 비율을 갖는 데이터가 동등하지 않은 데이터를 얻을 가능성은 거의 없습니다. 우리가 관찰 한 한계 비율이 동일하지 않기 때문에이 결과는 의미가 있습니다.
카이 제곱 테스트에서 데이터를 고려할 때 의미가없는 결과가 나온다는 사실은 카이 제곱 테스트를 사용하는 데 문제가 있음을 나타냅니다. 물론, McNemar의 테스트가 합리적인 결과를 제공했다는 사실이 그것이 그것이 타당하다는 것을 증명하는 것은 아니며, 우연의 일치 일 수도 있지만, 카이 제곱 테스트는 분명히 잘못되었습니다.
우리가 왜 McNemar의 테스트가 옳은지에 대한 논쟁을 통해 작업 할 수 있는지 봅시다. 세 번째 데이터 세트를 사용하겠습니다.
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
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()
마진 비율을 테스트 하기 위해 사용하려면 '성공'수와 총 '시험 수'를 수동으로 입력해야했지만 출력의 마지막 줄에서 비율이 올바른지 알 수 있습니다.) 우리가 가진 데이터의 양을 감안할 때 실제로 동일한 경우 한계 비율이 평등에서 멀어 질 것 같지 않습니다.
이 시험은 유효합니까? 여기에는 두 가지 문제가 있습니다.이 테스트는 실제로 400 개만있을 때 800 개의 데이터가 있다고 생각합니다.이 테스트는 또한이 두 비율이 동일한 사람에서 측정되었다는 의미에서 독립적이지 않다는 점을 고려하지 않습니다.
높은 BP 비율 : 190 + 15400미국 % : 190 + 60400
1904001560π= .5null 아래. 그것은 맥 네마의 통찰력이었습니다. 실제로 McNemar의 검정은 본질적으로 관측치가 두 세포에 똑같이 포함될 가능성에 대한 이항 검정입니다.
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
이 버전에서는 유익한 관찰 만 사용되며 두 번 계산되지 않습니다. 여기서 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에서는 결과의 제곱을 계산하고 카이 제곱 분포와 비교합니다. 위의 이항과 같은 정확한 검정은 아닙니다.
(15-60)^2/(15+60)
# [1] 27
1-pchisq(27, df=1)
# [1] 2.034555e-07
따라서 우 발표의 한계 비율이 같은지 확인하려면 McNemar의 검정 (또는 수동으로 계산 된 정확한 이항 검정)이 정확합니다. 불법적으로 데이터를 두 번 사용하지 않고 관련 정보 만 사용합니다. 데이터에 적합한 결과를 산출하는 것만으로는 불가능합니다.
우발 사태 테이블이 "페어링"되어 있는지 여부를 파악하는 것은 도움이되지 않는다고 계속 믿고 있습니다. 데이터를 묻는 질문과 일치하는 테스트를 사용하는 것이 좋습니다.