통알못을위한 통계튜브-카이제곱검정
카이제곱 검정(Chi-Square Test)은 범주형 데이터 간의 연관성을 분석하는 데 사용되는 통계적 검정 방법이다. 주어진 범주형 변수들이 독립적인지, 특정 분포를 따르는지 등을 검정할 수 있다.
카이제곱 검정에는 주로 두 가지 유형이 있다.
1) 적합성 검정 (Goodness-of-Fit Test)
2) 독립성 검정 (Test for Independence)
두 개의 범주형 변수가 서로 독립적인지 검정
예: 성별과 제품 선호도 간의 연관성 분석
카이제곱 검정 가정
1. 데이터는 범주형이어야 한다.
2. 각 셀(범주)에서 기대 빈도가 5 이상이어야 한다.
3. 표본은 독립적이어야 한다.
카이제곱 검정 통계량
카이제곱 검정에서 사용되는 검정 통계량은 다음과 같이 계산된다.
: 관찰된 값(Observed frequency)
: 기대값(Expected frequency)
카이제곱 값이 클수록 관찰값과 기대값의 차이가 크다는 의미이며, 유의수준과 비교하여 귀무가설을 기각할지 결정한다.
카이제곱 검정의 귀무가설과 대립가설
• 귀무가설: 두 범주형 변수는 독립적이다.
• 대립가설: 두 범주형 변수는 독립적이지 않다 (즉, 연관성이 있다).
Python을 활용한 카이제곱 검정 예제
(1) 적합성 검정 예제
예제: 한 가게에서 각 요일별 방문자 수가 동일한지 확인
import numpy as np
import scipy.stats as stats
# 요일별 실제 방문자 수 (관측값)
observed = np.array([50, 55, 45, 60, 40, 50, 65])
# 기대 방문자 수 (균등 분포 가정)
expected = np.full(len(observed), np.mean(observed))
# 카이제곱 검정 수행
chi2_stat, p_value = stats.chisquare(observed, expected)
print(f"Chi-Square Statistic: {chi2_stat:.4f}")
print(f"P-value: {p_value:.4f}")
# 결과 해석
alpha = 0.05
if p_value < alpha:
print("귀무가설 기각: 요일별 방문자 수는 균등하지 않다.")
else:
print("귀무가설 채택: 요일별 방문자 수는 유의미한 차이가 없다.")
(2) 독립성 검정 예제
예제: 성별(남성, 여성)과 제품 선호도(A, B, C)가 독립적인지 검정
import pandas as pd
import scipy.stats as stats
# 관찰된 데이터 (성별과 제품 선호도)
observed = np.array([[30, 10, 20], # 남성
[40, 20, 10]]) # 여성
# 카이제곱 검정 수행
chi2_stat, p_value, dof, expected = stats.chi2_contingency(observed)
print(f"Chi-Square Statistic: {chi2_stat:.4f}")
print(f"P-value: {p_value:.4f}")
print(f"Expected Frequencies: \n{expected}")
# 결과 해석
alpha = 0.05
if p_value < alpha:
print("귀무가설 기각: 성별과 제품 선호도 간에는 연관성이 있다.")
else:
print("귀무가설 채택: 성별과 제품 선호도는 독립적이다.")
```
카이제곱 검정은 범주형 변수 간의 관계를 분석하는 데 유용하지만, 데이터의 크기와 기대 빈도를 고려해야 한다.