카이제곱 검정 (Chi-Square Test)

data-yeon·2025년 3월 2일

Data Science

목록 보기
10/10

통알못을위한 통계튜브-카이제곱검정
카이제곱 검정(Chi-Square Test)은 범주형 데이터 간의 연관성을 분석하는 데 사용되는 통계적 검정 방법이다. 주어진 범주형 변수들이 독립적인지, 특정 분포를 따르는지 등을 검정할 수 있다.


  1. 카이제곱 검정 종류

카이제곱 검정에는 주로 두 가지 유형이 있다.

1) 적합성 검정 (Goodness-of-Fit Test)

  • 특정 범주형 데이터가 기대되는 분포를 따르는지 검정
  • 예: 주사위를 100번 던졌을 때 각 눈금이 균등하게 나왔는지 확인

2) 독립성 검정 (Test for Independence)

  • 두 개의 범주형 변수가 서로 독립적인지 검정

  • 예: 성별과 제품 선호도 간의 연관성 분석


  1. 카이제곱 검정 가정
    1. 데이터는 범주형이어야 한다.
    2. 각 셀(범주)에서 기대 빈도가 5 이상이어야 한다.
    3. 표본은 독립적이어야 한다.


  2. 카이제곱 검정 통계량

    카이제곱 검정에서 사용되는 검정 통계량(χ²)(χ²)은 다음과 같이 계산된다.

χ2=(OiEi)2Ei\chi^2 = \sum \frac{(O_i - E_i)^2}{E_i}

  • OiO_i : 관찰된 값(Observed frequency)

  • EiE_i : 기대값(Expected frequency)

    카이제곱 값이 클수록 관찰값과 기대값의 차이가 크다는 의미이며, 유의수준(α)(α)과 비교하여 귀무가설을 기각할지 결정한다.


  1. 카이제곱 검정의 귀무가설과 대립가설
    • 귀무가설(H)(H₀): 두 범주형 변수는 독립적이다.
    • 대립가설(H)(H₁): 두 범주형 변수는 독립적이지 않다 (즉, 연관성이 있다).


  2. 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("귀무가설 채택: 성별과 제품 선호도는 독립적이다.")
    		```	

  1. 카이제곱 검정 결과 해석
    pvalue<0.05p-value < 0.05 → 귀무가설 기각 → 두 변수 간 연관성이 있음
    pvalue0.05p-value ≥ 0.05 → 귀무가설 채택 → 두 변수는 독립적임

카이제곱 검정은 범주형 변수 간의 관계를 분석하는 데 유용하지만, 데이터의 크기와 기대 빈도를 고려해야 한다.

profile
잘 갔다 오란다고 잘 갔다 올 수 있는 곳이 아니야

0개의 댓글