본문 바로가기
AI/Statistics

05. t검정( t -test )

by _S0_H2_ 2020. 5. 11.
728x90
반응형

검정의 종류

평균 검정이란 단일 or 독립 집단 사이의 가설 검증을 위한 수단이다.

집단의 평균의 차를 비교하기 위해 수치형 변수를 사용한다.

검정통계량(평균검정 : t값)과 p-value를 계산하여 신뢰구간을 만족하는지 확인하고, 가설의 채택 여부를 결정한다.

 

평균검정에는 z-검정, t-검정, 분산분석으로 나뉜다.

z-검정과 t-검정은 비교 집단이 2개 이하일 경우, 분산분석은 비교 집단이 3개 이상일 경우 사용한다.

z-검정은 모분산을 알고 있을 때만 사용이 가능한 반면, t-검정은 모분산을 모를 때도 사용이 가능하다.

 

t-검정의 종류

1. 일표본(단일 표본) t-검정( 1-sample T-test )

: 기존에 알려져 있는 평균 값이 맞는지를 확인하기 위한 검정방법

 

일반적으로 모집단의 평균이 특정 값으로 알려져있는 경우, 실제로 모집단의 평균이 특정 값과 같은지에 대해 가설을 세우고 검정한다.

일반적으로 알려진 특정 값 : 여성의 평균키는 161이다.
=> 실제 한국 여성의 평균키가 161이 맞는지를 검정

일반적으로 알려진 특정 값 : A대학교 평균 토익 점수는 800점이다.
=> 실제 이 점수가 맞는지 확인

code

import numpy as np
from scipy import stat

# 초기값 고정
np.random.seed(1)

# 평균 = 180, 표준편차는 5로 하는 20개의 랜덤값을 만들자.
heights= [180 + np.random.normal(0,5) for _ in range(20)]

# t-test : stats.ttest_1samp
tTestResult= stats.ttest_1samp(heights,175)

#print result
print("The T-statistic is %.3f and the p-value is %.3f" % tTestResult)
The T-statistic is 3.435 and the p-value is 0.003

p-value가 0.003으로, 기각역을 p<0.05로 설정했을 때 귀무가설을 기각한다.

즉, 학생들의 실제 평균 키가 175일 때, 위와 같은 표본을 얻을 확률이 0.003으로, 학생들의 평균 키는 175가 아니라고 할 수 있다.

 

그럼 180을 넣으면 어떻게 될까?

The T-statistic is -0.529 and the p-value is 0.603

p-value가 0.603으로, 기각역을 p<0.05로 설정했을 때 귀무가설을 기각하지 못한다.

즉, 학생들의 실제 평균 키가 180일 때, 위와 같은 표본을 얻을 확률이 0.603으로, 학생들의 평균 키는 180이라고 할 수 있다.

 

 

2. 독립표본 t-검정( Unpaired T-test )

: 독립된 두 집단의 평균 차이를 검정하는 기법이다. 반드시 서로 무관한 독립된 두 집단을 사용해야한다. 독립표본 t-검정의 경우, 등분산 여부에 따라 결과값이 달라지기 때문에 독립표본 t-검정을 시행하기 전에 '등분산검정'을 시행한 후 그 결과에 따라 독립표본 t-검정을 시행한다.

 

등분산검정 : 두 모집단에서 추출한 표본의 분산이 같은 것을 말한다.

 

남녀의 평균 키에 차이가 있는지 비교할 때
10대와 20대의 평균 수면시간 차이를 비교하고자 할 때
한국인과 미국인의 평균 쌀 섭취량을 비교할 때

code

# 초기값 고정
np.random.seed(1)

# 두 개의 집단을 만들자
#group 1 heights : mean 170, standard deviation 5
group1Heights= [170 + np.random.normal(0,5) for _ in range(20)]
#group 2 heights : mean 180, standard deviation 10
group2Heights= [175 + np.random.normal(0,10) for _ in range(20)]

# 등분산 검정
lresult = stats.levene(group1Heights, group2Heights )
print('LeveneResult(F) : %.3f \np-value : %.3f' % (lresult))
LeveneResult(F) : 4.158 
p-value : 0.048

F값(집단간 분산/집단내 분산)이 클 수록 두 표본의 분산이 동일하지 않음을 의미한다.

F값이 4.158, p-value가 0.048으로 신뢰수준 두 표본의 분산이 동일하지 않은 것으로 확인되었다. 등분산이 아니기 때문에 equal_var = False로 설정하고 독립표본 t-검정을 진행하자.

# 등분산이 아니다
tTestResultDiffVar= stats.ttest_ind(group1Heights, group2Heights, equal_var=False)
print("The t-statistic and p-value not assuming equal variances is %.3f and %.3f" % t
The t-statistic and p-value not assuming equal variances is -2.329 and 0.026

 

궁금해서 등분산이라고 가정했을 때의 t-test를 해보았다.

# 등분산이다
tTestResult= stats.ttest_ind(group1Heights, group2Heights)
print("The t-statistic and p-value assuming equal variances is %.3f and %.3f." % tTestResult)

# 결과
The t-statistic and p-value assuming equal variances is -2.329 and 0.025.

결과를 확인해보니 기각역이 p < 0.05일 때 귀무 가설을 기각한다. 즉, 두 집단의 평균 키는 같지 않음을 의미한다. 두 집단의 분산이 같다고 가정했을때보다 같지 않다고 가정했을 때 p-value가 높다. 

 

3. 쌍체표본 t-검정( Paired T-test )

: 동일한 항목, 사람, 물건에 대한 측정 값이 두개인 경우 그 차이를 비교하기 위해 사용하는 검정방법

이 때 분석 대상의 표본은 반드시 대응되어야한다. ( 만약 대응되지 않으면 결측값이 있다는 의미이므로 결측값을 처리한 후 분석 진행 ) 또한, 대응표본은 시간의 개념이 있어 꼭 독립된 두 집단이 아니어도 된다. 

7월이 생일인 고객에게 20% 할인 쿠폰 부여 후 브랜드 만족도 조사를 했을 때 ( 쿠폰 부여 전과 후 비교 )
다이어트 중인 사람에게 채식을 시키고 3개월 뒤에 몸무게의 변화를 검정하고자 할 경우

code

 # 초기값 고정
np.random.seed(1)
 
# 약물 복용 전 : 평균 60, 표준 편차 5
beforeWeights= [60 + np.random.normal(0,5) for _ in range(20)]
# 약물 복용 후 : 기존 몸무게 * 0.99( 표준편차 0.02 )배
afterWeights= [w * np.random.normal(0.99,0.02) for w in beforeWeights]
 
# t-test : stats.ttest_rel
tTestResult= stats.ttest_rel(beforeWeights, afterWeights)
 
print("The T-statistic is %.3f and the p-value is %.3f" % tTestResult)
The T-statistic is 2.915 and the p-value is 0.009

기각역 p < 0.05에서 귀무가설을 기각한다. 즉, 다이어트 약 복용 전과 후에 체중 차이는 유의미하다고 할 수 있다.

 

더보기

 

728x90
반응형

'AI > Statistics' 카테고리의 다른 글

07. 자유도( degree of freedom )  (4) 2020.05.14
06. 다중 검정( Multiple Comparison )  (0) 2020.05.13
04. 통계적 유의성과 p-value  (0) 2020.05.10
03. 재표본추출  (0) 2020.05.09
02. 가설 검정  (0) 2020.05.08