1) 카이제곱검정이란?
카이제곱검정
- 범주형 데이터 표본 분포가 모집단 분포와 일치하나 검정(적합도 검정)
- 두 범주형 변수 간 독립성 검정(독립성 검정)
적합도 검정
- 관찰된 분포와 기대된 분포가 일치하는지 검정.
- p값이 높음, 데이터가 귀무 가설에 잘 맞음. 즉, 관찰된 데이터와 귀무가설이 적합
- p값이 낮음, 데이터가 귀무 가설에 잘 맞지 않음. 즉, 관찰된 데이터와 귀무가설이 부적합
독립성 검정
- 두 범주형 변수 간 독립성 검정.
- p값이 높으면 두 변수간 관계 연과성 없음 => 독립성 있음
- p값이 낮으면 두 변수간 관계 연과성 있음 => 독립성 없음
2) 카이제곱검정 어떻게 사용되나?
범주형 데이터의 분포 확인 및 독립성 확인을 위해 사용
- 주사위의 각 면이 동일한 확률로 나오는지 검정(적합도 검정)
- 성별과 직업 만족도 간의 독립성 검정(독립성 검정)
observed = [20, 30, 25, 25]
expected = [25, 25, 25, 25]
chi2_stat, p_value = stats.chisquare(observed, f_exp=expected)
print(f"적합도 검정 카이제곱 통계량: {chi2_stat}, p-값: {p_value}")
observed = np.array([[10, 10, 20], [20, 20, 40]])
chi2_stat, p_value, dof, expected = stats.chi2_contingency(observed)
print(f"독립성 검정 카이제곱 통계량: {chi2_stat}, p-값: {p_value}")
observed = np.array([[30, 10], [20, 40]])
chi2_stat, p_value, dof, expected = stats.chi2_contingency(observed)
print(f"독립성 검정 카이제곱 통계량: {chi2_stat}, p-값: {p_value}")

stats.chisquare 함수란?
scipy.stats.chisquare 함수는 카이제곱 적합도 검정을 수행하여 관찰된
빈도 분포가 기대된 빈도 분포와 일치하는지 평가함.
이 검정은 주로 단일 표본에 대해 관찰된 빈도가 특정 이론적 분포
(ex:균등분포)와 일치하는지 확인하는데 사용.
- 반환값
- chi2 : 카이제곱 통계량
- p: p-값임. 관찰된 데이터가 귀무 가설하에서 발생할 확률.
stats.chi2_contingency 함수란?
- `scipy.stats.contingency 함수는 카이제곱 검정을 수행하여 두 개 이상의
범주형 변수 간의 독립성을 검정. 관측 빈도를 담고 있는 교차표(contigency table)을 입력받아 카이제곱 통계량,p-값,자유도,그리고 기대 빈도(expected frequencies)를 반환함.
- 반환 값
- dof: 자유도. 이는 (행의수 -1) * ( 열의 수 -1)로 계산됨.
- expected: 기대 빈도. 행 합계와 열 합계를 사용하여 계산된 이론적 빈도임.