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