다변량 데이터에서 특이 치를 식별하는 가장 좋은 방법은 무엇입니까?


94

적어도 세 개의 변수를 가진 큰 다변량 데이터 세트가 있다고 가정하십시오. 특이 치를 어떻게 찾을 수 있습니까? 쌍 차원 산점도는 2 차원 부분 공간에서 특이 치가 아닌 3 차원에 특이 치가 존재할 수 있으므로 작동하지 않습니다.

회귀 문제가 아니라 실제 다변량 데이터에 대해 생각하고 있습니다. 따라서 강력한 회귀 또는 컴퓨팅 활용과 관련된 답변은 도움이되지 않습니다.

한 가지 가능성은 주성분 점수를 계산하고 처음 두 점수의 이변 량 산점도에서 특이 치를 찾는 것입니다. 작동이 보장됩니까? 더 나은 접근 방법이 있습니까?


3
산점도 행렬이이를 포착하지 못하면 3D 산점도를 시도 할 수 있습니다. 그것은 물론 4D에는 적합하지 않지만 시간으로 4 차원을 만들어 영화를 만들 수 있습니다. :)
Shane

(계층 적) 군집 분석은 어떻습니까?
Andrej

11
색상 색조의 5 번째 D, 색상 강도의 6 번째 D, 포인트 크기의 7 번째 D 그리고 우리는 갈 수 있습니다 ;-)

답변:


26

@drknexus가 제안한대로, 강력한 마할 라 노비스 거리에 의존 하는 mvoutlier 패키지를 살펴보십시오 .


4
나는 개인적으로이 패키지를 믿지 않습니다! 나는 이것이 단지 과학의 소음이라고 생각합니다. 이 유형의 이론은 시뮬레이션 데이터에는 매우 유용하고 실제 데이터에는 pffff입니다. 나는이 패키지를 사용하여 예를 들어 특이 치를 탐지했다 :-) 슬프게도 내 데이터의 절반이 특이 치인 것으로 감지되었다. 의견이 있으시면 기쁘겠습니다. 많은 유형의 특이 치가 있지만 데이터에서 간단히 제거해야합니까? 나는 믿지 않는다.
Learner

1
이것이 언제, 왜 작동하는지 설명해 주시겠습니까?
eric_kernfeld

19

나는 Robin Girard의 대답이 3 차원과 4 차원에 대해 잘 작동한다고 생각하지만 차원의 저주가 그 이상으로 작동하지 못하게 할 것입니다. 그러나 그의 제안은 교차 검증 된 커널 밀도 추정치를 처음 세 가지 주요 구성 요소 점수에 적용하는 관련 접근 방식으로 이끌었습니다. 그런 다음 매우 높은 차원의 데이터 세트를 계속 처리 할 수 ​​있습니다.

요약하면 i = 1에서 n까지

  1. Xi가없는 데이터 세트에서 얻은 처음 3 가지 주요 구성 요소 점수의 밀도 추정값을 계산합니다.
  2. 1 단계에서 추정 한 밀도에 대한 Xi의 가능성을 계산합니다. Li라고 부릅니다.

끝나다

Li (i = 1, .., n의 경우)를 정렬하면 특이 치가 일부 임계 값 미만일 가능성이 있습니다. 좋은 임계 값이 무엇인지 잘 모르겠습니다.이 글을 쓰는 사람에게는 맡길 것입니다! 한 가지 가능성은 log (Li) 값의 상자 그림을 작성하고 음의 끝에서 어떤 특이 치가 감지되는지 확인하는 것입니다.


이 답변에 감사드립니다.
로빈 지라드

@rob "좋은 임계 값이 무엇인지 잘 모르겠습니다."이것은 언급 한 여러 테스트 절차의 목적 일 것입니다. ...하지만 내용을 채워야하고 이상치 탐지가 정말 마음에 듭니다. 이상 점 탐지! 누가 종이를 쓰고 싶어 :)?
로빈 지라드

4
(-1)이 질문에 대한 대답이 유용하지 않거나 (예 : 너무 모호하고 구현되지 않음) 과학적으로 정확하지는 않습니다 (잘못되지 않은 한 : 내가 아는 한, 관련 문헌).
user603

6
(-1) 이것은 오답으로 보입니다-이 방법은 특이 치를 감지하지 않습니다! PCA가 평면에서 멀리 떨어진 2D 평면 및 1 특이점에서 3D 팬케이크와 같은 점 구름을 상상하기는 쉽지만 투영 된 구름의 중간에 투영은 "커널 밀도" 2D 평면의 점은 이상치이지만 높을 것입니다.
Kochede

1
PCA가 문제가 될 것이라고 생각합니다. PCA는 분산에 대한 주요 기여를 고려한 근사치입니다. 그러나 여기서 가장 중요한 목표는 특이점 을 찾는 것입니다 .
Omry Atia 5

18

(1) 에서 사용할 수있는 다양한 방법에 대한 교육 학적 요약을 찾을 수 있습니다.

거기에 나열된 다양한 방법의 최근 수치 비교는 (2)(3)을 확인할 수 있습니다 .

책에서 일반적으로 발견되는 더 오래되고 덜 철저한 수치 비교가 있습니다. 예를 들어 (4)의 142-143 페이지에 하나가 있습니다.

여기서 논의 된 모든 메소드는 주로 rrcov 패키지를 통해 공개 소스 R 구현을 갖습니다 .

  • (1) P. Rousseeuw and M. Hubert (2013) 다변량 위치 및 산란의 고속 추정기.
  • (2) M. Hubert, P. Rousseeuw, K. Vakili (2013). 강력한 공분산 추정량의 형태 편향 : 경험적 연구. 통계 논문.
  • (3) K. Vakili 및 E. Schmitt (2014). FastPCS를 사용하여 다변량 특이 치 찾기 전산 통계 및 데이터 분석.
  • (4) Maronna RA, Martin RD 및 Yohai VJ (2006). 강력한 통계 : 이론 및 방법. 와일리, 뉴욕

시뮬레이션 데이터를 기반으로하는 논문은 권장하지 않습니다. 처음 두 논문은 시뮬레이션 데이터를 기반으로합니다. 나는 실제 데이터를 작업하고 있으며 드물게 시뮬레이션 된 강한 특이 치를 데이터에서 찾을 수 있습니다. 나는 개인적으로 매우 강한 특이 치를 가진 데이터 세트를 찾지 못했습니다. 실제 데이터를 알고 있다면 주저하지 말고 공유하십시오
Learner

안녕하세요 Nemo : 귀하의 의견에 감사드립니다. 실제로 이러한 모델 중 많은 (전부가 아님)에 대해 가능한 최악의 이상치 구성이 실제로 알려져 있으며 이러한 모델은 일반적으로 해당 모델에서 시뮬레이션하고 평가하는 구성입니다. 아마도 이것을 질문으로 공식화 할 수 있습니까? 나는 어떤 참고 문헌을 가리키게되어 기쁘다.
user603

1
나는 일반적인 질문을 이미했다. 내 게시물을 여기에서 찾을 수 있습니다 stats.stackexchange.com/questions/139645/…
Learner

13

나는 일종의 "일회성 테스트 알고리즘을 떠나"(n은 데이터 수) :

i = 1에서 n까지

  1. Xi
  2. XiLi

끝나다

Li

이것은 n이 충분히 큰 경우 작동합니다 ... 당신은 또한 "그룹"이상치의 그룹이있을 때 더 관련이있을 수있는 "리브 케이 아웃 전략"을 사용할 수 있습니다 ...


얼마나 많은 특이 치가 있는지, 즉 N-1 점에 특이 치가 포함되어 있기 때문에 여전히 편향이있는시기를 모르는 경우를 어떻게 처리 할 수 ​​있습니까?
Benjamin Bannier

1
n이 충분히 크고 특이 치의 수가 적 으면이 편향은 무시할 만하다. 많은 특이 치가있는 경우 특이 치가 아니며 어쨌든 휴가 k out 전략을 사용할 수 있다고 언급했듯이 ... (이 경우 모든 구성을 추적하지 않는 전략을 찾아야합니다. NP hard ...)이고 k를 모르는 경우 k에 대해 많은 값을 시도하고 가장 관련성이 높은 것을 유지할 수 있습니다.
로빈 지라드

1
이것은 좋은 생각이지만, 내가 제대로 이해한다면, 포함 "아웃 라이어"의 개념을 확대 할 것으로 보인다 어떤 다른 사람과 멀리 떨어져있는 데이터 집합의 값입니다. 예를 들어 43 개의 정수로 구성된 {-110 [1] -90, 0, 90 [1] 110} 배치에서 0 ( 이 숫자 의 중간 값 !)을 고유 한 "정치 값"으로 식별하지 않습니다 . "?
whuber

@ whuber 좋은 질문입니다! 구조적 가정이 없으면 0이 제거 될 수 있습니다. 그러나 분포가 단조로운 것으로 가정하고 그에 따라 밀도를 계산할 수 있습니다. 이 경우 구조적 가정 (유일성)은 절차가 0을 "정상"값으로 보는 데 도움이됩니다. 결국 당신은 당신의 머리에 "구조적 가정"의 유형이 있기 때문에 그것이 정상이라고 생각합니다 :)?
로빈 지라드

3
LiLi

12

최소 체적 경계 타원체의 지지점 중에서 "이상 값"후보를 찾을 수 있습니다. ( 이 문제는 실험 설계의 문제와 밀접한 관련이 있기 때문에 1970 년대 초반에 상당히 높은 차원에서이 점들을 상당히 높은 차원에서 찾을 수있는 효율적인 알고리즘 이 발명되었습니다.)


12

내가 본 참신한 접근 방식은 IT Jolliffe Principal Components Analysis 입니다. 데이터에서 PCA를 실행합니다 (참고 : PCA는 자체적으로 유용한 데이터 탐색 도구가 될 수 있습니다). 그러나 처음 몇 개의 주 구성 요소 (PC)를 보는 대신 마지막 몇 개의 PC를 플로팅합니다. 이 PC는 변수가 가장 작은 변수 간의 선형 관계입니다. 따라서 데이터에서 "정확한"또는 정확한 다변량 관계에 가깝습니다.

마지막 PC의 PC 점수 플롯은 각 변수를 개별적으로 살펴보면 특이 치를 쉽게 감지 할 수 없음을 나타냅니다. 예를 들어 키와 몸무게를 예로들 수 있습니다. "평균 이상"키와 "평균 이하"몸무게를 가진 일부 사람은 키와 몸무게가 "" 극단적 인 "개별 (예 : 180cm 및 60kg 인 사람).


11

나는 영향 함수에 대한 언급 아무도 보지 못했습니다 . 나는 Gnanadesikan의 다변량 책 에서이 아이디어를 처음 보았다 .

한 차원에서 특이 치는 매우 큰 값이거나 매우 작은 값입니다. 다변량 분석에서는 대량의 데이터에서 관측치가 제거됩니다. 그러나 특이 치에 대한 극치를 정의하기 위해 어떤 메트릭을 사용해야합니까? 많은 선택이 있습니다. Mahalanobis 거리는 단 하나입니다. 나는 모든 유형의 이상 치를 찾는 것이 쓸데없고 비생산적이라고 생각합니다. 내가 물어 보곤 왜 당신이 이상치에 대한 상관이야? 평균을 추정 할 때 해당 추정치에 많은 영향을 줄 수 있습니다. 강력한 견적 도구는 무게를 줄이고 특이 치를 수용하지만 공식적으로 테스트하지는 않습니다. 이제 회귀 분석에서 레버리지 점과 같은 특이 치가 모델의 경사 매개 변수에 큰 영향을 줄 수 있습니다. 이변 량 데이터를 사용하면 추정 된 상관 계수 및 3 개 이상의 차원에서 다중 상관 계수에 과도한 영향을 줄 수 있습니다.

영향 평가 기능은 Hampel에 의해 강력한 평가 도구로 소개되었으며 Mallows는 사용을 옹호하는 훌륭한 미공개 논문을 작성했습니다. 영향 함수는 n 차원 공간에있는 점과 매개 변수의 함수입니다. 기본적으로 계산 지점과 누락 된 지점의 모수 추정치 차이를 측정합니다. 두 추정값을 계산하고 차이를 계산하는 데 어려움을 겪는 대신 종종 수식을 도출 할 수 있습니다. 그런 다음 일정한 영향의 윤곽은이 매개 변수의 추정치와 관련하여 극단적 인 방향을 알려주므로 n 차원 공간에서 특이 치를 찾을 위치를 알려줍니다.

자세한 내용은 American Journal of Mathematical and Management Sciences에서 "영향 함수 및 데이터 유효성 검사에 대한 응용 프로그램"이라는 제목의 1983 년 논문을 참조하십시오. 데이터 유효성 검사에서 데이터의 의도 된 사용에 영향을 미치는 이상 값을 찾고자했습니다. 내 느낌은 당신이 추정에 관심이 있고 다른 사람에 대해 너무 신경 쓰지 않는 매개 변수에 큰 영향을 미치는 특이 치에주의를 기울여야한다는 것입니다.


1
+1 특히 분석 목적에 대한 일관된 초점을위한 아주 좋은 아이디어.
whuber

비슷한 아이디어는 RANSAC (Random Sample Consensus )입니다.
GeoMatt22


7

3과 같은 중간 크기의 경우 다른 곳에서 제안 된 일종의 커널 교차 검증 기술이 합리적이며 내가 얻을 수있는 최선입니다.

더 큰 차원의 경우 문제를 해결할 수 있는지 확실하지 않습니다. 그것은 '차원의 저주'영토에 꽤 정사각형입니다. 문제는 분포에서 파생 된 거리를 포함하여 차원을 늘리면 거리 함수가 매우 큰 값으로 매우 빠르게 수렴되는 경향이 있다는 것입니다. 특이 치를 "다른 것에 비해 상대적으로 큰 거리 함수가있는 점"으로 정의하고 차원 공간이 넓어 모든 거리 함수가 수렴하기 시작하면 문제가 발생합니다. .

확률 적 분류 문제로 만들 수있는 일종의 분포 가정이나 공간을 "소음 크기"와 "정보 차원"으로 분리 할 수있는 회전이 없다면, 고차원 공간의 기하학은 이상치에 대한 쉬운 또는 최소한의 식별을 금지 할 것입니다.


내가 이미 말한 것처럼 가우스 가정을 사용하여 이미 제공 한 절차를 큰 차원으로 적용 할 수 있습니다. 치수가 표본 크기와 관련하여 실제로 큰 경우 (예 : p >> n) 일부 희소성 가정 (가우스 분포의 매개 변수가 낮은 차원 공간에 있다고 가정)과 임계 값 추정 절차를 사용할 수 있습니다. 매개 변수의 추정을 위해 ...
로빈 지라드

1
차원의 저주 분포를 가정하지 않고 해결책을 배제하는 것이 매우 통찰력 (당신은 단순히 데이터의 미친 양이 있거나 크기가 작은 경우를 제외하고)
존 로버트슨

6

회귀 문제가 아니라 "진정한 다변량 데이터"에 대해 생각할 때 무슨 의미인지 잘 모르겠습니다. 내 초기 응답은 특정 IV 또는 DV를 지정할 필요가 없기 때문에 Mahalanobis 거리를 계산하는 것이지만 핵심은 (내가 이해하는 한) 레버리지 통계와 관련이 있습니다.


예, 데이터 평균에서 각 관측치의 Mahalanobis 거리를 계산할 수 있습니다. 그러나 평균과의 거리가 가장 큰 관측치가 반드시 다변량 특이 치일 필요는 없습니다. 상관 관계가 높은 이변 량 산점도를 생각해보십시오. 특이 치는 주 점 구름 외부에있을 수 있지만 평균과 멀지 않습니다.
Rob Hyndman


4

내 첫 번째 응답은 데이터에 대해 다변량 회귀를 수행 할 수 있다면 해당 회귀의 잔차를 사용하여 특이 치를 발견하는 것입니다. (회귀 문제가 아니라고 말했기 때문에 이것이 도움이되지 않을 수 있습니다. 죄송합니다!)

나는에서이 중 일부를 복사하는거야 내가 이전에 대답 한 유래 질문 몇 가지 예제가 R의 코드를

먼저, 우리는 데이터를 생성 한 다음 이상치로 오염시킵니다.

> testout<-data.frame(X1=rnorm(50,mean=50,sd=10),X2=rnorm(50,mean=5,sd=1.5),Y=rnorm(50,mean=200,sd=25)) 
> #Taint the Data 
> testout$X1[10]<-5 
> testout$X2[10]<-5 
> testout$Y[10]<-530 

> testout 
         X1         X2        Y 
1  44.20043  1.5259458 169.3296 
2  40.46721  5.8437076 200.9038 
3  48.20571  3.8243373 189.4652 
4  60.09808  4.6609190 177.5159 
5  50.23627  2.6193455 210.4360 
6  43.50972  5.8212863 203.8361 
7  44.95626  7.8368405 236.5821 
8  66.14391  3.6828843 171.9624 
9  45.53040  4.8311616 187.0553 
10  5.00000  5.0000000 530.0000 
11 64.71719  6.4007245 164.8052 
12 54.43665  7.8695891 192.8824 
13 45.78278  4.9921489 182.2957 
14 49.59998  4.7716099 146.3090 
<snip> 
48 26.55487  5.8082497 189.7901 
49 45.28317  5.0219647 208.1318 
50 44.84145  3.6252663 251.5620 

데이터를 그래픽으로 검사하는 것이 가장 유용합니다 (수학보다 뇌가 특이점을 발견하는 것이 훨씬 낫습니다)

> #Use Boxplot to Review the Data 
> boxplot(testout$X1, ylab="X1") 
> boxplot(testout$X2, ylab="X2") 
> boxplot(testout$Y, ylab="Y") 

그런 다음 통계를 사용하여 여기에서 Lund 테스트를 사용하여 임계 컷오프 값을 계산할 수 있습니다 (Lund, RE 1975, "선형 모델의 특이 치에 대한 대략적인 테스트 테이블", Technometrics, vol. 17, no. 4, pp. 473 참조). -476. 및 Prescott, P. 1975, "선형 모델의 특이 치에 대한 대략적인 테스트", Technometrics, vol.17, no.1, 129-132 페이지)

> #Alternative approach using Lund Test 
> lundcrit<-function(a, n, q) { 
+ # Calculates a Critical value for Outlier Test according to Lund 
+ # See Lund, R. E. 1975, "Tables for An Approximate Test for Outliers in Linear Models", Technometrics, vol. 17, no. 4, pp. 473-476. 
+ # and Prescott, P. 1975, "An Approximate Test for Outliers in Linear Models", Technometrics, vol. 17, no. 1, pp. 129-132. 
+ # a = alpha 
+ # n = Number of data elements 
+ # q = Number of independent Variables (including intercept) 
+ F<-qf(c(1-(a/n)),df1=1,df2=n-q-1,lower.tail=TRUE) 
+ crit<-((n-q)*F/(n-q-1+F))^0.5 
+ crit 
+ } 

> testoutlm<-lm(Y~X1+X2,data=testout) 

> testout$fitted<-fitted(testoutlm) 

> testout$residual<-residuals(testoutlm) 

> testout$standardresid<-rstandard(testoutlm) 

> n<-nrow(testout) 

> q<-length(testoutlm$coefficients) 

> crit<-lundcrit(0.1,n,q) 

> testout$Ynew<-ifelse(testout$standardresid>crit,NA,testout$Y) 

> testout 
         X1         X2        Y    newX1   fitted    residual standardresid 
1  44.20043  1.5259458 169.3296 44.20043 209.8467 -40.5171222  -1.009507695 
2  40.46721  5.8437076 200.9038 40.46721 231.9221 -31.0183107  -0.747624895 
3  48.20571  3.8243373 189.4652 48.20571 203.4786 -14.0134646  -0.335955648 
4  60.09808  4.6609190 177.5159 60.09808 169.6108   7.9050960   0.190908291 
5  50.23627  2.6193455 210.4360 50.23627 194.3285  16.1075799   0.391537883 
6  43.50972  5.8212863 203.8361 43.50972 222.6667 -18.8306252  -0.452070155 
7  44.95626  7.8368405 236.5821 44.95626 223.3287  13.2534226   0.326339981 
8  66.14391  3.6828843 171.9624 66.14391 148.8870  23.0754677   0.568829360 
9  45.53040  4.8311616 187.0553 45.53040 214.0832 -27.0279262  -0.646090667 
10  5.00000  5.0000000 530.0000       NA 337.0535 192.9465135   5.714275585 
11 64.71719  6.4007245 164.8052 64.71719 159.9911   4.8141018   0.118618011 
12 54.43665  7.8695891 192.8824 54.43665 194.7454  -1.8630426  -0.046004311 
13 45.78278  4.9921489 182.2957 45.78278 213.7223 -31.4266180  -0.751115595 
14 49.59998  4.7716099 146.3090 49.59998 201.6296 -55.3205552  -1.321042392 
15 45.07720  4.2355525 192.9041 45.07720 213.9655 -21.0613819  -0.504406009 
16 62.27717  7.1518606 186.6482 62.27717 169.2455  17.4027250   0.430262983 
17 48.50446  3.0712422 228.3253 48.50446 200.6938  27.6314695   0.667366651 
18 65.49983  5.4609713 184.8983 65.49983 155.2768  29.6214506   0.726319931 
19 44.38387  4.9305222 213.9378 44.38387 217.7981  -3.8603382  -0.092354925 
20 43.52883  8.3777627 203.5657 43.52883 228.9961 -25.4303732  -0.634725264 
<snip> 
49 45.28317  5.0219647 208.1318 45.28317 215.3075  -7.1756966  -0.171560291 
50 44.84145  3.6252663 251.5620 44.84145 213.1535  38.4084869   0.923804784 
       Ynew 
1  169.3296 
2  200.9038 
3  189.4652 
4  177.5159 
5  210.4360 
6  203.8361 
7  236.5821 
8  171.9624 
9  187.0553 
10       NA 
11 164.8052 
12 192.8824 
13 182.2957 
14 146.3090 
15 192.9041 
16 186.6482 
17 228.3253 
18 184.8983 
19 213.9378 
20 203.5657 
<snip> 
49 208.1318 
50 251.5620 

분명히 Lund 테스트 (Grubbs springs를 염두에 두는 것) 이외의 다른 이상치 테스트가 있지만 다변량 데이터에 어느 것이 더 적합한 지 잘 모르겠습니다.


1
일 변량 상자 그림은 일 변량 특이 치를 발견하는 데 유용합니다. 그러나 다변량 특이 치를 완전히 놓칠 수 있습니다. 회귀 아이디어는 Y와 많은 X 변수가 있으면 괜찮습니다. 그러나 질문에서 말했듯이 Y가 없으므로 회귀는 부적절합니다.
Rob Hyndman

@RobHyndman-Y를 수정하고 (상수로 만들 수 있음) 인터셉트없이 다중 회귀를 모델링하려고 할 수 있습니다 . 실제로 아름답게 작동합니다. 본질적으로 이것은 전형적인 예외 감지 문제인 근본적으로 관리되지 않는 문제를 관리되는 문제로 변환합니다.
arielf

@arielf 재미있는. 그것에 대한 참조가 있습니까?
Rob Hyndman

@RobHyndman은 학술 논문이 아니지만 아마도 더 좋을 수도 있습니다. vw-top-errors@ goo.gl/l7SLlB의 내 github 페이지를 참조하십시오 (예에는 Y가 있지만 동일한 방법을 사용했지만 Y를 수정하여 감독되지 않은 문제에서도 매우 성공적으로 사용했습니다)
arielf

1

위의 답변 중 하나가 mahalanobis 거리에서 닿았습니다 .... 아마도 더 나아가서 동시 신뢰 구간을 계산하면 특이 치를 탐지하는 데 도움이 될 것입니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.