카이제곱 검정(Chi-Square Test)란?
카이제곱(χ²) 검정은 범주형 데이터(categorical data)에서 기대값과 관측값 간의 차이를 분석하는 통계적 검정 방법입니다. 주로 데이터가 특정 분포를 따르는지, 변수 간의 독립성이 있는지를 확인할 때 사용됩니다.
1. 카이제곱 검정의 종류
① 적합성 검정 (Goodness-of-Fit Test)
- 한 개의 범주형 변수가 특정 분포를 따르는지 검정하는 방법
- 예: 주사위를 100번 던졌을 때, 모든 눈금이 동일한 확률로 나오는지 확인
② 독립성 검정 (Test for Independence)
- 두 개의 범주형 변수 간에 관계(독립성)가 있는지 검정하는 방법
- 예: 고객의 성별과 구매 제품 유형 간에 연관성이 있는지 분석
③ 동질성 검정 (Test for Homogeneity)
- 서로 다른 두 개 이상의 모집단이 같은 분포를 따르는지 검정하는 방법
- 예: 지역별로 선호하는 패스트푸드 브랜드에 차이가 있는지 확인
2. 카이제곱 검정의 공식
카이제곱(χ²) 통계량은 다음과 같이 계산됩니다.χ2=∑(O−E)2E\chi^2 = \sum \frac{(O – E)^2}{E}χ2=∑E(O−E)2
- OOO: 관측값(Observed frequency)
- EEE: 기대값(Expected frequency)
이 값이 카이제곱 분포를 따르는지 확인하여 유의 수준(보통 0.05) 이하일 경우 귀무가설을 기각합니다.
3. 예제
예를 들어, 한 쇼핑몰에서 남성과 여성 고객이 선호하는 제품 유형(A, B, C)이 독립적인지 검정한다고 가정하면, 다음과 같은 분할표를 만들 수 있습니다.
제품 | 남성 | 여성 | 합계 |
---|---|---|---|
A | 40 | 50 | 90 |
B | 30 | 20 | 50 |
C | 30 | 30 | 60 |
합계 | 100 | 100 | 200 |
이 데이터를 이용해 기대값을 계산하고, 카이제곱 검정을 수행하여 성별과 제품 유형이 독립적인지 확인할 수 있습니다.
4. Python을 이용한 카이제곱 검정
import scipy.stats as stats
import numpy as np
# 데이터 입력 (분할표)
obs = np.array([[40, 50], [30, 20], [30, 30]])
# 카이제곱 검정 수행
chi2, p, dof, expected = stats.chi2_contingency(obs)
print(f"카이제곱 통계량: {chi2}")
print(f"p-value: {p}")
print(f"기대값:\n{expected}")
- p-value가 0.05보다 작다면, 두 변수가 독립적이지 않다는 결론을 내릴 수 있습니다.
5. 카이제곱 검정 해석
p-value < 0.05 → 귀무가설 기각(변수 간 독립성이 없음, 즉 관계가 있음)
- p-value ≥ 0.05 → 귀무가설 채택(변수 간 독립적임)
카이제곱 검정은 특히 표본 크기가 충분히 클 때 신뢰할 수 있는 결과를 제공합니다.