🖇 카이제곱 분포
🖇 카이제곱 검정
🖇 카이제곱 검정 방식
ADP 빅분기 이론과 Python 모듈, 실습코드 정리 - 통계편
기초통계를 가르쳐 주신 임정 강사님의 블로그 글이 큰 도움이 되어서 남겨 두었다. 말씀해 주신 것처럼 즐겨찾기 해두고 두고두고 참고해야겠다 :)
A/B 테스트, 설문조사, 마케팅 실험처럼 데이터 분석이 실제 비즈니스에 적용될 때 수치 데이터보다 범주형 데이터가 훨씬 자주 등장한다.
예를 들어
"성별에 따라 흡연률이 다른가?", "요일별 고객 수가 균형적인가?", "광고 채널별 고객 반응은 예산 비율에 맞는가?"와 같은 질문에서는 단순 수치의 크기보다 집단 간 비율의 차이에 중점을 두어야 한다. 이때 사용되는 것이 카이제곱 분포와 카이제곱 검정이다.
카이제곱 검정은 수많은 범주형 변수 간 관계를 검증하는 데 활용되며, 특히 모집단의 분포 가정 없이 사용할 수 있다는 점에서 대표적인 비모수 검정이다.
이 글에서는 수식보다는 통계적 해석의 관점에서 정리해 보았다.
카이제곱 분포(Chi-square distribution, 𝜒²)는 통계학에서 범주형 데이터의 검정에 가장 널리 쓰이는 분포 중 하나다.
이는 서로 다른 개의 독립적인 정규분포를 제곱하여 합산한 분포로, 수식은 다음과 같다.
여기서 는 각각 평균 0, 분산 1인 정규분포를 따른다.
카이제곱 분포는 관측 값과 기대 값의 차이를 측정하는 데 사용된다.
카이제곱 검정( test)은 관측 값과 기대 값의 차이를 측정하여 통계적으로 유의미한지를 검정한다.
카이제곱은 분포에 대한 가정이 없어 정규분포일 필요가 없는 대표적인 비모수 검정이지만,
카이제곱 검정은 각 셀의 기대 값이 5 이상이어야 한다는 조건이 있다. 만약 기대값이 너무 작으면 검정 결과의 신뢰도가 낮아지므로, 이 경우에는 Fisher의 정확 검정(Fisher’s Exact Test) 등의 대안을 사용해야 한다.
카이제곱 통계량(Chi-square statistic, )은 실제 관측된 데이터와 기대하는 데이터 간의 차이를 통계적으로 측정한 값이다.
실제 값(관측 값, )과 기대 값()의 차이가 크면 이 커지고, 차이가 작으면 이 작아진다.
즉, 기대 값과 실제 값이 얼마나 다른지를 수치로 표현한 것이다.
값은 카이제곱 분포를 따라가며,
이 값을 기반으로 P-value를 계산해서 귀무가설을 기각할지 말지를 판단한다.
💡 Q. 왜 (O-E)²를 기댓값으로 나누어 정규화할까?
카이제곱 검정에서 확인하고자 하는 바는 관측 값이 기대 값보다 얼마나 차이나는 가이다.
따라서 기대 값이 클 경우 조금의 오차가 있더라고 자연스러운 것으로 간주하고, 기대 값이 작을 경우 작은 차이도 민감하게 반응하도록 설계한 것이다.
즉, 차이를 상대적 관점에서 정규화하여 판단하게 된다.
💡 Q. 왜 관측 값과 기대 값의 차에 제곱을 관리할까?
단순 차이를 더하면 양/음이 상쇄될 수 있고,
절댓값은 미분이 어렵기 때문에 제곱을 사용한다.
또한, 1의 차이에 대한 제곱과 10의 제곱에 대한 차이의 제곱은 후자가 더 크기 때문에, 더 많은 변화에 패널티를 주어 강조할 수 있다.
카이제곱 통계량을 활용하는 세 가지 대표 검정 방식이다.
| 종류 | 설명 | 예시 |
|---|---|---|
| 적합도 검정 | 1차원 분포가 기대 분포와 일치하는가 | 요일별 방문 비율 |
| 독립성 검정 | 두 변수 간 독립 여부 판단 | 성별과 흡연 |
| 동질성 검정 | 여러 집단 간 분포 비교 | 학교별 과목 선호 |
적합도 검정은 관측된 데이터가 어떤 기대 분포와 얼마나 잘 맞는지를 확인하는 검정이다.
아래는 한 상점의 요일별 방문 비율에 대해 기존에 주장된 비율(기대 값)과 실제로 관측된 방문 수(관측 값)를 정리한 표이다.
| 월요일 | 화요일 | 수요일 | 목요일 | 금요일 | 토요일 | 합계 | |
|---|---|---|---|---|---|---|---|
| 주장하는 방문 비율(%) | 10 | 10 | 15 | 20 | 30 | 15 | 100 |
| 관측한 방문 수(명) | 30 | 14 | 34 | 45 | 57 | 20 | 200 |
| 기대 방문 수(명) | 200*0.1 | 200*0.1 | 200*0.15 | 200*0.2 | 200*0.3 | 200*0.15 | 200 |
카이제곱 통계량 계산
관측된 값과 기대값 간의 차이가 통계적으로 유의미한지를 판단하기 위해 카이제곱 통계량을 구하고, 그에 따른 p-value를 분석한다.
이는 관측값과 기대값의 차이를 제곱한 뒤, 기대값으로 나누어 모든 범주에 대해 합산한 카이제곱 적합도 검정의 대표적인 형태이다.
또 다른 예시로 광고 채널별 고객 유입에서 적합도 검정을 사용한다면, 기존 설정(예산 분배 기준 등)과 실제 고객 유입이 차이가 있는지 검정하여 마케팅 예산 재편성의 통계적 근거로 활용하는 것도 가능하다.
독립성 검정과 동질성 검정은 모두 범주형 데이터 분석에서 활용되며,
사용되는 수식도 동일하게 카이제곱 통계량을 기반으로 하지만, 검정 목적과 데이터 구성 방식이 다르다.
| 항목 | 독립성 검정 | 동질성 검정 |
|---|---|---|
| 사용 목적 | 두 범주형 변수 간 연관성이 있는지 검정 | 여러 집단 간 분포가 동일한지 검정 |
| 귀무가설(H₀) | 두 변수는 서로 독립이다 | 각 집단의 분포는 서로 동일하다 |
| 데이터 구조 | 하나의 표본 → 두 변수 교차표 생성 | 여러 집단 → 각 집단의 관측값 비교 |
| 예시 | 성별과 흡연 여부는 독립인가? | 지역별 코로나 백신 접종률 분포는 동일한가? |
아래에서 예시를 통해 비교해 보자.
연구 질문: 성별과 흡연 여부는 관계가 있을까?
- 표본: 1,000명의 응답자
- 변수1: 성별 (남성 / 여성)
- 변수2: 흡연 여부 (흡연 / 비흡연)
이 경우, 하나의 모집단에서 두 범주형 변수를 동시에 조사하여 두 변수 사이의 독립성 여부를 검정하는 것이다.
연구 질문: 서울, 부산, 광주 세 지역의 백신 접종 분포는 동일할까?
- 표본: 지역별로 모집한 세 집단 (서울 100명, 부산 100명, 광주 100명)
- 범주: 백신 접종 여부 (1차만 접종 / 2차까지 접종 / 미접종)
이 경우, 서로 다른 집단 간의 분포를 비교하여 백신 접종 유형의 동질성 여부를 검정한다.
정리하자면
둘 다 교차표를 기반으로 카이제곱 통계량을 계산하지만, 해석의 초점이 다르기 때문에 목적에 따라 질문을 명확히 설정하는 것이 중요하다.
다음 글에서 카이제곱 검정의 적합도 검정을 비롯해 독립성 검정, 동질성 검정까지 직접 시뮬레이션해 볼 예정이다.
지금까지 살펴본 카이제곱 검정을 정리해 보자.
카이제곱 검정은 범주형 데이터 분석에서 핵심적인 비모수 검정 도구로서, 기대값과 관측값의 차이를 기반으로 적합성, 독립성, 동질성을 평가할 수 있다.
정규성 가정이 필요 없고, 데이터 수가 충분할 경우 신뢰도 높은 검정 결과를 제공한다.
"내가 관측한 결과가, 정말로 기대한 것과 다른가?"
그리고 이 질문에 답해주는 것이 관측 값, 기대 값, 그리고 χ² 통계량과 자유도라는 것까지 살펴보았다.
관측 값과 기대 값의 차이를 단순히 비교하지 않고, 기대 값으로 정규화하여 상대적으로 판단한다는 점이 인상적이다.
단지 데이터가 다르게 보인다고 해서 결론을 내리는 것이 아니라, 통계적 기준(p-value와 자유도)을 통해 귀무가설을 검정할 수 있다는 점이 카이제곱 검증의 핵심이라고 생각한다.