통계 초보자를 위한 카이제곱 독립성 검정 가이드: 두 변수는 서로 관련이 있을까?
카이제곱 독립성 검정이란 무엇인가?
카이제곱 독립성 검정(Chi-square test of independence)은
모집단이 두 개의 범주형 변수 A와 B에 의해 분류되었을 때, 이 두 변수 사이에 통계적으로 유의한 관계가 존재하는지를 검정하는 방법입니다.
즉, 두 변수 중 하나가 다른 하나와 서로 독립적으로 관측값에 영향을 미치는지,
아니면 두 변수 사이에 **연관성(종속성)**이 있는지를 판단하기 위한 검정입니다.
이 검정은 교차표(contingency table)를 기반으로 수행되며,
이 때문에 흔히 교차표 카이제곱 검정 또는 이원 카이제곱 검정이라고도 불립니다.
언제 카이제곱 독립성 검정을 사용할까?
카이제곱 독립성 검정은 다음과 같은 상황에서 사용됩니다.
- 분석 대상이 두 개의 범주형 변수일 때
- 두 변수의 조합을 교차표 형태로 정리할 수 있을 때
- 각 관측값이 서로 독립적으로 수집되었을 때
- 두 변수 사이의 연관 여부를 판단하고자 할 때
예를 들어 성별과 제품 선호도, 지역과 투표 성향, 학력과 취업 여부 등의 관계를 분석할 때 활용됩니다.
가설 설정
카이제곱 독립성 검정의 가설은 다음과 같이 설정됩니다.
- 귀무가설(H0): 두 변수 사이에는 연관이 없다. (서로 독립이다.)
- 대립가설(H1): 두 변수 사이에는 연관이 있다. (서로 독립이 아니다.)
귀무가설이 참이라면,
한 변수의 범주 분포는 다른 변수의 범주와 무관하게 나타납니다.
예시로 이해해보기
제품 1, 제품 2, 제품 3에 대해
여성과 남성의 판매량이 다음과 같다고 가정해봅시다.
- 여성 구매 수량: 269, 83, 215
- 남성 구매 수량: 155, 57, 181
이때 성별과 제품 유형 사이에
통계적으로 유의한 연관성이 있는지 검정해보고자 합니다.
이를 위해 성별과 제품 유형을 기준으로 교차표를 구성한 뒤,
카이제곱 독립성 검정을 수행합니다.
Python 코드 예시
아래는 SciPy를 사용하여 카이제곱 독립성 검정을 수행하는 예시 코드입니다.
from scipy.stats import chi2_contingency
xf = [269, 83, 215] # 여성 판매량
xm = [155, 57, 181] # 남성 판매량
chi2, p, dof, expected = chi2_contingency([xf, xm])
msg = 'Test Statistic: {}\np-value: {}\nDegree of Freedom: {}'
print(msg.format(chi2, p, dof))
print(expected)
출력 결과의 의미
카이제곱 독립성 검정의 결과에는 다음 정보가 포함됩니다.
- Test Statistic (카이제곱 통계량): 관측값과 기대값 간의 차이를 수치로 표현
- p-value: 두 변수가 독립이라는 가정하에 현재 결과가 나타날 확률
- Degree of Freedom (자유도): (행의 수 − 1) × (열의 수 − 1)
- expected: 두 변수가 독립이라고 가정했을 때의 기대 빈도표
결과 해석 방법
p-value를 기준으로 다음과 같이 해석합니다.
-
p-value ≥ 0.05
→ 두 변수 사이에 통계적으로 유의한 연관성이 있다고 보기 어렵다
→ 귀무가설을 기각할 수 없음 -
p-value < 0.05
→ 두 변수 사이에 통계적으로 유의한 연관성이 있다
→ 귀무가설을 기각
즉, p-value가 충분히 작다면
두 변수는 서로 독립적이라고 보기 어렵다고 판단합니다.
사용할 때 주의할 점
카이제곱 독립성 검정을 사용할 때는 다음 사항을 함께 고려해야 합니다.
- 기대 빈도(expected)가 너무 작은 셀이 많으면 결과 신뢰도가 낮아질 수 있음
- 일반적으로 기대 빈도는 각 셀마다 5 이상이 권장됨
- 표본이 충분히 크지 않다면 다른 검정 방법을 고려해야 할 수 있음
마무리하며
카이제곱 독립성 검정은
두 범주형 변수 사이의 관계를 가장 직관적으로 확인할 수 있는 방법입니다.
교차표를 통해 데이터를 구조화하고,
그 분포가 우연인지 아닌지를 검정함으로써
데이터에 숨겨진 관계를 보다 명확하게 이해할 수 있습니다.