Python에서 mcnemar 테스트를 수행하는 방법


McNemar 테스트는 쌍을 이루는 데이터 간의 비율에 통계적으로 유의미한 차이가 있는지 확인하는 데 사용됩니다.

이 튜토리얼에서는 Python에서 McNemar 테스트를 수행하는 방법을 설명합니다.

예: Python의 McNemar 테스트

연구자들이 특정 마케팅 비디오가 특정 법률에 대한 사람들의 의견을 바꿀 수 있는지 알고 싶어한다고 가정해 보겠습니다. 그들은 법을 지지하는지 여부를 알아보기 위해 100명을 대상으로 설문조사를 했습니다. 그런 다음 마케팅 영상을 100명 모두에게 보여주고 영상이 끝난 후 다시 설문조사를 실시합니다.

다음 표는 영상 시청 전과 시청 후 법을 지지한 총 인원수를 보여줍니다.

마케팅 전 영상
마케팅 후 영상 지원하다 참을 수 없어
지원하다 30 40
참을 수 없어 12 18

동영상 시청 전후에 법을 지지하는 사람들의 비율에 통계적으로 유의미한 차이가 있는지 확인하기 위해 McNemar 테스트를 수행할 수 있습니다.

1단계: 데이터를 생성합니다.

먼저 데이터를 보관할 테이블을 만듭니다.

 data = [[30, 40],
         [12, 18]]

2단계: McNemar 테스트 수행

다음으로, 다음 구문을 사용하는 Python statsmodels 라이브러리의 mcnemar() 함수를 사용할 수 있습니다.

mcnemar(배열, 정확한=True, 수정=True)

금:

  • 테이블: 정사각형 우발표
  • 정확: 정확이 참이면 이항 분포가 사용됩니다. 정확이 거짓이면 카이제곱 분포가 사용됩니다.
  • 수정: true인 경우 연속성 수정이 사용됩니다. 일반적으로 이 수정은 일반적으로 테이블 셀 수가 5개 미만일 때 적용됩니다.

다음 코드는 특정 예에서 이 함수를 사용하는 방법을 보여줍니다.

 from statsmodels.stats.contingency_tables import mcnemar

#McNemar's Test with no continuity correction
print(mcnemar(data, exact=False))

pvalue 0.000181
statistic 14.019

#McNemar's Test with continuity correction
print(mcnemar(data, exact=False, correction=False))

pvalue 0.000103
statistic 15,077

연속성 수정 적용 여부에 관계없이 두 경우 모두 테스트의 p-값은 0.05보다 작습니다.

이는 두 경우 모두 귀무가설을 기각하고 마케팅 동영상 시청 전후에 법을 지지하는 사람들의 비율이 통계적으로 다르다는 결론을 내릴 수 있음을 의미합니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다