비모수 통계의 이해
비모수 통계 방법은 관측 데이터의 기본 분포에 대한 강한 가정(예: 정규성)을 요구하지 않는 가설 검정 접근법입니다. 이러한 방법은 특히 표본 크기가 작거나, 데이터가 순위형이거나, 분포 가정을 충족하지 못하는 경우에 유용합니다.
주요 비모수 검정법
1. 만-휘트니 U 검정 (독립 표본 순위합 검정)
이 검정은 두 독립 집단의 분포 위치를 비교하며, 정규성을 가정할 수 없는 경우에 적용됩니다. 두 집단의 모든 값을 결합하여 순위를 매긴 후, 순위의 합을 비교합니다.
검정 통계량 계산: U 값은 다음 공식으로 구할 수 있습니다:
U = n₁ * n₂ + (n₁*(n₁+1))/2 - R₁
여기서 n₁과 n₂는 각 집단의 표본 크기이며, R₁은 첫 번째 집단의 순위 합입니다.
실제 사례: 새로운 두 가지 교육 방법의 효과를 평가합니다. 각 방법으로 훈련받은 학생들의 시험 점수를 비교하는 경우를 생각해 보세요.
2. 부호 검정 (대응 표본 검정)
이 방법은 동일한 개체에 대해 측정된 두 개의 관련된(대응) 표본을 비교합니다. 두 측정값 사이의 차이의 부호(증가 또는 감소)만을 고려하여 중앙값 차이가 유의한지 평가합니다.
수행 단계:
- 각 쌍의 측정값 간 차이를 계산합니다.
- 긍정적인 차이(향상)와 부정적인 차이(악화)의 개수를 셉니다.
- 이항 분포를 사용하여 귀무 가설(중앙값 차이가 0)을 검정합니다.
예시: 약물 투여 전후의 환자 혈압 측정값을 비교하여 약물의 효과를 판단하는 경우.
3. 카이제곱 독립성 검정
이 검정은 두 범주형 변수 간의 연관성이 통계적으로 유의한지 평가합니다. 관찰된 빈도와 기대 빈도 간의 불일치를 측정합니다.
카이제곱 통계량: χ² = Σ[(Oᵢ - Eᵢ)² / Eᵢ]
여기서 Oᵢ는 관측 빈도, Eᵢ는 기대 빈도입니다.
사용 예: 교육 수준(고졸, 대졸, 대학원)과 특정 기술에 대한 숙련도(초급, 중급, 고급) 사이의 관계를 조사하는 경우.
비모수 방법의 장단점
장점:
- 데이터 분포에 대한 가정이 필요하지 않습니다.
- 소표본, 순위 데이터, 비정규 데이터에 적합합니다.
- 이상치에 덜 민감합니다.
단점:
- 동일한 조건에서 모수 검정에 비해 검정력(효율)이 낮을 수 있습니다.
- 모수(예: 평균, 분산)에 대한 직접적인 추정을 제공하지 않습니다.
파이썬 실습 예제
만-휘트니 U 검정 구현
from scipy.stats import mannwhitneyu
group_A = [85, ★90, 78, 88, 82]
group_B = [72, 80, 75, 70, 78]
statistic, prob = mannwhitneyu(group_A, group_B)
print(f"U 통계량: {statistic:.4f}")
print(f"유의확률(p-value): {prob:.4f}")
if prob < 0.05:
print("결과: 두 집단의 분포 위치에 유의미한 차이가 있습니다.")
else:
print("결과: 두 집단의 분포 위치에 유의미한 차이가 없습니다.")
부호 검정 구현
import numpy as np
from scipy.stats import binom_test
baseline = np.array([120, 118, 122, 119, §121])
post_treatment = np.array([115, 116, 119, 113, 118])
differences = post_treatment - baseline
positive_signs = np.sum(differences < 0) # 혈압 감소를 긍정적인 변화로 간주
p_val = binom_test(positive_signs, n=len(baseline), p=0.5, alternative='two-sided')
print(f"양측 부호 검정 p-value: {p_val:.4f}")
카이제곱 독립성 검정 구현
import scipy.stats as stats
import numpy as np
# 교차표(Contingency Table) 데이터
survey_data = np.array([[25, 15, 10],
[20, 25, 5],
[5, 10, 25]])
chi2, p, degrees_of_freedom, expected = stats.chi2_contingency(survey_data)
print(f"카이제곱 통계량: {chi2:.2f}")
print(f"자유도: {degrees_of_freedom}")
print(f"유의확률: {p:.4f}")
print("\n기대 빈도표:")
print(expected)
적용 연습 문제
- 순위합 검정: 두 가지 다른 농약이 식물 성장에 미치는 영향을 비교하세요. 각 농약을 사용한 식물군의 높이 데이터가 주어졌습니다.
- 부호 검정: 새로운 다이어트 프로그램 전후의 체중 측정 데이터를 분석하여 프로그램의 효과를 평가하세요.
- 카이제곱 검정: 성별(남/여)과 선호하는 커피 타입(에스프레소, 라떼, 아메리카노) 사이에 유의한 연관성이 있는지 조사하세요.
비모수 방법은 데이터 분석의 유연한 도구 상자를 제공하며, 특히 가정을 충족하기 어려운 실제 데이터를 다룰 때 필수적입니다.