Как запустить тестер grubbs на python


Тест Граббса используется для выявления наличия выбросов в наборе данных. Чтобы использовать этот тест, набор данных должен быть примерно нормально распределен и содержать не менее 7 наблюдений.

В этом руководстве объясняется, как выполнить тест Граббса в Python.

Тест Граббса на Python

Чтобы выполнить тест Граббса в Python, мы можем использовать функцию smirnov_grubbs() из пакета outlier_utils , которая использует следующий синтаксис:

smirnov_grubbs.test (данные, альфа = 0,05)

Золото:

  • данные: числовой вектор значений данных.
  • альфа: уровень значимости, используемый для теста. Значение по умолчанию — 0,05.

Чтобы использовать эту функцию, сначала необходимо установить пакет outlier_utils :

 pip install outlier_utils

После установки этого пакета вы можете выполнить тест Grubbs. Следующие примеры иллюстрируют, как это сделать.

Пример 1: Двусторонний тест Граббса

Следующий код показывает, как выполнить двусторонний тест Граббса, который обнаружит выбросы на обоих концах набора данных.

 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: Односторонний тест Граббса

Следующий код демонстрирует, как выполнить односторонний тест Граббса для минимального и максимального значения в наборе данных:

 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.

Как обрабатывать выбросы

Если тест Граббса обнаруживает выброс в вашем наборе данных, у вас есть несколько вариантов:

1. Еще раз проверьте, что значение не является опечаткой или ошибкой ввода данных. Иногда значения, которые появляются как выбросы в наборах данных, являются просто опечатками, допущенными человеком во время ввода данных. Прежде чем принимать какие-либо дальнейшие решения, сначала убедитесь, что значение введено правильно.

2. Присвойте выбросу новое значение . Если выброс окажется результатом опечатки или ошибки ввода данных, вы можете присвоить ему новое значение, например среднее значение или медиану набора данных.

3. Удалите выброс. Если значение действительно является выбросом, вы можете удалить его, если оно окажет существенное влияние на ваш анализ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *