McNemar의 검정과 카이 제곱 검정의 차이점은 무엇이며 각각의 사용시기를 어떻게 알 수 있습니까?


30

다른 출처를 읽으려고 시도했지만 여전히 어떤 경우에 어떤 테스트가 적합한 지 명확하지 않습니다. 내 데이터 세트에 대해 묻는 세 가지 다른 질문이 있습니다.

  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
    

    데이터를 반복해서 측정하므로 X에 대한 양의 비율이 변경되었는지 테스트하는 McNemar의 테스트를 사용해야합니다.

    그러나 내 질문에는 카이 제곱 테스트가 필요한 것 같습니다 .X에 대한 양의 비율이 X에 대한 양의 비율과 관련이 있는지 테스트합니다.

    McNemar의 검정과 카이 제곱의 차이점을 올바르게 이해하고 있는지 확실하지 않습니다. 내 질문이 "X에 감염된 피험자의 비율이 이전과 다른가?"라면 올바른 시험은 무엇입니까?

  2. 비슷한 경우이지만 이전과 이후가 아닌 한 시점에서 두 가지 감염을 측정합니다.

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

    "한 감염의 높은 비율이 Y의 높은 비율과 관련이 있습니까?"라는 질문이있는 경우 어떤 검사를 사용할 수 있습니까?

  3. 내 질문이 "시간 t1의 감염 X가 시간 t1의 감염 X와 관련되어 있습니까?"인 경우 어떤 테스트가 적절합니까?

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

이 모든 경우에 McNemar의 테스트를 사용하고 있었지만 이것이 내 질문에 대답하기에 적합한 테스트인지 의심합니다. R을 사용하고 있습니다. glm대신 이항을 사용할 수 있습니까? 카이 제곱 테스트와 유사합니까?


1
당신은 읽으려고 했 stats.stackexchange.com/questions/tagged/mcnemar-test Mcnemar 테스트 여기에 주제를?
ttnphns

"두 확률 사이의 관계"란 무엇을 의미합니까?
Michael M

@ttnphns 나는 그들을 통과했지만 내 질문으로 재구성 할 수 없었습니다. 더 많은 생각을하면 Q1을 기반으로 두 가지 질문에 대답 할 수있는 것처럼 보입니다. 비율의 변화. 내가 맞아?
Anto

각 사람이 무작위가 아닌 표본을 유발하는 두 개의 값으로 표시되므로 표준 독립성 검정을 사용할 수 없습니다 . χ2
Michael M

@MichaelMayer에게 감사드립니다. 내가 볼 때까지 mcnemar이야 사용 된 . 맥 네마의 설명에 따르면, 그는 카이 제곱을하는 것이 같은 경우에 무엇을 대답 할 것인지를 말한다. 나는 매우 당황했다. 각 테스트에서 우리에게 알려주는 방식은이 페이지에 나와 있습니다. Chi-sq로 가야하지만 같은 주제에 대한 측정이므로 McNemar 's를 선택해야합니다!
Anto

답변:


48

사람들이 이해하기 어려운 McNemar의 테스트 는 매우 유감입니다 . 심지어 Wikipedia 페이지의 맨 위에는 페이지의 설명이 사람들이 이해하기 어렵다고 명시되어 있습니다. McNemar의 검정에 대한 일반적인 간단한 설명은 '대상 내 카이 제곱 검정'이거나 '우연성 표의 한계 동질성 검정'이라는 것입니다. 나는 이것들 중 어느 것도 매우 도움이되지 않는다고 생각합니다. 첫째, '피험자 내 카이 제곱'이 무엇을 의미하는지 명확하지 않습니다. 피사체를 항상 두 번 (각 변수마다 한 번씩) 측정하고 해당 변수 간의 관계를 확인하려고하기 때문입니다. 또한 '마진 동질성' (이 대답은 혼란 스러울 수 있습니다. 그렇다면 두 번째 시도 를 읽는 것이 도움이 될 수 있습니다.)

McNemar의 테스트가 적절한 지 여부를 이해할 수 있는지 확인하기 위해 가장 좋은 예에 대한 추론 프로세스를 진행할 수 있는지 살펴 보겠습니다. 당신은 넣어 :

여기에 이미지 설명을 입력하십시오

이 표는 우발성 표이므로 카이 제곱 분석을 의미합니다. 또한 A f t e r 사이의 관계를 이해하고 카이 제곱 테스트는 변수 간의 관계를 확인하므로 언뜻보기에 카이 제곱 테스트는 귀하의 질문에 답변하는 분석. 이자형에프영형아르 자형이자형에이에프이자형아르 자형

그러나 다음과 같이 이러한 데이터를 제시 할 수도 있습니다.

여기에 이미지 설명을 입력하십시오

이런 식으로 데이터를 볼 때 정기적 인 오래된 할 수 있다고 생각할 수 있습니다 . 그러나 t- 검정 은 옳지 않습니다. 두 가지 문제가 있습니다 : 동일한 주제에서 측정 된 각 행 목록 데이터는, 우리가 간 주제 싶지 않기 때문에 먼저, t -test, 우리는 내-주제을 수행 할 것입니다 t에 -test. 둘째,이 데이터는 이항 분포로 분포되므로 분산은 평균의 함수입니다. 즉, 표본 평균을 추정 한 후에 (즉, 분산을 추산 할 필요가 없음) 걱정할 추가 불확실성이 없으므로 t 분포 를 참조 할 필요가 없습니다 . 분포. (이에 대한 자세한 내용 -test vs. χ 2 testχ2 에서 내 대답을 읽는 데 도움이 될 수 있습니다 .) 따라서 개체 내 -test 가 필요합니다 . 즉, 비율이 같은 개체 내 테스트가 필요합니다.

우리는 이러한 데이터에 대해 생각하고 분석하는 두 가지 방법이 있음을 알았습니다 (데이터를 보는 두 가지 다른 방법으로 표시됨). 따라서 사용해야 할 방법을 결정해야합니다. 카이 제곱 테스트는 A f t e r 가 독립적 인지 여부를 평가합니다 . 즉, 아프지 않은 사람들보다 미리 아프었던 사람들이 나중에 아플 가능성이 더 높습니다. 이러한 측정이 동일한 주제에 대해 평가된다는 점을 고려할 때 그것이 어떻 게되지 않을지를 보는 것은 매우 어렵습니다. 중요하지 않은 결과를 얻었을 때 (거의 그러 하듯이) 단순히 유형 II 오류 일 것입니다. B e f 여부 대신이자형에프영형아르 자형이자형에이에프이자형아르 자형 f를 t의 전자 R 독립, 당신은 거의 확실하게 처리 작업 (질문 카이 제곱이 대답을하지 않는) 경우 알고 싶어요. 이는 측정치가 예 / 아니오이고 대상체 내에 있다는 점을 제외하고는 평균이 동일한 지 여부를 확인하려는 여러 치료 대 대조 연구와 매우 유사합니다. 보다 일반적인 t를 고려하십시오이자형에프영형아르 자형이자형에이에프이자형아르 자형일부 치료 전후에 측정 된 혈압으로 검사 상황. bp가 사전에 샘플 평균보다 높은 사람들은 거의 확실히 높은 bps에 속하지만 경향의 일관성에 대해 알고 싶지 않고 치료가 평균 bp의 변화를 가져 왔는지 알고 싶습니다. . 여기서 당신의 상황은 직접적으로 유사합니다. 특히, 비율이 같은 개체 -내 테스트 를 실행하려고합니다 . 그것이 McNemar의 테스트입니다.

그래서 우리가 McNemar의 테스트를 수행하고 싶다는 것을 깨달았습니다. 어떻게 작동합니까? 개체 간 테스트를 실행하는 것은 쉽지만 개체 내 버전을 어떻게 실행합니까? 개체 내 비율 테스트를 수행하는 방법을 이해하는 핵심은 비율을 분해 하는 분할 표를 검사하는 것입니다 .
분명히B의전자FO(R)의전자의비율은 전체의 합계로 나누어 행 합계 및 아르f를t의전자(R)의비율이 전체 합계로 나눈 값 열의 합계이다. 우발 사태 표를 보면 다음과 같은 것을 알 수 있습니다.비례 전 yes=220+13

에이에프이자형아르 자형영형와이이자형에스영형에이이자형에프영형아르 자형이자형영형1157351192와이이자형에스22013233영형에이1377481425
이자형에프영형아르 자형이자형에이에프이자형아르 자형
여기서 주목할만한 점은전후에13 개의관측치가 있다는것입니다. 그들은 두 비율의 일부로 끝나지 만 두 계산의 결과로 예의 비율 변화에 대한 명확한 정보는 추가하지 않습니다. 또한 두 번 계산되며 유효하지 않습니다. 마찬가지로 전체 합계는 두 계산에서 끝나고 별개의 정보를 추가하지 않습니다. 비율을 분해함으로써 우리는 예와 전후 비율에 대한 유일한 구별 정보가22035에존재한다는 것을 인식 할 수있으며, 이것이 우리가 분석해야 할 숫자입니다. 이것은 McNemar의 통찰력이었습니다. 또한 그는 null 아래에서 이항 테스트220/
비례하기 전에 예=220+131425,비례 후 예=35+131425
13220350.5 의 null 비율에 대해 ( 220 + 35 ) . (카이 제곱으로 분배되는 동등한 공식이 있으며, 이것이출력됩니다.) 220/(220+35).5R

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.6627chi-squared = 134.215713=2850=1425


구체적인 질문에 대한 답변은 다음과 같습니다.

  1. 올바른 분석은 McNemar의 테스트입니다 (위에서 광범위하게 논의 된 바와 같이).
  2. 이 버전은 더 까다 롭고 "한 감염의 비율이 높을수록 Y의 비율이 높음"이라는 문구가 모호합니다. 가능한 두 가지 질문이 있습니다.

    • 감염 중 하나에 감염된 환자가 다른 것에 감염되는 경향이 있는지 알고 싶어하는 것이 합리적입니다.이 경우 카이 제곱 독립 검사를 사용할 것입니다. 이 질문은 두 가지 다른 감염에 대한 감수성이 독립적인지 (아마도 다른 생리 경로를 통해 수축되기 때문에) 그렇지 않은지 (아마도 일반적으로 약화 된 면역 체계로 인해 수축 됨) 묻습니다.
    • 동일한 비율의 환자가 두 가지 감염을 모두 일으키는 경향이 있는지 아는 것도 완벽하게 합리적입니다. 여기서의 질문은 감염이 동등하게 치명적인 지에 관한 것입니다.
  3. 이것은 다시 한 번 같은 감염이기 때문에 관련이 있습니다. 나는이 버전이 치료 전후가 아니라 일부 시점에 있다는 것을 수집한다. 따라서 백그라운드 감염률이 유기적으로 변하고 있는지를 묻는 것입니다. 이는 다시 완전히 합리적인 질문입니다. 어쨌든 올바른 분석은 McNemar의 테스트입니다.
    편집 : 아마 오타로 인해 세 번째 질문을 잘못 해석 한 것 같습니다. 이제는 두 개의 다른 시점에서 두 개의 다른 감염으로 해석합니다. 이 해석 하에서 카이 제곱 테스트가 적합합니다.

@Alexis 내가 알아낼 수있는 한, 당신과 궁은 서로 과거를 말하는 것 같습니다. 소위 "비쌍"또는 "독립 샘플"t- 검정 또는 "단방향"또는 "독립 샘플 ANOVA"조차 실제로 gung의 의미에서 쌍으로 된 데이터를 필요로합니다. 각 주제에 대해 범주 그룹을 모두 기록해야합니다. 회원 변수연속 결과 변수 . (그룹 멤버쉽 변수에 2 개의 수준이있는 경우 일반적으로 쌍을 이루지 않은 t- 검정을 사용합니다. 3+ 수준의 경우 일원 분산 분석이 필요합니다).
Silverfish

2
어떤 테스트를 사용해야하는지 설명 할 때 두 가지 방법을 모두 보여줍니다. 각 변수마다 연속 변수에 대한 관측치가 있고 2 개 (또는 3+) 그룹의 개체가 있고 그 차이에 관심이있는 경우 그런 다음 독립 표본 t- 검정 (또는 일원 분산 분석)을 사용합니다. 그런 다음 데이터 테이블을보고 선택을 확인하십시오. 각 주제에 대해 그룹 멤버쉽 카테고리와 연속 변수의 가지 정보가 있습니다. 우리는 심지어 상황을 바꿀 수 있고 t- 테스트는 이진 변수와 연속 변수 사이 의 연관성 테스트라고 말합니다 .
Silverfish

2
각 대상에 대해 서로 다른 조건에서 두 번 (또는 3 개 이상의) 연속 판독 값을 가지고 있고 조건 간 차이를 테스트하려는 경우 쌍으로 된 t- 검정 (또는 상관 된 샘플 ANOVA)이 사용됩니다. 이것은 다른 의미에서 "페어링"됩니다. 그러나이 질문에는 각 주제에 대해 두 가지 범주 형 변수가 기록되어 있습니다. 데이터 테이블을 보면 이러한 범주 형 변수의 기록 된 값이 쌍을 이루어야합니다. 그러나 이것이 연구 설계 자체가 쌍을 이루고 있다는 것을 의미 하지는 않습니다 . 이것은 혼란 스러워요. 그러나 연구 설계를 알고 있다면이를 해결할 수 있습니다 (alexis 메모)
Silverfish

@Silverfish 각 주제에 대해 두 개의 관측치 (동일한 공칭 변수)가있는 경우, 어떤 의미에서 쌍을 이루는 디자인이 아닙니까?
Alexis

1
@Alexis 그것은 "동일한 변수"의 핵심이며 혼란 스럽습니다. 다른 조건이나 다른 시간에도 불구하고 동일한 변수를 나타내는 것을 알 수 있지만 데이터 테이블을 배치하는 방법에 따라 다른 변수 (예 : 별도의 "이전"과 "이후")로 기록 된 것처럼 보일 수 있습니다. 변하기 쉬운).
실버 피쉬

22

글쎄, 내가 이것의 해시를 만든 것 같습니다. 이것을 다른 방식으로 다시 설명해 보도록하겠습니다. 문제를 해결하는 데 도움이되는지 살펴 보겠습니다.

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

이 시점에서 데이터에 대해 어떤 질문을하고 싶은지 알아내는 것이 중요합니다. 여기에 세 가지 다른 질문이 있습니다.

  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 

내가 말했듯이, 많은 교과서에서 논의 된 전통적인 접근 방식은 데이터의 "페어링"여부에 따라 사용할 테스트를 결정하는 것입니다. 그러나 이것은 매우 혼란 스럽습니다.이 우발 사태 테이블이 "페어링"되었습니까? 미국 통계와 영국 통계 학자 사이의 고혈압 비율을 비교하면 다른 사람들 집합에서 측정 한 두 비율 (동일한 변수 임)을 비교하는 것입니다. 반면에 고혈압의 비율과 미국의 비율을 비교하려면 동일한 사람 집합에서 측정 한 두 가지 비율 (다른 변수 임에도 불구하고)을 비교합니다. 이 데이터는 모두(데이터의 다른 측면과 관련하여) 동시에 "페어링 된"및 "페어링되지 않은". 이것은 혼란을 초래합니다. 이 혼란을 피하기 위해, 나는 당신이 어떤 질문을하는지 생각해야한다고 주장합니다. 특히 알고 싶은 경우 :

  1. 변수가 독립적 인 경우 : 카이 제곱 검정을 사용하십시오.
  2. 고혈압 비율이 국적에 따라 다른 경우 : 비율 차이에 대해 z- 검정을 사용하십시오.
  3. 한계 비율이 동일한 경우 : 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의 검정 (또는 수동으로 계산 된 정확한 이항 검정)이 정확합니다. 불법적으로 데이터를 두 번 사용하지 않고 관련 정보 만 사용합니다. 데이터에 적합한 결과를 산출하는 것만으로는 불가능합니다.

우발 사태 테이블이 "페어링"되어 있는지 여부를 파악하는 것은 도움이되지 않는다고 계속 믿고 있습니다. 데이터를 묻는 질문과 일치하는 테스트를 사용하는 것이 좋습니다.


1
당신은 내 투표를 얻었다. :)
Alexis

11

χ2χ2


χ2

예를 들어, 미국의 통계 학자 20 명과 영국의 통계 학자 37 명의 독립된 독립 표본이있을 수 있으며 이러한 통계학자가 고혈압인지 정상 혈압인지 측정 할 수 있습니다. 귀무 가설은 영국과 미국 통계 학자 모두 고혈압 일 확률이 동일하다는 것입니다 (즉, 미국 또는 영국 출신인지 알면 고혈압 가능성에 대해서는 아무 것도 알려주지 않음). 물론 각 그룹에서 동일한 샘플 크기를 가질 수 있지만 샘플이 독립적이라는 사실을 변경하지는 않습니다 (예 : unpaired ).


χ2

예를 들어, 당신은 할 수 개별적으로 일치 (30 개) 통계 국제 통계 회의에서 샘플링 환자 - 대조군 연구 자료 개별적으로 나이, 성별, BMI 및 흡연 상태에 일치 고혈압 (컨트롤없이 고혈압 (건) 30 개 통계를 영국의 전문 거주지 대 다른 거주지에 대해 소급하여 평가됩니다. null은 영국의 경우에 거주 할 확률이 영국에 거주 할 확률과 통제권이 같다는 것입니다 (즉, 고혈압 상태에 대해 아는 것은 자신의 영국 거주 이력에 대해 아무 것도 알려주지 않음).

아르 자형에스χ2=[(아르 자형에스)1]2(아르 자형+에스)있습니다 불협화음 쌍 카운트 .

Anto는 귀하의 예에서 데이터가 쌍을 이루고 (동일한 주제에서 동일한 변수가 두 번 측정 됨) 따라서 McNemar의 테스트가 연관성 테스트에 적합한 선택입니다.

[궁수와 나는 이전 답변에 대해 한동안 동의하지 않았다.]

인용 된 인용문
"비율을 비교하는 데 여전히 관심이 있다고 가정 할 때, 데이터가 독립적이 아닌 쌍을 이루면 어떻게 할 수 있습니까? ...이 상황에서 우리는 McNemar의 검정을 사용합니다."–Patano and Gauvreau, Biostatistics의 원리 , 2nd 개정판, 349 페이지. [ 강조 추가 ]

"표현식은 McNemar 정합 쌍 검정 통계량 (McNemar, 1949) 으로 더 잘 알려져 있으며 정합 쌍 분석 의 주류였습니다 ."— Rothman, Greenland, & Lash. 현대 역학 , 286 쪽. [ 강조 추가 ]

"페어링 된 t 검정 및 반복 분산 분석 측정 값을 사용하여 연구중인 변수를 구간 척도로 측정 할 수있는 실험을 분석 할 수 있습니다 (모수 방법에 필요한 다른 가정을 충족 함). 실험과 유사한 실험은 어떻습니까? 결과가 측정되는 제 5 장에서 공칭 개인이 치료에 반응할지 여부를 묻는 경우 또는 분류 된 양 또는 음의 두 개의 서로 다른 진단 테스트의 결과를 비교할 때 규모?이 문제는 자주 발생 같은 개인의를 우리는 그러한 연구 중 하나에서 맥네 마르의 변화대한 시험 인 이러한 실험을 분석하는 절차를 개발할 것입니다 . "— Glanz, Biostatistics Primer, 7th edition, 200 페이지 . [ 강조 표시됨 . Glanz는 우발 사례의 예를 통해 우발 사태 표를 사용합니다.χ2 201 페이지의 페어링 된 데이터로 테스트하십시오.]

" 사례 당 하나의 대조군과 일치하는 사례-대조군 데이터의 경우 결과 분석이 간단하고 적절한 통계 검정은 McNemar의 카이 제곱 검정입니다 ... 승산 비와 통계량의 계산에 있어 유일한 기여자는 노출되는 다른 쌍은 , 즉 인 경우가 노출되지만 제어 아니었다, 제어가 노출되지만 경우가 아니었다 여기서 그 "-. 엘우드. 역학 연구 및 임상 시험에 대한 비판적 평가 , 1 판, 189–190 쪽. [ 강조 추가 ]


7

McNemar의 테스트에 대한 나의 이해는 다음과 같습니다. 중재가 이진 결과에 큰 영향을 미쳤는지 확인하는 데 사용됩니다. 귀하의 예에서, 피험자 그룹의 감염 여부를 검사하고 응답이 예 또는 아니오로 기록됩니다. 그런 다음 모든 대상체에게 약간의 개입이 주어집니다 (항생제). 그런 다음 감염 여부를 다시 확인하고 응답을 다시 예 / 아니요로 기록합니다. 응답 쌍은 연속성 테이블에 넣을 수 있습니다.

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

그리고 McNemar의 테스트가 이것에 적합 할 것입니다.

표에서 '아니오'에서 '예'(35 / (1157 + 35) 또는 2.9보다 '예'에서 '아니오'(220 / (220 + 13) 또는 94.4 %)로 전환 한 사람이 더 많았습니다. %). 이러한 비율을 고려하면 McNemar의 P 값 (4.901e-31)이 카이 제곱 P 값 (0.04082)보다 더 정확합니다.

연속성 표가 2 개의 다른 감염을 나타내는 경우 (질문 2) Chi-square가 더 적합합니다.

세 번째 질문은 모호합니다. 먼저 t2의 Y와 t1의 Y를 관련 시키지만 표에 t1의 'X'와 t2의 Y를 쓰십시오. t2의 Y 대 t1의 Y는 첫 번째 질문과 동일하므로 McNemar의 테스트가 필요하지만 t1의 X와 t2의 Y는 다른 이벤트가 비교되고 있음을 나타내므로 카이 제곱이 더 적합합니다.

편집 : 의견에서 Alexis가 언급했듯이 일치하는 사례 제어 데이터도 McNemar의 테스트로 분석됩니다. 예를 들어, 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      

암환자가 감염과 통제를하지 않은 경우가 훨씬 더 많았다는 것을 보여줍니다. 그 의미는 McNemar의 테스트로 테스트 할 수 있습니다.

이러한 환자와 대조군이 일치하지 않고 독립적 인 경우 다음 표만 작성하고 카이 제곱 검사를 수행 할 수 있습니다.

            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

그것은 McNemar의 테스트에서 '마진 빈도'와 '마진 동질성'과 같은 용어를 사용하는 이유 여야합니다.

흥미롭게도 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수행 McNemar 시험의 변형 ( https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3716987/ )은 흥미 롭습니다. 그것은 비교표 bc비교표, 즉 예에서 아니오로 변경된 숫자 대 아니오에서 예로 변경된 숫자 (연구를 통해 예 또는 아니오로 남아있는 사람들의 수는 무시)와 비교합니다. https://gist.github.com/kylebgorman/c8b3fb31c1552ecbaafb에 표시된 것처럼 파이썬에서 이항 테스트를 사용하여 수행 할 수 있습니다

그것은에 해당 될 수있는 binom.test(b, b+c, 0.5)임의의 변화, 하나의 기대 때문에 b동일하게 c.


3
중재 분석뿐만 아니라 관찰 된 의미로 일치하는 사례-제어 데이터를 분석하는데도 사용됩니다.
Alexis

Q3에 대한 테이블 이전의 설명 / 설정을 감안할 때 "X"가 오타라고 생각하지만 잘 잡히고 스레드 +1에 유용한 기여입니다.
gung-복직 모니카

@mso 편집 Q3. t1에서 X입니다! 그렇지 않으면 Q1과 다르지 않습니다. 이 Q는 1 년이 넘었고 누군가 나를 혼란스럽게했던 같은 생각으로 다시 돌아 오는 것을보고 놀랐습니다. 많은 관심과 함께!
Anto

사과합니다, OP는 3 분기를 명확히했습니다. 아마도 그것은 2 가지 시간에 2 가지 질병입니다. 다시 한 번 잘 잡는다.
gung-복직 모니카
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.