Python에서 grubbs의 테스터를 실행하는 방법


Grubbs 테스트는 데이터 세트에서 이상값의 존재를 식별하는 데 사용됩니다. 이 검정을 사용하려면 데이터 세트가 대략적으로 정규 분포를 따르고 최소 7개의 관측치를 포함해야 합니다.

이 튜토리얼에서는 Python에서 Grubbs 테스트를 수행하는 방법을 설명합니다.

Python의 Grubbs 테스트

Python에서 Grubbs 테스트를 수행하려면 다음 구문을 사용하는 outlier_utils 패키지의 smirnov_grubbs() 함수를 사용할 수 있습니다.

smirnov_grubbs.test (데이터, 알파 = 0.05)

금:

  • 데이터: 데이터 값의 숫자형 벡터
  • 알파: 테스트에 사용할 유의 수준입니다. 기본값은 0.05입니다.

이 기능을 사용하려면 먼저 outlier_utils 패키지를 설치해야 합니다.

 pip install outlier_utils

이 패키지가 설치되면 Grubbs 테스트를 수행할 수 있습니다. 다음 예에서는 이를 수행하는 방법을 보여줍니다.

예 1: 양측 Grubbs 테스트

다음 코드는 데이터 세트의 양쪽 끝에서 이상값을 감지하는 양측 Grubbs 테스트를 수행하는 방법을 보여줍니다.

 import numpy as np
from outliers import smirnov_grubbs as grubbs

#define data
data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40])

#perform Grubbs' test
grubbs. test (data, alpha=.05)

array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29])

이 함수는 이상값 없이 단순히 배열을 반환합니다. 이 경우 최대값인 40은 이상치이므로 제거되었습니다.

예 2: 단방향 Grubbs 테스트

다음 코드는 데이터 세트의 최소값과 최대값에 대해 단측 Grubbs 테스트를 수행하는 방법을 보여줍니다.

 import numpy as np
from outliers import smirnov_grubbs as grubbs

#define data
data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40])

#perform Grubbs' test to see if minimum value is an outlier
grubbs. min_test (data, alpha=.05)

array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40])

#perform Grubbs' test to see if minimum value is an outlier
grubbs. max_test (data, alpha=.05)

array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29])

최소 이상값 테스트에서 최소값을 이상값으로 감지하지 못했습니다. 그러나 최대 이상값 테스트에서는 최대값 40이 이상값으로 확인되어 제거되었습니다.

예시 3: 이상치 지수 추출

다음 코드는 이상값의 인덱스를 추출하는 방법을 보여줍니다.

 import numpy as np
from outliers import smirnov_grubbs as grubbs

#define data
data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40])

#perform Grubbs' test and identify index (if any) of the outlier
grubbs. max_test_indices (data, alpha=.05)

[16]

이는 테이블의 인덱스 위치 16에 이상값이 있음을 나타냅니다.

예시 4: 이상치에서 값 추출

다음 코드는 이상치에서 값을 추출하는 방법을 보여줍니다.

 import numpy as np
from outliers import smirnov_grubbs as grubbs

#define data
data = np.array([5, 14, 15, 15, 14, 19, 17, 16, 20, 22, 8, 21, 28, 11, 9, 29, 40])

#perform Grubbs' test and identify the actual value (if any) of the outlier
grubbs. max_test_outliers (data, alpha=.05)

[40]

이는 값이 40인 이상값이 있음을 나타냅니다.

이상치를 처리하는 방법

Grubbs 테스트가 데이터 세트에서 이상값을 식별하는 경우 다음과 같은 몇 가지 옵션이 있습니다.

1. 값이 오타나 데이터 입력 오류가 아닌지 다시 확인하세요. 때로는 데이터 세트에서 이상치로 나타나는 값이 단순히 데이터 입력 중 개인이 작성한 오타일 수도 있습니다. 먼저 추가 결정을 내리기 전에 값이 올바르게 입력되었는지 확인하십시오.

2. 이상값에 새 값을 할당합니다 . 이상값이 오타나 데이터 입력 오류로 인해 발생한 것으로 판명되면 데이터 세트의 평균 이나 중앙값 과 같은 새 값을 할당하기로 결정할 수 있습니다.

3. 이상값을 제거합니다. 값이 실제로 이상값인 경우 분석에 상당한 영향을 미칠 경우 해당 값을 제거하도록 선택할 수 있습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다