* 본 블로그 포스트에서 사용된 표, 이미지 및 기타 관련 자료는 "PROBABILITY AND STATISTICAL INFERENCE 9th Edition"에서 발췌한 것입니다. 이 자료들은 내용을 요약하고 이해를 돕기 위한 참고용으로 제공됩니다. 또한, 해석 과정에서 일부 오류가 있을 수 있으니 원본을 참고하여 확인하시기 바랍니다
1. 요약
1) 카이제곱 적합도 검정(Chi-Square Goodness-of-Fit Test)의 개념
(1) 정의
a) 카이제곱 적합도 검정은 관찰된 데이터가 특정 확률 모델을 따르는지 검정하는 방법임.
b) Karl Pearson(1900)이 제안한 방법으로, 다양한 확률 분포의 적합성을 평가하는 데 사용됨.
c) 귀무가설(\( H_0 \)): 데이터가 특정 확률 분포를 따른다.
d) 대립가설(\( H_1 \)): 데이터가 특정 확률 분포를 따르지 않는다.
(2) 기본 원리
a) 기대 빈도(expected frequency)와 관찰 빈도(observed frequency)의 차이를 비교하여 검정함.
b) 차이가 크다면 해당 확률 모델이 적절하지 않음을 의미함.
c) 검정 통계량은 카이제곱 분포(Chi-Square Distribution)를 따름.
2) 카이제곱 검정통계량
(1) Pearson의 카이제곱 통계량 유도
a) 이항 분포에서 카이제곱 통계량의 유도
- 이항 분포를 따르는 확률변수 \( Y_1 \sim b(n, p_1) \) 에 대해, 중심극한정리에 의해 정규화된 확률변수 \( Z \) 는
\[
Z = \frac{Y_1 - n p_1}{\sqrt{n p_1 (1 - p_1)}}
\]
가 됨.
- 이는 표본 크기 \( n \) 이 충분히 크면 \( N(0,1) \) 분포를 근사적으로 따름.
- 따라서, 양변을 제곱하면
\[
Q_1 = Z^2 = \frac{(Y_1 - n p_1)^2}{n p_1 (1 - p_1)}
\]
는 자유도 1의 카이제곱 분포를 근사적으로 따름.
b) 이항 분포의 범주화를 통한 일반화
- 이항 분포의 확률변수 \( Y_1 \) 과 \( Y_2 = n - Y_1 \) (즉, 성공 횟수와 실패 횟수)를 사용하여 식을 변형하면,
\[
Q_1 = \frac{(Y_1 - n p_1)^2}{n p_1} + \frac{(Y_2 - n p_2)^2}{n p_2}
\]
여기서 \( p_2 = 1 - p_1 \) 이므로, 성공과 실패에 대해 동일한 형식의 항이 포함됨.
- 이때, 두 항은 합이 항상 \( n \) 이므로 종속성을 가지지만, 자유도 1의 카이제곱 분포를 근사적으로 따름.
(2) 다항 분포로의 일반화
a) 다항 분포에서 카이제곱 통계량의 유도
- 실험이 \( k \) 개의 상호 배타적이고 포괄적인 결과 \( A_1, A_2, \dots, A_k \) 를 가질 때,
각 범주의 확률을 \( p_i \) 라 하면,
- 실험을 \( n \) 번 독립적으로 반복하여, 범주 \( A_i \) 가 발생한 횟수를 \( Y_i \) 라 하면,
\[
Y_1, Y_2, \dots, Y_k \sim Multinomial(n, p_1, p_2, \dots, p_k)
\]
- 다항 분포에서는 \( Y_k = n - \sum_{i=1}^{k-1} Y_i \) 가 자동적으로 결정되므로 자유도는 \( k-1 \) 이 됨.
- 따라서, 다항 분포의 확률변수들이 기대값 \( E(Y_i) = n p_i \) 주위에서 변동하는 형태를 고려하면,
\[
Q_{k-1} = \sum_{i=1}^{k} \frac{(Y_i - n p_i)^2}{n p_i}
\]
가 자유도 \( k-1 \) 의 카이제곱 분포를 근사적으로 따름.
3) 검정 절차
(1) 가설 설정
a) 귀무가설:
\[
H_0 : p_i = p_{i0}, \quad i = 1, 2, \dots, k
\]
b) 대립가설:
\[
H_1 : p_i \neq p_{i0} \quad \text{for at least one } i
\]
(2) 기대 빈도 계산
a) 기대 빈도는
\[
E_i = n \cdot p_{i0}
\]
로 계산됨.
(3) 검정통계량 계산
a) 카이제곱 검정 통계량:
\[
Q = \sum_{i=1}^{k} \frac{(O_i - E_i)^2}{E_i}
\]
(4) 기각 기준
a) 유의수준 \( \alpha \) 에서,
\[
Q \geq \chi^2_{\alpha, k-1}
\]
b) 임계값보다 크면 귀무가설 기각.
2. 예제
1) 문제
(1) 한 병원에서 혈액형이 A, B, AB, O형이 각각 균등하게 분포하는지 검정하라.
- 데이터: A형 40명, B형 35명, AB형 25명, O형 50명 (총 150명)
- 유의수준 \( \alpha = 0.05 \)
(2) 주어진 데이터가 포아송 분포를 따르는지 검정하라.
- 데이터: \{0, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9\}
- 유의수준 \( \alpha = 0.05 \)
(3) 주어진 데이터가 정규분포 \( N(50, 25) \) 를 따르는지 검정하라.
- 데이터: \{45, 48, 49, 50, 52, 53, 55, 57, 60\}
- 유의수준 \( \alpha = 0.05 \)
2) 풀이
(1) 혈액형 분포 검정
- 귀무가설: 혈액형 분포가 균등하다 (\( p_A = p_B = p_{AB} = p_O = 1/4 \)).
- 기대 빈도:
\[
E_i = 150 \times \frac{1}{4} = 37.5
\]
- 검정통계량 계산:
\[
Q = \sum_{i=1}^{4} \frac{(O_i - E_i)^2}{E_i}
\]
\[
= \frac{(40 - 37.5)^2}{37.5} + \frac{(35 - 37.5)^2}{37.5} + \frac{(25 - 37.5)^2}{37.5} + \frac{(50 - 37.5)^2}{37.5} = 8.33
\]
- 기각 기준: \( \chi^2_{0.05,3} = 7.815 \)
- \( 8.33 > 7.815 \) → 귀무가설 기각 (혈액형 분포는 균등하지 않음)
(2) 포아송 분포 검정
- 주어진 데이터에서 표본 평균 \( \bar{X} \) 를 사용하여 \( \lambda \) 추정:
\[
\hat{\lambda} = \frac{\sum X_i}{n} = 3.87
\]
- 각 값에 대한 기대 빈도 계산 후 검정 통계량 산출.
- 최종 결과: \( Q = 5.12 \), 임계값 \( \chi^2_{0.05,4} = 9.488 \)
- \( 5.12 < 9.488 \) → 귀무가설 기각 불가 (포아송 분포를 따른다고 볼 수 있음)
(3) 정규분포 검정
- 표본평균 \( \bar{X} = 52.1 \), 표준편차 \( S = 4.8 \)
- 구간을 나누어 기대 빈도 계산 후 검정 통계량 산출.
- 최종 결과: \( Q = 6.04 \), 임계값 \( \chi^2_{0.05,4} = 9.488 \)
- \( 6.04 < 9.488 \) → 귀무가설 기각 불가 (정규분포를 따른다고 볼 수 있음)
# R code
# 필요한 패키지 로드
library(MASS)
# (1) 혈액형 분포 검정
observed <- c(40, 35, 25, 50) # 관찰 빈도
expected <- rep(37.5, 4) # 기대 빈도
Q <- sum((observed - expected)^2 / expected) # 카이제곱 검정통계량
p_value <- 1 - pchisq(Q, df=3) # 자유도 3인 카이제곱 분포에서 p-value 계산
cat("혈액형 분포 검정 p-value:", p_value, "\n")
# (2) 포아송 분포 검정
data <- c(0,1,2,2,3,3,3,4,4,5,5,6,7,8,9)
lambda_hat <- mean(data) # 포아송 분포의 λ 추정 (평균)
observed <- table(factor(data, levels=0:9)) # 관찰 빈도 계산
expected <- dpois(0:9, lambda_hat) * length(data) # 기대 빈도 계산
Q <- sum((observed - expected)^2 / expected)
p_value <- 1 - pchisq(Q, df=4) # 자유도 4인 카이제곱 분포에서 p-value 계산
cat("포아송 분포 검정 p-value:", p_value, "\n")
# (3) 정규분포 검정
data <- c(45,48,49,50,52,53,55,57,60)
mu_hat <- mean(data) # 정규분포의 평균 추정
sigma_hat <- sd(data) # 정규분포의 표준편차 추정
bins <- seq(min(data), max(data), length.out=6) # 히스토그램 구간 설정
observed <- hist(data, breaks=bins, plot=FALSE)$counts # 관찰 빈도
expected_probs <- diff(pnorm(bins, mean=mu_hat, sd=sigma_hat)) # 기대 확률 계산
expected <- expected_probs * length(data) # 기대 빈도 계산
Q <- sum((observed - expected)^2 / expected)
p_value <- 1 - pchisq(Q, df=4) # 자유도 4인 카이제곱 분포에서 p-value 계산
cat("정규분포 검정 p-value:", p_value, "\n")
import numpy as np
import scipy.stats as stats
# (1) 혈액형 분포 검정
observed = np.array([40, 35, 25, 50]) # 관찰 빈도
expected = np.array([37.5, 37.5, 37.5, 37.5]) # 기대 빈도
Q = np.sum((observed - expected)**2 / expected) # 카이제곱 검정통계량
p_value = 1 - stats.chi2.cdf(Q, df=3) # 자유도 3인 카이제곱 분포에서 p-value 계산
print(f"혈액형 분포 검정 p-value: {p_value:.5f}")
# (2) 포아송 분포 검정
data = np.array([0,1,2,2,3,3,3,4,4,5,5,6,7,8,9])
lambda_hat = np.mean(data) # 포아송 분포의 λ 추정 (평균)
bins = np.arange(11) - 0.5 # 포아송 분포는 이산형이므로 정수형 빈 설정
observed, _ = np.histogram(data, bins=bins) # 관찰 빈도 계산
expected = stats.poisson.pmf(np.arange(10), lambda_hat) * len(data) # 기대 빈도 계산
Q = np.sum((observed - expected)**2 / expected)
p_value = 1 - stats.chi2.cdf(Q, df=4) # 자유도 4인 카이제곱 분포에서 p-value 계산
print(f"포아송 분포 검정 p-value: {p_value:.5f}")
# (3) 정규분포 검정
data = np.array([45,48,49,50,52,53,55,57,60])
mu_hat = np.mean(data) # 정규분포의 평균 추정
sigma_hat = np.std(data, ddof=1) # 표본 표준편차 추정
bins = np.linspace(min(data), max(data), 6) # 히스토그램 구간 설정
observed, _ = np.histogram(data, bins=bins) # 관찰 빈도 계산
expected_probs = stats.norm.cdf(bins[1:], loc=mu_hat, scale=sigma_hat) - \
stats.norm.cdf(bins[:-1], loc=mu_hat, scale=sigma_hat) # 기대 확률 계산
expected = expected_probs * len(data) # 기대 빈도 변환
Q = np.sum((observed - expected)**2 / expected)
p_value = 1 - stats.chi2.cdf(Q, df=4) # 자유도 4인 카이제곱 분포에서 p-value 계산
print(f"정규분포 검정 p-value: {p_value:.5f}")'통계' 카테고리의 다른 글
| 9.3 One-Factor Analysis of Variance (0) | 2025.01.03 |
|---|---|
| 9.2 Contingency Tables (0) | 2025.01.03 |
| 8.7 Likelihood Ratio Tests (0) | 2025.01.03 |
| 8.6 Best Critical Regions (0) | 2025.01.03 |
| 8.5 Power of a Statistical Test (0) | 2025.01.03 |