데이터 분석/통계(Statistics)

[Python] 독립 2표본 검정(Two sample test)

Jerry Jun 2020. 8. 23. 16:26
728x90

♪ 독립 2표본 검정

- 두 개의 독립적인 모집단에 대한 평균에 통계적으로 유의한 차이가 있는지를 검정하는 방법.

- 독립 : A 집단의 양적 자료가 B 집단의 양적 자료에게 영향을 주지 않는 상태

 

 

twosampletest

이제 과정을 진행해보겠다.

 

독립 2표본은 모집단이 2개가 존재한다. (모집단 A, 모집단 B) 

평균은 모집단을 대표하는 값이다.

 

gongsik

 귀무가설 : A집단의 평균과 B집단의 평균은 같다.

 대립가설 : A집단의 평균과 B집단의 평균은 같지 않다.

 

 

 유의수준 = 0.05

 

 

귀무가설과 대립가설이 주어졌다.

이제 귀무가설과 대립가설 중 하나를 선택하기 위해서는 모집단에서 표본을 추출하여 평균을 알아보자.

 

gongsik2

가정해 보았을 때

A 표본의 평균 - B 표본의 평균 = 0 이라면 귀무가설에 가까울 것이고,

A 표본의 평균 - B 표본의 평균 ≠ 0 이라면 대립가설에 가까울 것이다.

 

 

그렇다면 이런 경우는 어떨까.

minus
귀무가설일까, 대립가설일까

 정답은 알 수 없다. 0.002 라는 값에 주목하면 안된다. 분포를 알아야 0에서 가까운지 먼지 알 수 있다.

 가설 검정의 핵심은 "분포" 이다. 그렇다면 분포를 알아보자.

 

allimage

 

대립가설은 "같지 않다" 일 때는 양 쪽에 기준을 둔다.

그래서 유의수준이 0.05(5%) 일 때 :

상위 2.5%, 하위 2.5%에 해당된다면 대립가설,

상위 2.5%, 하위 2.5%에 해당안되면 귀무가설이다.

 


이제 파이썬을 통해 알아보자.

import pandas as pd
import scipy.stats as stats
가설 귀무가설 : Ideal 가격의 평균과 NonIdeal 가격의 평균은 같다.
대립가설 : Ideal 가격의 평균이 NonIdeal 가격의 평균보다 비싸다.

 

1단계 : 정규성 검정

정규성 검정에 대해서는 이전 게시글에서 언급하였으므로 Pass!

정규성에 맞지 않는다면 2단계로 가지 않고 '윌콕슨의 순위합 검정(Wilcoxon's rank sum test)' 을 진행한다.

정규성을 만족한다면 2단계로 바로 넘어가면 된다.

stats.ranksums(ideal, nonideal)
------------------------------------------------------
RanksumsResult(statistic=-27.277266218787283, pvalue=7.894328467663634e-164)

검정 통계량 : -27.277

p-value : 1 - (0.000) / 2) = 1.000

 

유의확률이 1.000 이므로 유의수준 0.05 와 비교했을 때

Ideal 과 NonIdeal 의 가격에 통계적으로 유의한 차이는 없는 것으로 나타났다.

 

 

 

2단계 : 등분산 검정

등분산 검정에서 가장 많이 활용되는 것으로는 '레빈의 검정(Levene's test)' 와 '바틀렛 검정(Bartlett's test)'가 있다.

  • Levene's test : stats.levene(data1, data2)
  • bartlett's test : stats.bartlett(data1, data2)

등분산 검정에서의 귀무가설은 "등분산이다." 가 될 것이고, 대립가설은 "이분산이다." 가 될 것이다.

 

ideal    = diamonds.loc[diamonds.cut == "Ideal", "price"]
nonideal = diamonds.loc[diamonds.cut != "Ideal", "price"]

내가 가지고 있는 데이터 "diamonds" 에서 Ideal에 해당되는 가격과 해당되지 않는 가격을 각각 선언했다.

그리고 levene's test 를 하였다.

 

stats.levene(ideal, nonideal)
----------------------------------------------------
LeveneResult(statistic=244.8982065343527, pvalue=4.446981310047094e-55)

검정통계량 : 244.898

p - value : 0.000

 

유의확률이 0.000 이므로 유의수준 0.05와 비교했을 때 이분산(대립가설) 인 것을 알 수 있다.

 

 

3단계 : (이분산이 가정된) 독립 2표본 검정

독립 2표본 검정에서는 등분산과 이분산으로 나뉘게 되는데, 현재 나는 이분산으로 진행중이다.

 

stats.ttest_ind(ideal, nonideal, equal_var = False)
------------------------------------------------------------------
Ttest_indResult(statistic=-22.985734120999393, pvalue=2.7359864985506295e-116)

검정 통계량 : -22.986

p - value : (1 - 0.000) / 2 = 1.000

 

유의확률이 1.000 이므로 유의수준 0.05 를 비교하여

품질이 Ideal 인 다이아몬드와 품질이 Nonldeal 의 가격에 통계적으로 유의한 차이가 없는 것으로 나타났다.

 

독립2표본검정
독립2표본 알고리즘

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

300x250