2025년 2학기 계량분석 강의자료

6주차: 카이제곱(χ²) 검정

카이제곱 적합도 검정


1. 카이제곱 검정 개요

📌 쉽게 말해:

“학생 성적 분포가 원래와 같은 비율대로 나왔을까, 아니면 달라졌을까?”


2. 적합도 검정 예제

문제:
지난 학기 학점 비율: A=20%, B=30%, C=50%
→ 이러닝 도입 후 200명 성적: A=54, B=48, C=98
5% 유의수준에서 차이가 있는지 검정

(1) 가설 설정

(2) 기대빈도(E) 계산

(3) 카이제곱(χ²) 계산

공식:

$$\chi^2 = \sum \frac{(O - E)^2}{E}$$

대입:

(4) 결론 도출

👉 결론:
이러닝 도입 후 학점 분포가 달라졌으므로, 프로그램이 학습에 영향을 미쳤다고 볼 수 있다.

  • 카이제곱 검정은 질적 자료의 빈도 비교에 사용
  • χ² = Σ (O−E)² / E
  • 적합도 검정은 관찰된 분포가 이론적 분포와 맞는지 확인
  • 이번 사례에서는 프로그램 도입 후 학점 분포 변화가 있었다고 결론

카이제곱 독립성 검정


1. 독립성 검정 개요

📌 예시 비유:

  • 변수① = 교육 수준 (고졸/대졸 이상)
  • 변수② = 결혼 생활 만족도 (만족/불만족)
  • → “교육 수준이 높을수록 만족도가 더 높은 경향이 있는가?”

2. 독립성 검정 예제

문제:
교육 수준과 결혼 생활 만족도의 관계를 보기 위해 1,000명 조사 결과:

교육 수준 만족 불만족 합계
고졸 이하 170 130 300
전문대 졸업 300 120 420
4년제 이상 180 100 280
합계 650 350 1000

→ 5% 유의수준에서 두 변수가 독립적인지 검정

(1) 기대빈도(E) 계산

공식: $E_{ij} = \frac{R_i \times C_j}{N}$

R: 행 합계, C: 열 합계, N: 총 합계

(2) Python 실습

import pandas as pd
from scipy.stats import chi2_contingency
import numpy as np

# 데이터프레임 생성
data = {
    '만족': [170, 300, 180],
    '불만족': [130, 120, 100]
}
df = pd.DataFrame(data, index=['고졸 이하', '전문대 졸업', '4년제 이상'])

print("관찰 빈도표:")
print(df)
print("-" * 30)

# 카이제곱 독립성 검정
# chi2: 카이제곱 통계량, p: p-value, dof: 자유도, expected: 기대 빈도
chi2, p, dof, expected = chi2_contingency(df)

print(f"카이제곱 통계량: {chi2:.4f}")
print(f"p-value: {p:.4f}")
print(f"자유도: {dof}")
print("\n기대 빈도표:")
print(pd.DataFrame(expected, index=df.index, columns=df.columns))

3. 결과 해석

💡 카이제곱 검정 핵심 요약

  • 적합도: 관찰 비율이 가설 비율과 같은가?
  • 독립성: 두 질적 변수가 서로 관련 있는가?
  • P < 0.05 → 귀무가설 기각(차이/관계 있음), P ≥ 0.05 → 기각 못함(차이/관계 불확실)