본문 바로가기
자격증/빅데이터분석기사-실기

빅데이터분석기사 실기 3유형 - T검정

by jinny-log 2024. 11. 15.

https://youtu.be/kyULq3rEulw?si=qWCGlOjKjEVx6piB

 

1. T-TEST

T-Test 모집단 모집단 특성  
단일 표본검정 모집단 1개 한 그룹 예) 영화관에서 판매하는 팝콘의 평균 무게가 120g인지 검정
대응 표본검정 (쌍체검정) 모집단 1개 (같은 그룹을 두번 측정) 같은 그룹  
독립 표본검정 모집단 2개 다른 그룹  

 

 

단일 표본검정
(정규성 만족)
from scipy import stats
t_statistic, p_value = stats.ttest_1samp( data, popmean, alternative)
print(t_statistic, p_value)

- data : 모집단에서 추출한 표본 데이터
- popmean : 검증하려고 하는 모집단의 평균 또는 기댓값
- alternative : 대립가설 정의 (=내가 입증하려고 하는 가설)
ㄴ 양측검정 two-sided : default, 주어진 특정 값(popmean)과 표본의 평균이 같지 않다.
ㄴ 단측검정 greater : 주어진 특정 값보다 표본의 평균이 크다. 
ㄴ 단측검정 less : 주어진 특정 값보다 표본의 평균이 작다.
대응 표본검정 from scipy import stats
t_statistic, p_value= stats.ttest_rel(data_a, data_b, alternative)

- data_a : 첫 번째 모집단에서 추출한 표본 데이터
- data_b : 두번째 모집단에서 뽑은 표본 데이터 (a와 b의 데이터 수는 동일)
- alternative : 대립가설 정의 diff= (a-b) 평균일때,
- diff > 0 : greater, a의 평균이 b의 평균보다 크다
- diff <0 : less, a의 평균이 b보다 작다
- diff !=0 : two-sied 기본값

독립 표본검정 from scipy import stats
from scipy.stats import ttest_ind

t_statistic, p_value= stats.ttest_ind(a, b, alternative, equal_val)

- data_a : 첫 번째 모집단에서 추출한 표본 데이터
- data_b : 두번째 모집단에서 뽑은 표본 데이터 (a와 b의 데이터 수는 다를 수 있다)
- alternative : 대립가설
- diff > 0 : greater, a의 평균이 b의 평균보다 크다
- diff <0 : less, a의 평균이 b보다 작다
- diff !=0 : two-sied 기본값

equal_val
- True : 두 모집단의 분산이 같다고 가정한다. (기본값)
- False : 두 모집단의 분산이 다륻고 가정한다.
   
정규성 검정 T-Test검정은 정규성을 가정한 가설 검정으로, 문제에서 데이터가 정규 분포를 따른다는 조건이 없으면
정규성 검정을 실시해야 한다. 정규성 검정의 대표적인 방법은 샤피로 윌크 검정이다.  
단일 표본검정 정규성 검정 - 샤피로 윌크 검정
from scipy import stats
stats.shapiro(data)
print(t_statistic, p_value)

H0 : 주어진 데이터 샘플이 정규 분포를 따른다.
H1 : 주어진 데이터 샘플이 정규 분포를 따르지 않는다.

p-value가 0.05보다 큰 경우 ->정규 분포를 따름
p-value가 0.05보다 작은 경우 -> 정규 분포 만족하지 않음 -> 윌콕슨 부호 순위 검정

정규성 검정 만족 못할 경우 - Wilcoxon의 부호 순위 검정
stats.wilcoxon(df['weights]-popmean ,alternative='less')
대응 표본검정 정규성 검정 - 샤피로 윌크 검정
from scipy import stats
stats.shapiro(diff)
print(t_statistic, p_value)

* diff= data1-data2
독립 표본검정 1. 정규성 검정 (샤피로 윌크 검정)
정규성 만족 못할 경우 -> Mann-Whitney U검정 
scipy.ttest_manwhitneyu(data1,data2,alternative)

2. 등분산 검정 (레빈 검정, levene)
등분산성 만족 못할 경우 --> Welch의 t검정
scipy.ttest_ind(data1,data2,alternative, equal_val=False)

3. 정규성/등분산성 만족 -> 독립 표본 t검정
scipy.ttest_ind(data1,data2,equal_val=True)

 

 

카이제곱검정