통계 분석

[Python] 등분산 검정

DongGoo 2023. 11. 9. 21:42

1. 등분산이란?

등분산을 알기 위해서는 분산이란 무엇인지 알아야 합니다.

분산이란 간단하게 Data들이 퍼져있는 정도를 나타냅니다.

그렇다면 등분산이란 2개의 모집단에서 추출된 각 표본 간의 분산이 같음을 뜻합니다.

2. 등분산 검정의 목적

  • 비교하는 집단과 동일한 집단인지 아닌지를 판단하기 위함
  • 통계분석의 전제조건 확인
    1. 독립표본 t-검정(Independent Samples t-test)
    2. 분산분석(ANOVA)
    3. 일원 분산 분석
    4. 이원 분산 분석
    5. 공분산분석

3. 등분산검정 기법

가. F-검정(F-test)

두개의 표본에서 분산의 비율을 계산하여 F 분포에 따라 검정을 진행합니다.

F-검정은 두 표본만을 비교할때 사용하며, 두 표본 모두 정규 분포를 따르며 이상치가 없는 경우에 적합합니다.

해당 조건을 따르지 않는 경우 F-검정의 결과를 신뢰하기 어렵습니다.

 

나. Levene검정

각 표본에서의 절대 편차의 분산을 비교하여 등분산성을 검정합니다.

두 개이상의 표본을 비교할때 사용하며, 표본이 정규분포를 따르지 않거나 이상치가 있을때도 사용할 수 있고

F-검정보다 데이터 형태에 덜 민감합니다.

 

다. Bartlett 검정

두 개이상의 표본을 비교할때 사용하며,  정규성 가정을 필요로 하며 이 가정을 충족하지 못하면 결과를 신뢰하기 어렵습니다.

 

라. Brown-Forsythe 검정

두개 이상의 표본을 비교하며, 표본이 정규 분포를 따르지 않거나 이상치가 있을때 사용하는것이 적합한 검정입니다.

이 검정은 비정규 데이터에 대해서도 적용할 수 있습니다.

 

4. Python에서 등분산 검정

우선 등분산 검정의 가설을 다음과 같습니다.

귀무가설(H0) : "두 표본의 분산은 동일하다."

대립가설(H1) : "두 표본의 분산은 동일하지않다."

 

데이터를 불러옵니다.

import pandas as pd 

df = pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/main/scipy/scipy3.csv')
df.head()

A class집단과 B class 집단의 등분산을 비교하기 위해 A집단과 B집단으로 분리하여줍니다.

a = df[df['class'] =='A'].score
b = df[df['class'] =='B'].score

 

그리고 이 두집단의 Data에 대해 등분산 검정을 시행해줍니다.

from scipy.stats import bartlett
from scipy.stats import levene

print(bartlett(a,b)) 
print(levene(a,b,center='mean'))

# BartlettResult(statistic=1.5116783794562305, pvalue=0.2188831590902503)
# LeveneResult(statistic=4.342327020297874, pvalue=0.03770665288742481)

결과는 Levene 검정결과 pvalue의 값이 0.03으로 0.05보다 낮기 때문에 분산이 동일하다고 볼 수 있습니다.

하지만 Bartlett 검정 결과 pvalue의 값이 0.21로 0.05보다 높게 나타난것을 확인할 수 있습니다.

 

이는 Bartlett 검정이 위에서 알려드린 대로 정규성을 만족해야 신뢰할수 있는 결과를 얻을수 있기 때문입니다.

A,B 두 집단의 정규성 검정을 시행한 결과는 아래와 같습니다.

from scipy.stats import shapiro

print(shapiro(a))
print(shapiro(b))

# ShapiroResult(statistic=0.9444763660430908, pvalue=3.3300091573096324e-09)
# ShapiroResult(statistic=0.9614471197128296, pvalue=7.400245522148907e-05)

정규성 검정결과 두집단 모두 0.05보다 매우 작은 값이 나타났기 때문에 귀무가설을 기각하고 

대립가설을 채택해 정규성을 만족 할수 없다는 것을 알수 있습니다.

 

따라서 Bartlett검정의 전제조건을 만족하지 못하였고 검정결과를 신뢰할 수 없어 Bartlett 검정의 pvalue의 값은

정확하지 않다는 것을알 수 있습니다.