Outliers에 대한 제 블로그 시리즈에 다시 오신 것을 환영합니다. ~ 안에 첫 번째 에피소드 , 이상값을 정의하고 시각적으로 식별하는 방법을 살펴보았습니다. ~ 안에 두 번째 에피소드 , 한 차원에서 이상값을 식별하는 데 도움이 되도록 분위수(Box & Whisker 플롯을 통해)를 사용했습니다.
이 에피소드에서는 Mahalanobis 거리를 사용하여 다차원에서 이상값을 식별하는 방법을 살펴봅니다. 우리는 또한 T를 간단히 살펴 봅니다. 2 , 이는 Mahalanobis 거리의 간단한 확장입니다.
다차원 이상값
그림 1은 그림 중 하나를 재현한 것입니다. 에피소드 1 명확한 이상치(빨간색 사각형으로 표시됨)가 있는 1,000개 데이터 포인트의 2차원 플롯을 보여줍니다.
Figure 1: 1,000 data points in two dimensions, outlier marked in redFigure 1: 1,000 data points in two dimensions, outlier marked in redFigure 1: 1,000 data points in two dimensions, outlier marked in redFigure 1: 1,000 data points in two dimensions, outlier marked in red그림 1: 2차원의 1,000개 데이터 포인트, 이상값은 빨간색으로 표시됨
그림 1의 산점도를 사용하면 단변량 히스토그램 분포에서 이상값이 명확하지 않은 경우에도 이상값을 2차원에서 시각적으로 쉽게 확인할 수 있습니다. 따라서 Box & Whisker(분위수) 기술은 2회 다차원 데이터를 분석할 때 항상 신뢰할 수 있는 것은 아닙니다. 그리고 이상값을 시각적으로 식별합니다(예: 에피소드 1 ) 차원 수가 증가함에 따라 어려워집니다. 그렇다면 이러한 다차원 이상값을 보다 안정적으로 감지하려면 어떻게 해야 할까요?
마할라노비스 거리
마할라노비스 거리(D 중 )는 다차원 이상값을 식별하기 위한 수치적 방법을 제공합니다. 창시자인 인도의 통계학자인 Prasanta Chandra Mahalanobis(1893-1972)의 이름을 따서 명명되었습니다. Dr. Mahalanobis에 대한 자세한 내용은 이 Wikipedia 기사 .
기원 후 중 그림 1에 표시된 데이터 세트에 대한 플롯은 다음과 같습니다.
Figure 2: Mahalanobis Distance plot for 1,000 data points from Figure 1Figure 2: Mahalanobis Distance plot for 1,000 data points from Figure 1Figure 2: Mahalanobis Distance plot for 1,000 data points from Figure 1Figure 2: Mahalanobis Distance plot for 1,000 data points from Figure 1그림 2: 그림 1의 1,000개 데이터 포인트에 대한 Mahalanobis 거리 도표
그림 2는 행 순서 대 D의 모든 데이터 포인트를 보여줍니다. 중 Y축에서. D의 가치 중 각 포인트는 모든 데이터 포인트의 중심에서 각 포인트의 표준화된 "거리"를 나타냅니다. 빨간색 데이터 포인트는 나머지 포인트에서 명확하게 눈에 띄므로 이상값으로 추가 조사가 필요합니다.
그렇다면 이 계산은 어떻게 이루어지나요?
일반적인 방법
1,000포인트의 2차원 분포가 있다고 가정해 보겠습니다. 각 차원에서 999개의 점은 평균이 0이고 표준 편차가 1.0인 정규 분포 모집단에서 가져옵니다. 그런 다음 샘플의 마지막 지점으로 이상점을 추가했습니다. XY 산점도를 만들면 다음과 같은 결과를 얻을 수 있습니다.
Figure 3: Scatterplot of 1,000 uncorrelated data points, with one marked outlier (red)Figure 3: Scatterplot of 1,000 uncorrelated data points, with one marked outlier (red)Figure 3: Scatterplot of 1,000 uncorrelated data points, with one marked outlier (red)Figure 3: Scatterplot of 1,000 uncorrelated data points, with one marked outlier (red)그림 3: 상관관계가 없는 1,000개 데이터 포인트의 산점도(빨간색)
그림 3에서 빨간색 관심 지점에 주목하십시오. 각 차원에서 1,000점 샘플의 평균과 표준편차를 쉽게 계산할 수 있으며 피타고라스 정리를 사용하여 빨간색 점에서 점의 중심까지의 유클리드 거리를 계산할 수 있습니다. 다차원의 경우:

실제로 그림 4와 같이 중심에서 동일한 거리를 나타내는 중심을 중심으로 원을 그릴 수 있습니다.
Figure 4: Scatterplot of 1,000 uncorrelated data points, with equidistant circles from centroid overlaidFigure 4: Scatterplot of 1,000 uncorrelated data points, with equidistant circles from centroid overlaidFigure 4: Scatterplot of 1,000 uncorrelated data points, with equidistant circles from centroid overlaidFigure 4: Scatterplot of 1,000 uncorrelated data points, with equidistant circles from centroid overlaid그림 4: 상관관계가 없는 1,000개 데이터 포인트의 산점도, 중심에서 등거리 원이 중첩됨
그림 4에서 원은 점의 중심까지의 거리를 1, 2, 3, 4 단위(가장 작은 단위에서 가장 큰 단위로)로 나타냅니다. 여기에서 빨간색으로 표시된 점이 점의 중심에서 가장 멀리 떨어져 있음을 알 수 있습니다. 그 거리는 "d"로 표시됩니다.
이는 유사하게 스케일링된 분포(즉, 표준 편차가 동일한 경우)가 있는 경우 잘 작동합니다.하지만 그림 5와 같이 다른 척도가 있다면 어떨까요?
Figure 5: Scatterplot of 1,000 uncorrelated data points, having different means and standard deviations in each dimension.Figure 5: Scatterplot of 1,000 uncorrelated data points, having different means and standard deviations in each dimension.Figure 5: Scatterplot of 1,000 uncorrelated data points, having different means and standard deviations in each dimension.Figure 5: Scatterplot of 1,000 uncorrelated data points, having different means and standard deviations in each dimension.그림 5: 각 차원에서 서로 다른 평균과 표준 편차를 갖는 1,000개의 상관되지 않은 데이터 포인트의 산점도.
여기에 두 가지 문제가 있습니다. 첫째, X3 차원의 점 평균은 0이 아닙니다. 모든 데이터 포인트에서 평균을 빼면 간단하게 해결할 수 있습니다.
두 번째 문제는 X3 차원의 표준 편차가 X1 차원보다 훨씬 크다는 것입니다. 차이를 보상할 수 없다면 거리 계산이 무의미해집니다. 이것은 또한 쉽게 수행됩니다. 0에서 평균 이동을 수정한 후 각 차원에서 표준 편차로 간단히 나눕니다. 이는 표준 편차의 불일치를 정규화합니다. 이 거리를 평가하는 다차원 방정식은 다음과 같습니다.

여기서 m과 s는 각 차원의 평균과 표준편차를 나타냅니다. 이러한 계산을 수행하고 표준화된 데이터를 다시 플로팅하면 아래 그림을 얻을 수 있습니다.
Figure 6: Data from Figure 5 after transforming to correct for mean and standard deviation of each dimensionFigure 6: Data from Figure 5 after transforming to correct for mean and standard deviation of each dimensionFigure 6: Data from Figure 5 after transforming to correct for mean and standard deviation of each dimensionFigure 6: Data from Figure 5 after transforming to correct for mean and standard deviation of each dimension그림 6: 각 차원의 평균 및 표준 편차를 수정하기 위해 변환한 후 그림 5의 데이터
이제 우리는 0이 아닌 평균과 같지 않은 표준편차에 대해 데이터를 조정할 수 있는 방법을 갖게 되었습니다. 이는 각 차원의 데이터가 서로 독립적인 경우(즉, 상관관계가 없는 경우) 잘 작동합니다. 그러나 그림 1에 표시된 것과 같은 상관관계가 있는 경우 어떻게 해야 합니까?
이를 수행하는 한 가지 방법은 주성분을 사용하여 데이터의 추세와 일치하는 새 축을 설정한 다음 위에서 설명한 작업을 수행하는 것입니다. 그러나 이것은 많은 클릭이 필요합니다. (작동 방식에 관심이 있는 경우 부록 A를 참조하십시오.)
다행스럽게도 Dr. Mahalanobis는 이 거리를 계산하는 쉽고 우아한 방법을 제공합니다!
거리 계산을 위한 마할라노비스 방정식
D를 계산하기 위한 Dr. Mahalanobis의 우아한 방정식 중 이다:
어디:

i의 N 차원 값의 벡터입니다. 일 개별 관찰 데이터 포인트.
N = 관심 있는 차원(또는 열)의 수입니다.
T는 조옮김 작업을 나타냅니다.

관심 있는 N 차원(또는 열) 각각의 수단의 벡터입니다.
에스 -1 모든 데이터 요소에 대한 NxN 공분산 행렬의 역입니다(JMP의 다변량 플랫폼에서 사용 가능).
위의 방정식에 적절한 값을 연결하면 D 중 내가에서 일 데이터 세트에 있는 모든 점의 중심을 가리킵니다. 이 계산의 작동 방식에 관심이 있는 경우 부록 B에서 간단한 샘플 문제를 살펴봅니다.
JMP의 Mahalanobis 플롯
디 중 그 자체로는 우리에게 거의 쓸모가 없습니다. 다른 데이터 포인트와 비교할 때만 의미가 있습니다. JMP의 Mahalanobis 도표는 이러한 결과를 보여줍니다.
Analysis/Multivariate Methods/Multivariate로 이동하여 열을 선택한 다음 빨간색 드롭다운에서 Outlier Analysis/Mahalanobis 거리를 선택하여 Mahalanobis 플롯을 생성할 수 있습니다. 그림 1의 예제 데이터 세트의 경우 다음을 제공합니다.
Figure 7: Mahalanobis distances for 1,000 data point sample (repeat of Figure 2)Figure 7: Mahalanobis distances for 1,000 data point sample (repeat of Figure 2)Figure 7: Mahalanobis distances for 1,000 data point sample (repeat of Figure 2)Figure 7: Mahalanobis distances for 1,000 data point sample (repeat of Figure 2)그림 7: 1,000개의 데이터 포인트 샘플에 대한 Mahalanobis 거리(그림 2 반복)
여기에서 데이터 테이블의 1행에 있는 데이터 포인트가 가장 긴 거리(D 중 ), 모든 10개 데이터 포인트의 중심에서 가장 멀리 떨어져 있음을 나타냅니다. 파란색 선은 D를 믿는지 여부에 대한 95% 신뢰 상한(UCL)을 나타냅니다. 중 0과 크게 다릅니다. 빨간색 점은 분명히 UCL보다 높으므로 이상값으로 추가 조사가 필요합니다.
그러나 이상값은 특히 작은 데이터 세트에서 탐지하기에 항상 그렇게 분명한 것은 아닙니다. 부록 B의 예에서는 작은 데이터 세트(3차원에서 10개의 데이터 포인트)에 대한 샘플 계산을 보여줍니다. 이 데이터 세트는 D를 생성합니다. 중 아래와 같이 플롯하십시오.
Figure 8: Mahalanobis distances for 10 data point sample in Appendix BFigure 8: Mahalanobis distances for 10 data point sample in Appendix BFigure 8: Mahalanobis distances for 10 data point sample in Appendix BFigure 8: Mahalanobis distances for 10 data point sample in Appendix B그림 8: 부록 B의 10개 데이터 포인트 샘플에 대한 Mahalanobis 거리
더 디 중 플롯은 점 1을 이상값으로 식별했습니다. 그러나 우리는 또한 D 중 행 1은 D와 크게 다르지 않습니다. 중 행 7! 왜 이런거야? 그 질문에 대한 답을 얻으려면 다음 에피소드를 기다려야 합니다!
T에 대한 간단한 메모 2
JMP T에 대한 옵션도 제공합니다. 2 분석/다변량 방법/다변량에서 계산한 다음 이상값 분석을 수행합니다. 티 2 는 단순히 D의 제곱입니다. 중 . 일부 사람들은 이상값과 대량의 데이터 사이를 더 시각적으로 구분하기 위해 이를 사용하기를 좋아하지만 T 2 실제로 D와 동일한 정보를 포함합니다. 중 .
다음 에피소드
다음 에피소드에서는 이상값을 보는 또 다른 방법이며 위의 예제 데이터 세트에서 이상값을 두드러지게 만드는 Jackknife 거리를 다룰 것입니다.
에서 이 시리즈의 모든 게시물 보기 이상값 이해 .
부록 A: 주성분을 사용하여 이상값 식별
그림 1의 축을 회전하여 다음과 같이 데이터 추세와 정렬되도록 하는 방법이 있다면 좋을 것입니다.
Figure 9: Conceptual rotation of axes for two-dimensional data setFigure 9: Conceptual rotation of axes for two-dimensional data setFigure 9: Conceptual rotation of axes for two-dimensional data setFigure 9: Conceptual rotation of axes for two-dimensional data set그림 9: 2차원 데이터 세트에 대한 축의 개념적 회전
그런 다음 앞서 설명한 데이터 표준화 기술을 사용하여 이상값을 감지할 수 있습니다.
이를 수행하는 한 가지 방법은 주성분 분석(PCA)입니다. PCA는 데이터에 가장 적합한 직교(상호 수직) 축 집합을 찾습니다. 데이터 세트에 원래 차원(열)이 있는 만큼 주성분을 가질 수 있습니다. JMP에서 PCA는 Analyze/Multivariate Methods/Principal Components 또는 Analyze/Multivariate Methods/Multivariate의 두 위치에서 찾을 수 있습니다. 그런 다음 Multivariate 옆의 빨간색 드롭다운에서 Principal Components/on Correlations를 선택합니다. 빨간색 드롭다운은 주성분을 데이터 테이블에 다시 저장하는 옵션도 제공합니다. 이 작업을 수행한 후에는 위에서 설명한 평균 및 표준 편차를 수정하는 방법을 사용하여 중심으로부터의 거리를 결정할 수 있습니다.
부록 B: D 중 예제 데이터 세트에 대한 계산
3개의 열과 10개의 행이 있는 샘플 데이터 세트가 있다고 가정해 보겠습니다.
Figure 10: Small sample data set used for DM example calculationsFigure 10: Small sample data set used for DM example calculationsFigure 10: Small sample data set used for DM example calculationsFigure 10: Small sample data set used for DM example calculations그림 10: DM 예제 계산에 사용되는 작은 샘플 데이터 세트
JMP에서는 이 세 열에 대해 분석/다변량 방법/다변량을 실행하여 다음과 같은 산점도 행렬을 생성할 수 있습니다.
Figure 11: Scatterplot matrix for example dataFigure 11: Scatterplot matrix for example dataFigure 11: Scatterplot matrix for example dataFigure 11: Scatterplot matrix for example data그림 11: 예제 데이터에 대한 산점도 행렬
그림 11에서 행 1 데이터(빨간색으로 강조 표시됨)는 X1-X2 차원에서 비교할 때 특이치로 보이지만 X1-X3 또는 X2-X3 플롯에서는 명확하지 않습니다.
첫 번째 점에 대한 Mahalanobis 거리를 계산하려고 합니다. 따라서 위의 D에서 벡터와 행렬을 채우십시오. 중 방정식, 관심 지점부터 시작합니다.

각 열의 평균은 여러 가지 방법으로 찾을 수 있습니다. Cols/Column Viewer를 사용한 다음 요약 표시를 사용하겠습니다.
Figure 12: Summary statistics for example three-dimensional 10-point data setFigure 12: Summary statistics for example three-dimensional 10-point data setFigure 12: Summary statistics for example three-dimensional 10-point data setFigure 12: Summary statistics for example three-dimensional 10-point data set그림 12: 예를 들어 3차원 10포인트 데이터 세트에 대한 요약 통계
따라서 수단의 벡터는 다음과 같이 됩니다.

다음으로 분석/다변량 방법 아래에 있는 공분산 행렬이 필요합니다. 빨간색 드롭다운 삼각형에서 공분산 행렬을 선택합니다.
Figure 13: Covariance matrix for example three-dimensional 10-point data setFigure 13: Covariance matrix for example three-dimensional 10-point data setFigure 13: Covariance matrix for example three-dimensional 10-point data setFigure 13: Covariance matrix for example three-dimensional 10-point data set그림 13: 예를 들어 3차원 10포인트 데이터 세트에 대한 공분산 행렬
공분산 행렬의 역행렬 S도 필요합니다. -1 . JMP는 메뉴 시스템에서 해당 정보를 제공하지 않지만 다음과 같이 사용자 정의 스크립트에서 쉽게 얻을 수 있습니다.
Figure 14: JMP JSL script to find inverse of a matrixFigure 14: JMP JSL script to find inverse of a matrixFigure 14: JMP JSL script to find inverse of a matrixFigure 14: JMP JSL script to find inverse of a matrix그림 14: 역행렬을 찾는 JMP JSL 스크립트
결과는 다음과 같습니다.
에스 -1 =

그런 다음 행렬 방정식을 연결하고 해결합니다.





마할라노비스 거리(D 중 )는 예제 데이터 세트의 행 1에 표시된 데이터의 경우 2.814입니다.
Figure 15: Mahalanobis plot for example data set (repeat of Figure 8)Figure 15: Mahalanobis plot for example data set (repeat of Figure 8)Figure 15: Mahalanobis plot for example data set (repeat of Figure 8)Figure 15: Mahalanobis plot for example data set (repeat of Figure 8)그림 15: 예제 데이터 세트에 대한 Mahalanobis 플롯(그림 8의 반복)