본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
t-test; t-검정
모분산을 모를 때 t분포를 이용해 한 집단 또는 두 집단의 평균을 검정하는 방법

표본이 작고 모표준편차를 모르면 Z-검정을 쓸 수 없다. 표본 표준편차로 대신 계산한 통계량은 t분포를 따르므로 이것으로 검정한다. 세 집단 이상이면 분산분석을 쓴다.

종류 비교 대상 예
단일표본 t-검정 한 집단의 평균 vs 기준값 μ0 제품 평균 무게가 500g인가
독립표본 t-검정 서로 독립인 두 집단의 평균 A반과 B반의 평균 점수가 다른가
대응표본 t-검정 같은 대상의 전·후(짝지은) 측정값 차이 교육 전후 점수가 달라졌는가
  • 정규성 : 모집단(대응표본은 차이값)이 정규분포를 따른다. Shapiro-Wilk 검정 등으로 확인한다. 표본이 크면 중심극한정리로 완화된다
  • 독립성 : 관측값끼리 독립이다
  • 등분산성 : 독립표본에서 두 집단의 분산이 같다. Levene 검정으로 확인하고, 다르면 Welch t-검정을 쓴다
  • 정규성이 크게 깨지면 비모수 검정(Mann-Whitney U, Wilcoxon 부호순위 검정)을 쓴다
t=x¯−μ0s/n,df=n−1

독립표본 (등분산)

편집 원본 편집
t=x¯1−x¯2sp1n1+1n2,sp2=(n1−1)s12+(n2−1)s22n1+n2−2,df=n1+n2−2

sp2는 합동분산(pooled variance)이다.

독립표본 (이분산, Welch)

편집 원본 편집
t=x¯1−x¯2s12n1+s22n2

자유도는 Welch–Satterthwaite 식으로 근사한다.

df≈(s12n1+s22n2)2(s12/n1)2n1−1+(s22/n2)2n2−1

각 쌍의 차이 di=xiafter−xibefore에 대해 단일표본 t-검정을 한다.

t=d¯sd/n,df=n−1
  • 귀무가설 H0 : 평균이 같다(차이가 0이다)
  • p-값이 유의 수준 α(보통 0.05)보다 작으면 H0를 기각한다
  • 양측 검정은 "다르다", 단측 검정은 "크다" 또는 "작다"를 대립가설로 둔다
from scipy import stats

a = [502, 498, 505, 510, 495, 503, 507]
b = [490, 495, 488, 500, 493, 497, 491]
before = [70, 65, 80, 75, 68]
after  = [74, 70, 82, 79, 70]

# 단일표본: 평균이 500인가
t, p = stats.ttest_1samp(a, popmean=500)

# 등분산성 확인 후 독립표본
print(stats.levene(a, b))
t, p = stats.ttest_ind(a, b)                    # 등분산 가정(기본값 equal_var=True)
t, p = stats.ttest_ind(a, b, equal_var=False)   # Welch t-검정

# 대응표본: 교육 후 점수가 올랐는가(단측)
t, p = stats.ttest_rel(after, before, alternative="greater")

alternative는 "two-sided"(기본값), "less", "greater" 중 하나이다. 결과 객체의 statistic, pvalue 속성으로도 값을 꺼낼 수 있다.

  • 상황에 맞는 t-검정 종류 고르기(전후 비교 = 대응표본)
  • 검정통계량과 자유도 계산, 합동분산 공식
  • 실기 작업형 3유형에서 ttest_1samp·ttest_ind·ttest_rel로 통계량·p-값을 구하고 기각 여부를 판단하는 문제. equal_var와 alternative 인자에 주의한다