1 어노말리(Anomaly) 1

어노말리(Anomaly)는 동일한 패턴을 따르지 않거나 나머지 데이터와 동일한 구조를 갖지 않는 관측점을 일컫는다. 혹은, 기존 관측과는 상이하여 다른 생성기제에 의해 생성되었다고 판단할만한 관측값으로 정의할 수 있다.

어나멀리 탐지

1.1 정규분포 단변량 - Grubbs 검정

1950년 Frank E. Grubbs은 정규분포를 따르는 모집단에 이상점을 판정하는 통계검정을 제안하였다.

\[ G = \frac{\displaystyle\max_{i=1,\ldots, N}\left \vert Y_i - \bar{Y}\right\vert}{s} \] \(\overline{Y}\)는 표본평균, \(s\)는 표준편차를 나타낸다. \(N-2\)를 따르는 \(t-\)분포의 임계점을 기준으로 이상점 여부를 판정한다.

Tietjen and Moore 2 논문에 제시된 데이터를 바탕으로 Grubbs 검정을 수행해본다. 분광계(spectrometer)에서 나온 측정치의 이상점을 탐지하게 된다.

outliers 팩키지 grubbs.test() 함수를 통해서 정규분포 모집단을 가정하고 나온 단변량 변수로부터 이상점을 탐지해낼 수 있다.


    Grubbs test for one outlier

data:  spectrometer
G = 2.4688000, U = 0.0049308, p-value = 1.501e-07
alternative hypothesis: highest value 245.57 is an outlier

1.2 단변량 시계열 - Seasonal-Hybrid ESD 3

wikipediatrend 팩키지를 통해 위키백과사전 추세(trend) 데이터를 가져온다. 트위터 AnomalyDetection 팩키지의 AnomalyDetectionVec() 함수로 이상점을 검출하고 시각화한다.

2 다변량 전역/로컬 이상점

단변량이 아닌 다변량을 동원하여 이상점(anomaly)을 식별하는데 다차원 공간에서 전역 이상점을 식별하는 경우와 로컬 이상점을 식별하는 경우로 나눠진다.

2.1 다변량 전역 이상점

FNN: Fast Nearest Neighbor Search Algorithms and Applications

다변량 전역 이상점 탐지를 위해서 Koncar, Philipp(February 11, 2018), “Dataset Open Access Synthetic Dataset for Outlier Detection” 데이터를 예제로 삼아 분석을 시작해 나가자.

2.1.1 knn 알고리즘

FNN 팩키지 get.knn() 함수를 활용해서 기본디폴트 설정된 인접 10 관측점을 대상으로 knn 알고리즘을 적용한다. names(outlier_knn) 명령어를 실행하게 되면 nn.index, nn.distoutlier_knn 객체에 저정된다. 이를 통해서 knn_score 및 해당 인덱스를 추출할 수 있게 된다.

[1] "nn.index" "nn.dist" 

# A tibble: 1 x 4
      x     y outlier knn_score
  <dbl> <dbl> <fct>       <dbl>
1 0.211 0.974 yes         0.229

which.max(rowMeans(outlier_knn$nn.dist)) 명령어를 통해서 knn_score가 가장 높은 이상점을 인덱스를 뽑아낼 수도 있다.

3 random forest 모형 4

random forest 모형을 활용하여 이상점을 검출하는 것도 가능하다. Isolation Forest는 비지도 어나멀리 검출 알고리즘으로 이상점(Anomaly)는 상대적으로 의사결정나무 분기가 적게 된다는 아이디어에 기초한 모형이다.

등고선(contour) 그래프를 통해서 Isolation Forest 모형 예측값과 결합하여 시각화도 가능하다.

5 예측모형

caret 팩키지 프레임워크를 사용해서 Isolation Forest를 예측모형으로 적용할 경우 Sensitivty(리콜)이 상당히 높게 나오는 것을 확인할 수 있다.

Confusion Matrix and Statistics

          Reference
Prediction yes  no
       yes  32  31
       no    3 284
                                          
               Accuracy : 0.9029          
                 95% CI : (0.8669, 0.9318)
    No Information Rate : 0.9             
    P-Value [Acc > NIR] : 0.4739          
                                          
                  Kappa : 0.6019          
 Mcnemar's Test P-Value : 3.649e-06       
                                          
            Sensitivity : 0.91429         
            Specificity : 0.90159         
         Pos Pred Value : 0.50794         
         Neg Pred Value : 0.98955         
             Prevalence : 0.10000         
         Detection Rate : 0.09143         
   Detection Prevalence : 0.18000         
      Balanced Accuracy : 0.90794         
                                          
       'Positive' Class : yes