Techbrad

R, Python을 활용한 One Sample t-test (단일 표본 t 검정) 본문

AI & BigData/Basic

R, Python을 활용한 One Sample t-test (단일 표본 t 검정)

brad.min 2020. 12. 12. 14:04
반응형

One sample t-test (단일 표본)

표본 집단의 평균과 모집단의 평균을 비교하여 표본 집단의 평균으로 모집단의 평균을 설명할 수 있는지 검증하는 방법이다. 쉽게 말해 수능 모의고사를 치루어 에서 높은 점수를 받았는데 전국 학생들과 비교했을 때에도 높은 점수가 맞는지 확인 할 때 사용한다고 볼 수 있다.

 

실습

전체 모평균이 25이고 표본 20개를 추출하여 표본의 평균이 전체 모평균을 설명하고 유의미한지 검증해보도록 하겠습니다.

 

H0(귀무가설): 20개의 샘플 데이터를 통해, 모 평균이 25라는 것이 옳다는 것을 증명

H1(대립가설): 20개의 샘플 데이터를 통해, 모 평균이 25라는 것이 틀리다는 것을 증명

 

R 활용

# 표본 20개 데이터 추출
data <- c(35,40,12,15,21,14,46,10,28,48,16,30,32,48,31,22,12,39,19,25)

# 정규성 검정 (Shapiro-Wilk normality test)
shapiro.test(data)

# 정규성 검정 결과
data:  data
W = 0.93351, p-value = 0.1803

p-value가 0.05보다 크므로 정규분포를 따른다고 확인할 수 있습니다. 정규성 검정을 하는 이유는 t-test 결과에 대한 오류를 줄이기 위해서는 표본이 정규분포를 따라야합니다. 이 내용은 다음에 다루겠습니다.

 

# t.test 함수 사용 (표본, mu=모평균, alternative=방향)
t.test(data, mu = 25, alternative = 'two.sided')

# one-sample t.test 결과
data:  data
t = 0.76872, df = 19, p-value = 0.4515
alternative hypothesis: true mean is not equal to 25
95 percent confidence interval:
 21.29608 33.00392
sample estimates:
mean of x 
    27.15 

결과 해석 

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)

 

반응형