본문 바로가기

Theory/Statistics

파이썬으로 보는 통계 (6) - F-검정을 이용한 등분산검정

반응형

F-검정은 두 개 이상의 모집단에 대한 분산 비교를 통한 검정으로 두 모집단이 같은 분산을 가지고 있는지와 (등분산검정) 이후 다룰 ANOVA (분산분석)에 사용됩니다. 이번 포스트에서 다룰 내용은 F-검정을 이용해 정규분포를 따르는 두 모집단이 같은 분산을 가지고 있는지 (등분산인지) 확인하는 등븐산검정을 살펴보려 합니다.

F-분포가 모분산이 각각 $\sigma_1^2, \sigma_2^2$인 정규모집단에서 서로 독립적으로 추출된 크기 $n, m$ 표본의 분산을 각각 $S_1^2, S_2^2$라 할때 다음 특성을 가진다는 사실을 이용하고,

$F = \frac{S_1^2/\sigma_1^2}{S_2^2/\sigma_2^2}=\frac{S_1^2/S_2^2}{\sigma_1^2/\sigma_2^2} \sim F(n-1, m-1)$

귀무가설 $H_0$를 $\sigma_1^2=\sigma_2^2$라 가정하면 F-검정을 위한 통계량은 $F=\frac{S_X^2}{S_Y^2}$ 이고 귀무가설 하에서 $F$는 자유도가 $(n-1, m-1)$인 F-분포를 따릅니다. 그리고 표본분산 $S_X^2, S_Y^2$는 다음과 같습니다.

F-검정은 정규분포를 따르지 않는 모집단에 대해서는 성능이 굉장히 sensitive 하므로 등분산을 간단히 확인해볼 때 주로 사용합니다. 특히, F-분포의 정의에 따라 등분산 검정하고자 하는 모집단이 2개일 경우 F-검정을, 3개 이상일 경우  Levene, Bartlett 검정 등이 수행합니다.

In python

어떤 지역에서 동일한 제품을 판매하고 직원 수등 다른 조건이 동일한 두 가게가 있을 때, 두 가게의 일별 매출의 변동이 같은지 파악하고 싶습니다. 이런 경우에 F-검정을 이용해 귀무가설 $H_0: \sigma_1 = \sigma_2$ 기각 여부를 판단할 수 있습니다.

파이썬에서는 scipy.stats 의 f_oneway 함수가 이를 지원합니다. f_oneway 함수에 집단이 3개 이상 들어갈 경우 이후 살펴볼 ANOVA (분산분석)을 수행하고 2개일 경우 등분산 검정을 수행합니다.

from scipy.stats import f_oneway

store1 = [46,47,58,47,27,58,56,26,47,25]
store2 = [78,57,31,28,67,77,36,57,36,57]

f_oneway(store1, store2)

P-value가 유의수준 0.05보다 높으므로 귀무가설을 기각할 수 없습니다. 즉, 두 가게의 일별 매출의 분산이 같다고 판단할 수 있습니다.

반응형