R|Rstudio

R로 등분산 검정(Levene, Bartlett)

루아흐뉴마 2018. 8. 20. 09:16
반응형
  • 등분산 검정은 '분산의 동질성 검정'이라고도 한다.
  • 대상 집단의 분산이 같은지 다른지를 통계적으로 검정하는 방법이다
  • 등분산 검정의 가설은 다음과 같다.
  • 귀무가설(H0): 모든 집단의 분산은 차이가 없다.
  • 대립가설(H1): 적어도 하나 이상의 집단의 분산에 차이가 있다.
  • 등분산 검정의 결과 유의값(p-value)이 .05 미만인 경우에는 대립가설을 지지하여 '분산에 차이가 있다.'고 말할 수 있다.
  • 반대로 유의값(p-value)이 .05 이상인 경우에는 귀무가설을 지지하여 '분산에 차이가 없다.'고 말할 수 있다.
  • R에서 등분산 검정을 수행하는 함수는 levene.testbartlett.test가 있다.


Levene.test


  • R에서 Leven.test 함수는 Levene(1960)[각주:1]의 분산의 동질성검정을 기초로 한다.
  • 일반적으로 분산의 동질성 검정은 대표값으로 평균(mean)을 기준으로 수행하지만,
  • 집단의 분포 특성에 따라서 대표값을 중앙값이나 절사평균값으로 설정하고 수행하기도 한다.
  • 즉 경우에 따라서 1. Classical Levene's Test, 2. Robust Brown-Forsythe Levene-type Test[각주:2], 3) Levene-type Test(trimmed mean) 세 종류의 방법이 가능하다.
  • 1. Classical Levene's Test 방법은 평균(mean)을 기준으로 동질성 검정을 수행한다.
  • 2. Robust Brown-Forsythe 방법은 중앙값(median)을 기준으로 동질성 검정을 수행한다.(분포상 평균값이 집단을 대표하지 못한다고 판단되는 경우)
  • 3. Levene-type Test 방법은 절사평균(trimmed mean)을 기준으로 동질성 검정을 수행한다.(상,하위 극단치를 제거하고자 할 경우)
  • 평균(mean)은 표본 분포가 좌우 대칭(symmetric)이고, 편중된 분포가 아닐 때(moderate-tail) 즉, 정규분포일 때.
  • 중앙값(median)은 표본 분포가 카이제곱 분포와 같이 한쪽 꼬리에 치우쳐 있을 때.
  • 절사평균(trimmed mena)은 코시 분포와 같이 꼬리가 두툼한 경우일 때.[각주:3]


  • 역시나 서론이 길었다. sleep 데이터를 가지고 분석해보자.
  • Levene.test 함수는 lawstat 패키지 내에 있으므로 사용하기 위해서는 lawstat 패키지를 설치해야 한다.


install.packages("lawstat")
library(lawstat)
data(sleep)
str(sleep)
## 'data.frame': 20 obs. of 3 variables: ## $ extra: num 0.7 -1.6 -0.2 -1.2 -0.1 3.4 3.7 0.8 0 2 ... ## $ group: Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 1 1 1 ... ## $ ID : Factor w/ 10 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...

  • sleep 데이터의 각 집단의 분산에 차이가 있는지 살펴보자.
  • 뗄 거 다 떼고 levene.test가 돌아가는지 확인해보려면
  • levene.test(sleep$extra, sleep$group)까지만 작성해도 실행된다.
  • 즉 sleep 데이터 각 집단(group)의 수면증감시간(extra)에 대한 분산을 비교하겠다는 것이다.
  • 실행 결과를 살펴보니, 결과 창에 modified robust Brown-Forsythe Levene-type test가 수행되었다고 나타난다.
  • location 옵션을 별도로 설정하지 않았기 때문에 기본값으로 Brown-Forsythe 검정이 실행된다.


levene.test(sleep$extra, sleep$group)
## ## modified robust Brown-Forsythe Levene-type test based on the ## absolute deviations from the median ## ## data: sleep$extra ## Test Statistic = 0.2482, p-value = 0.6244


  • location 옵션을 "mean"으로 걸어주자 classical Levene's test 결과가 나타났다.
  • Brown-Forsythe'test 결과값과는 약간 차이가 있으나 어쨌건 sleep 데이터 집단의 분산은 차이가 없는 것으로 보인다.(p=.441)


levene.test(sleep$extra, sleep$group, location="mean")
## ## classical Levene's test based on the absolute deviations from the ## mean ( none not applied because the location is not set to median ## ) ## ## data: sleep$extra ## Test Statistic = 0.61972, p-value = 0.4414


Bartlett.test


  • Bartlett.test 함수는 Levene'test와 마찬가지로 분산의 동질성을 검정하는 방법이다.
  • 다만, Levene 검정과 달리 표본이 정규성을 만족할 때(정규분포를 띨 때)에만 사용할 수 있다.
  • Levene 검정은 표본이 정규성을 만족하든 만족하지 않든 상관없이 사용할 수 있다.



bartlett.test(sleep$extra, sleep$group)
## ## Bartlett test of homogeneity of variances ## ## data: sleep$extra and sleep$group ## Bartlett's K-squared = 0.10789, df = 1, p-value = 0.7426

  • 다음과 같이 Formula 형식으로 사용할 수도 있다.
  • Levene's Test 결과와 마찬가지로 두 집단의 분산은 차이가 없는 것으로 나타났다.(p=.743)


bartlett.test(extra~group, sleep)
## ## Bartlett test of homogeneity of variances ## ## data: extra by group ## Bartlett's K-squared = 0.10789, df = 1, p-value = 0.7426

 Copyright (2018) Ruahneuma. All Rights Reserved.


  1. 1) Levene, H. (1960). Robust Tests for Equality of Variances, in Contributions to Probability and Statistics, ed. I. Olkin, Palo Alto, CA: Stanford Univ. Press. [본문으로]
  2. 2) Brown, M. B. and Forsythe, A.B. (1974). Robust tests for equality of variances. Journal of the American Statistical Association, 69, 364-367. [본문으로]
  3. 3) "Levene Test for Equality of Variances", Retrieved from https://www.itl.nist.gov/div898/handbook/eda/section3/eda35a.htm [본문으로]
반응형