Chi-squared test는 관측된 빈도와 기대되는 빈도 간의 차이를 측정하여 두 변수 간의 독립성이나 분포의 적합성을 평가하는 통계적 방법이다. 이 검정은 주로 범주형 데이터에 적용되며, 관측된 데이터가 기대되는 분포와 얼마나 일치 하는지를 평가하는 방법이다.
관측된 범주형 데이터 분포가 특정한 이론 분포를 따르는지 검정한다.
import scipy.stats as stats
# 예: 주사위를 60번 굴려 나온 숫자 빈도
observed = [10, 9, 11, 8, 12, 10]
expected = [10] * 6 # 균등하게 기대 (60/6)
chi2, p = stats.chisquare(f_obs=observed, f_exp=expected)
print(f"Chi2 Statistic: {chi2:.2f}, p-value: {p:.3f}")
# 해당 결과 p - value < 0.05 이면, 균등 분포라고 보기 어렵다.
두 범주형 변수 간의 상관성과 독립성을 검정한다.
import pandas as pd
import scipy.stats as stats
# 예: 성별과 구매여부 간 관계
data = pd.DataFrame({
'구매': [30, 20],
'비구매': [70, 80]
}, index=['남성', '여성'])
chi2, p, dof, expected = stats.chi2_contingency(data)
print(f"Chi2 Statistic: {chi2:.2f}, p-value: {p:.3f}")
print("Expected frequencies:\n", expected)
# 해당 결과 p - value < 0.05 이면, 성별과 구매 여부는 독립이 아니다. (상관관계 없음)