31.카이제곱 검정(Chi-Square Test), 카이제곱 검정을 이용한 독립성 검정

카이제곱 검정은 통계학에서 빈도 데이터의 관찰값과 기대값 간의 차이를 비교하는 데 사용되는 비모수적 검정 방법입니다. 주로 범주형 데이터에서 두 변수 간의 독립성을 검토하는 데 활용됩니다.

1. 카이제곱 검정의 기본 개념

카이제곱 검정은 두 개 이상의 범주형 변수가 서로 독립적인지를 판단하기 위한 통계적 방법입니다. 주로 다음과 같은 상황에서 사용됩니다:

  • 두 범주형 변수 간의 관계를 알아보고 싶을 때
  • 설문조사 또는 실험결과에서 관찰된 빈도와 기대 빈도의 차이를 분석하고 싶을 때

카이제곱 검정의 핵심 아이디어는 관찰된 빈도와 기대 빈도 간의 차이를 계산하고 이 차이가 우연에 의한 것인지 아닌지를 판단하는 것입니다. 이를 통해 두 변수 간의 독립성을 검토할 수 있습니다.

2. 카이제곱 검정의 유형

카이제곱 검정은 일반적으로 두 가지 주요 유형으로 나누어집니다:

  • 카이제곱 독립성 검정 (Chi-Square Test of Independence): 두 범주형 변수 간의 독립성을 테스트합니다.
  • 카이제곱 적합도 검정 (Chi-Square Goodness of Fit Test): 단일 범주형 변수의 분포가 특정 분포와 일치하는지를 테스트합니다.

3. 카이제곱 독립성 검정

카이제곱 독립성 검정의 주된 목적은 두 범주형 변수 간의 관계를 탐구하는 것입니다. 예를 들어, 성별(남성/여성)과 흡연 여부(흡연/비흡연) 간의 독립성을 분석할 수 있습니다. 이를 통해 두 변수 간의 상관관계가 있는지 확인할 수 있습니다.

이 검정의 수학적 가정은 다음과 같습니다:

  • 데이터는 독립적이어야 합니다.
  • 각 셀의 기대 빈도는 5 이상이어야 하며, 그렇지 않은 경우에는 결과가 신뢰할 수 없습니다.

3.1. 카이제곱 통계량 계산

카이제곱 독립성 검정에서 카이제곱 통계량(χ²)은 다음과 같이 계산됩니다:

χ² = ∑((Oᵢ – Eᵢ)² / Eᵢ)

여기서 Oᵢ는 관찰 빈도, Eᵢ는 기대 빈도입니다. 이 값이 클수록 두 변수 간의 독립성에 대한 가설이 기각될 가능성이 높습니다.

3.2. 기대 빈도 계산

기대 빈도는 각 셀의 관찰 빈도를 기반으로 다음과 같이 계산됩니다:

E = (행 총합 × 열 총합) / 전체 샘플 크기

기대 빈도가 작을수록 관찰된 빈도와의 차이가 클 가능성이 높습니다.

3.3. 유의성 검정

카이제곱 통계량을 사용하여 유의성을 평가합니다. 주어진 유의수준(보통 0.05)과 자유도에 따라 p-값을 확인하고, p-값이 유의수준보다 작으면 귀무가설(H₀: 두 변수는 독립이다)을 기각하고, 그렇지 않으면 채택합니다.

4. 예시: 카이제곱 독립성 검정

가정해보겠습니다. 한 조사에서 남성과 여성 각 100명에게 흡연 여부를 물었습니다. 결과는 다음과 같습니다:

성별 흡연 비흡연 합계
남성 40 60 100
여성 25 75 100
합계 65 135 200

4.1. 기대 빈도 계산

각 셀에 대한 기대 빈도를 계산해 보겠습니다:

  • 남성 흡연: (100 × 65) / 200 = 32.5
  • 남성 비흡연: (100 × 135) / 200 = 67.5
  • 여성 흡연: (100 × 65) / 200 = 32.5
  • 여성 비흡연: (100 × 135) / 200 = 67.5

4.2. 카이제곱 통계량 계산

이제 카이제곱 통계량을 계산합니다:

  • χ² = ((40 – 32.5)² / 32.5) + ((60 – 67.5)² / 67.5) + ((25 – 32.5)² / 32.5) + ((75 – 67.5)² / 67.5)

계산한 결과를 통해 카이제곱 통계량을 확인합니다.

4.3. p-값 확인

자유도는 (행 수 – 1) × (열 수 – 1) = 1입니다. p-값을 확인하고 유의수준과 비교하여 귀무가설을 채택하거나 기각합니다.

5. 파이썬을 이용한 카이제곱 검정

Python의 SciPy 패키지를 사용하여 카이제곱 검정을 쉽게 계산할 수 있습니다. 아래는 예제 코드입니다:

            
import scipy.stats as stats

# 관찰된 빈도
observed = [[40, 60], [25, 75]]

# 카이제곱 검정
chi2_stat, p_val, dof, expected = stats.chi2_contingency(observed)

print(f"카이제곱 통계량: {chi2_stat}, p-값: {p_val}, 자유도: {dof}, 기대 빈도: {expected}")
            
        

이 코드를 실행하면 카이제곱 통계량, p-값, 자유도 및 기대 빈도를 지정된 형식으로 출력할 수 있습니다.

6. 결론

카이제곱 검정은 두 범주형 변수 간의 독립성을 검토하는 유용한 통계적 방법입니다. 본 강좌를 통해 카이제곱 검정의 기초 개념, 통계량 계산 방법, 그리고 Python을 이용한 실습을 소개했습니다. 카이제곱 검정을 통해 데이터 분석 및 해석의 정확성을 높이는 데 도움이 되길 바랍니다.

카이제곱 검정은 매우 유용한 도구이지만, 항상 검정 중 발생할 수 있는 가정과 제한 사항을 고려하여 결과를 해석해야 합니다. 또한, 데이터 분포와 특성을 충분히 이해하고 검정을 진행하는 것이 중요합니다.