04 | 이상치
이상치Outlier는 주어진 회귀 모델에 의해 잘 설명되지 않는 데이터 점들을 뜻한다. 이상치 검출에서는 잔차, 특히 외면 스튜던트화 잔차Externally Studentized Residual를 사용한다.
스튜던트화 잔차(Studentized Residual)는 잔차를 잔차의 표준 편차로 나눈 값이다. 일반적으로 표준 편차는 데이터 전체에 대해서 구한다. 그런데 i번째 데이터가 이상치인지 확인하면서 i번째 데이터를 포함해 표준 편차를 구하는 것은 적절치 않을 수 있다. 따라서 외면 스튜던트화 잔차는 i번째 스튜던트화 잔차를 구할 때 i를 제외하여 표준 편차를 구한다.
반면 전체 데이터에 대해 표준 편차를 구하는 경우를 내면 스튜던트화 잔차(Internally Studentized Residual)라 한다.
외면 스튜던트화 잔차는 rstudent( )를 사용해 구하며 이상치는 car::outlierTest( )를 사용해 쉽게 구할 수 있다.
rstudent : 외면 스튜던트화 잔차를 구한다. |
rstudent( model # lm 또는 glm 함수가 반환한 모델 객체 ) |
car::outlierTest : 본페로니(Bonferroni) 이상값 검정을 수행한다. |
car::outlierTest( model, # lm 또는 glm 객체 ... ) |
다음은 Orange 데이터에서 외면 스튜던트화 잔차를 계산하는 예다. circumference를 age + age2으로 적합했다.
> data(Orange) > m <- lm(circumference ~ age + I(age^2), data=Orange) > rstudent(m) 1 2 3 4 5 6 0.19985287 -0.53303263 -0.17840851 -0.54325622 -1.31082205 -0.92292494 7 8 9 10 11 12 -1.72799370 0.33615199 -0.06394288 0.85316955 1.23124345 0.92915017 13 14 15 16 17 18 1.75080916 0.93486279 0.19985287 -0.83687327 -0.69447869 -0.84791970 19 20 21 22 23 24 -1.54276649 -1.05591062 -1.98782529 0.29066403 -0.36166980 0.89732592 25 26 27 28 29 30 1.75037512 1.24135751 2.05032759 1.45729711 0.19985287 -0.92493008 31 32 33 34 35 -0.43504980 -0.11561888 -0.34906199 0.44471090 -0.23134075
외면 스튜던트화 잔차는 t 분포를 따르므로 t-test를 사용해 rstudent( ) 값이 너무 크거나 작은 점을 찾으면 된다. 다행히 R에는 이를 간단하게 할 수 있는 라이브러리 car::outlierTest( )가 있다.
Orange 데이터에 이상치를 직접 추가하고, circumference ~ age + I(age^2)의 포뮬러로 선형 회귀를 수행한 다음 outlierTest를 호출해 이상치를 찾아보자.
> data(Orange) > Orange <- rbind(Orange, + data.frame(Tree=as.factor(c(6, 6, 6)), + age=c(118, 484, 664), + circumference=c(177, 50, 30))) > tail(Orange) Tree age circumference 33 5 1231 142 34 5 1372 174 35 5 1582 177 36 6 118 177 37 6 484 50 38 6 664 30 > m <- lm(circumference ~ age + I(age^2), data=Orange) > outlierTest(m) rstudent unadjusted p-value Bonferonni p 36 5.538438 3.429e-06 0.0001303
보다시피 36번째 데이터에서 Bonferroni p6 가 0.05보다 작은 값이 나와 이상치로 검출되었다.
6 본페로니(Bonferroni) p는 여러 가설 검정을 수행할 때 발생하는 다중 비교(Multiple Comparison) 문제를 해결한 p 값이다. 위키피디아의 본페로니 교정에 대한 페이지[14]를 참고하기 바란다. 간단하게 요약하자면 여러 개의 가설 검정을 동시에 수행하면 귀무가설을 기각하게 될 확률이 높아진다. 이를 다중 비교 문제라 한다. 본페로니 교정은 이를 해결한 p 값을 구한다.