t검정(t-test)란?
05 Aug 2025 | Statistics개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
데이터에 따른 분류
입력(x) - 출력(y)
- 수치 - 수치: 회귀모델
- 수치 - 범주(이진): 로지스틱회귀모델
- 범주 - 수치: t test, ANOVA
- 범주 - 범주: 카이제곱검정
모수적/비모수적
- 모수적: 데이터가 정규분포를 따름
- 비모수적: 정규분포에 대한 가정이 거의 없음 > 설명력이 떨어짐
t 검정(t-test)
두 집단의 평균이 통계적으로 유의미한 차이가 있는지 검증하는 통계 분석 방법
t 검정은 모집단의 분산을 모르고 표본 크기가 작을 때(일반적으로 30개 미만) 사용하는 검정 방법으로 정규분포 대신 t분포를 사용하여 검정을 수행한다.
t 검정의 종류
- 단일표본 t 검정 (One-sample t-test)
- 하나의 표본 평균이 특정 값(모집단 평균)과 차이가 있는지 검정
- 예: 우리 학교 학생들의 평균 키가 전국 평균 170cm와 다른가?
- 독립표본 t 검정 (Independent samples t-test)
- 서로 독립적인 두 집단의 평균 차이를 검정
- 예: 남학생과 여학생의 수학 점수에 차이가 있는가?
- 대응표본 t 검정 (Paired samples t-test)
- 동일한 대상에서 두 번 측정한 값의 차이를 검정
- 예: 다이어트 프로그램 전후의 체중 변화가 있는가?
기본 가정사항
t 검정을 사용하기 위해서는 다음 조건들이 충족되어야 함
- 정규성: 데이터가 정규분포를 따라야 함
- 독립성: 각 관측치는 서로 독립적이어야 함
- 등분산성: 두 집단을 비교할 때 분산이 비슷해야 함(독립표본 t 검정의 경우)
t 통계량 계산
t 통계량은 다음과 같이 계산된다
t = (표본평균 - 모집단평균) / (표준오차)
- 이 값을 t분포표와 비교하여
p-value
를 구하고 - 유의수준(보통 0.05)과 비교하여 귀무가설의 기각 여부를 결정
- 0.05 이하: 귀무가설 기각, 대립가설 채택
- 0.05 이상: 귀무가설 채택, 대립가설 기각
주의사항
- 표본 크기가 큰 경우(n>30)에는 z 검정을 사용할 수도 있음
- 정규성 가정이 심하게 위배되면 비모수 검정(Mann-Whitney U test, Wilcoxon signed-rank test)을 고려
- 다중 비교 시에는 제1종 오류를 조정해야 함
- 1종오류: 귀무가설이 사실인데, 거젓이라고 결정
- 2종오류: 귀무가설이 거짓인데, 사실이라고 결정
t 검정은 통계학에서 가장 기본적이면서도 널리 사용되는 검정 방법으로, 연구 설계와 데이터 특성에 맞는 적절한 t 검정을 선택하는 것이 중요하다.
# 통계 라이브러리 import
from scipy import stats
from statsmodels.formula.api import ols, glm
# 와인의 퀄리티 확인
red_wine = wine.loc[wine['type'] == 'red', 'quality']
white_wine = wine.loc[wine['type'] == 'white', 'quality']
white_wine

# t-test 함수에 red_wine,white_wine 를 x값으로써 집어 넣는다
stats.ttest_ind(red_wine, white_wine)
TtestResult(statistic=np.float64(-10.149363059143164),
pvalue=np.float64(8.168348870049682e-24), df=np.float64(2950.750452166697))
- pvalue=np.float64(8.168348870049682e-24)
- 0.05보다 p-value값이 작아서 귀무가설 기각 / 대립가설 채택
- tatistic=np.float64(-10.149363059143164)
- 음수 > 적포도주의 평균 품질이 낮다 = 두 집단간 평균 차이가 심함
'귀무가설(H0)' : 적포도주와 백포도주의 평균 품질 점수는 같다
'대립가설(H1)' : 적포도주와 백포도주의 평균의 품질 점수는 다르다
결론: 두 와인 종류와 등급간에는 매우 유의미하다 => 대립가설 채택
equal_var=False 를 쓰는때는 언제인가?
stats.ttest_ind(red_wine, white_wine, equal_var=False)
이 옵션을 넣기위해서는
- 정규성 검정 먼저 해보고
- 등분산성 검정을 한 뒤
정규성 검정
은 성립하지만 등분산성 검정을 만족하지 못할때 Welch's t-test
를 한다. ((모수))
Welch's t-test
: equal_var = False
만약, 반대로 정규성 검정을 만족하지 못하고, 등반산성 검정만 성립한다면 Mann-Whitrney U 검정
을 시행한다. (비모수)