데이터 분석/통계(Statistics)

[Python] 일표본 t 검정(One sample t-test)

Jerry Jun 2020. 8. 21. 22:12
728x90

일표본 t 검정을 공부하기에 앞서 가설검정에 대해 알아보겠다.

 

※ 가설검정이란?

모집단에 대한 입장(주장)에 대해 표본을 추출하여 수집된 데이터에 근거하여

그 입장(주장)이 맞다고 할 수 있는지를 통계적으로 검정하는 것이다.

 

가설에는 "귀무가설" 과 "대립가설" 이 있다.

  • 귀무가설(歸無假說; Null hypothesis)         : 모집단에 대한 기존의 생각(입장)
  • 대립가설(對立假說; alternative hypothesis) : 귀무가설과 다른 새로운 생각(입장)

 

표본의 데이터를 근거로 귀무가설대립가설 중에서 하나를 선택하는 과정이 가설검정이다.

 


 

import scipy.stats as stats # 분석에 필요한 라이브러리

♪ 일표본 t 검정(One sample t-test)

- 한 개의 모집단을 이루고 있는 양적 자료의 모평균에 대한 가설검정으로,

  이전보다 모평균이 커졌는지, 작아졌는지하는 변화가 있는지를 통계적으로 검정하는 방법이다.

 

가설 귀무가설 : 다이아몬드 가격의 평균은 4000달러이다.
대립가설 : 다이아몬드 가격의 평균은 4000달러보다 많다

 

1단계 : 정규성 검정 : 정규분포를 따르는지 검사한다.

  • 양적자료 < 5000 이면 "샤피로-윌크 테스트(Shapiro-Wilk Test)"

  • 양적자료 ≧ 5000 이면 "앤더슨-달링 테스트(Anderson-Darling Test)"

 

내가 가지고 있는 양적 자료는 5000개 이상이므로 "앤더슨-달링 테스트(Anderson-Darling Test)" 로 진행하였다.

stats.anderson(x = diamonds.price, dist = "norm")
-------------------------------------------------------------
AndersonResult(statistic=3474.0163510249695, 
               critical_values=array([0.576, 0.656, 0.787, 0.918, 1.092]), 
               significance_level=array([15. , 10. ,  5. ,  2.5,  1. ]))

유의수준 0.05에서 검정통계량 3474.016 이 기각역 0.787보다 크므로 정규성을 만족하지 않는다.

 

 

 

2단계 : 정규성 검정을 통해 파악했을 때

  • 정규성 만족    : 일표본 t 검정             = stats.ttest_1samp( data.variable, popmean = )

  • 정규성 불만족 : 윌콕슨의 부호순위검정 = stats.wilcoxon( data.variable - data.variable.mean(), alternative = "greater" or "less" or "two-sided")

stats.wilcoxon(diamonds.price - diamonds.price.mean(), alternative = "greater")
-------------------------------------------------------------------------------
WilcoxonResult(statistic=576399622.0, pvalue=1.0)

 

유의확률(p-value)이 1.000 이므로 유의수준 0.05 와 비교해 보았을 때

다이아몬드 가격은 통계적으로 유의하게 변하지 않은 것으로 나타났다.

 

algorithm
일표본검정

* 자료출처 :  2020 AI 데이터분석 개발자과정 : 기초 통계 (이부일 CEO님)

300x250