R, Python을 활용한 One Sample t-test (단일 표본 t 검정)
One sample t-test (단일 표본)
표본 집단의 평균과 모집단의 평균을 비교하여 표본 집단의 평균으로 모집단의 평균을 설명할 수 있는지 검증하는 방법이다. 쉽게 말해 수능 모의고사를 치루어 반에서 높은 점수를 받았는데 전국 학생들과 비교했을 때에도 높은 점수가 맞는지 확인 할 때 사용한다고 볼 수 있다.
실습
전체 모평균이 25이고 표본 20개를 추출하여 표본의 평균이 전체 모평균을 설명하고 유의미한지 검증해보도록 하겠습니다.
H0(귀무가설): 20개의 샘플 데이터를 통해, 모 평균이 25라는 것이 옳다는 것을 증명
H1(대립가설): 20개의 샘플 데이터를 통해, 모 평균이 25라는 것이 틀리다는 것을 증명
R 활용
# 표본 20개 데이터 추출 |
p-value가 0.05보다 크므로 정규분포를 따른다고 확인할 수 있습니다. 정규성 검정을 하는 이유는 t-test 결과에 대한 오류를 줄이기 위해서는 표본이 정규분포를 따라야합니다. 이 내용은 다음에 다루겠습니다.
# t.test 함수 사용 (표본, mu=모평균, alternative=방향) |
결과 해석
95% 신뢰수준 구간 : 21.29608 33.00392
표본 평균 : 27.15
p-value 가 0.05 보다 크므로 귀무가설을 채택하게 된다. 즉, 표본 평균으로 모평균 25가 옳다는 것을 증명할 수 있다.
Python 활용
from scipy import stats
data = [35,40,12,15,21,14,46,10,28,48,16,30,32,48,31,22,12,39,19,25]
mu = 25
#정규성 검증 (Shapiro-Wilks Normality test)
stats.shapiro(data)
#정규성 검증 결과
ShapiroResult(statistic=0.9335052371025085, pvalue=0.1803210973739624)
#one sample t-test
result = stats.ttest_1samp(data, mu)
print(result)
#one sample t-test 결과
Ttest_1sampResult(statistic=0.7687155636314738, pvalue=0.4515123595472501)