Як запустити тестер граббса на python
Тест Граббса використовується для визначення наявності викидів у наборі даних. Для використання цього тесту набір даних має бути приблизно нормально розподіленим і містити принаймні 7 спостережень.
Цей підручник пояснює, як виконати тест Граббса в Python.
Тест Граббса на Python
Щоб виконати тест Граббса в Python, ми можемо використати функцію smirnov_grubbs() із пакета outlier_utils , яка використовує такий синтаксис:
smirnov_grubbs.test (дані, альфа = 0,05)
золото:
- дані: числовий вектор значень даних
- альфа: рівень значущості для використання в тесті. Значення за замовчуванням 0,05
Щоб скористатися цією функцією, спочатку потрібно встановити пакет outlier_utils :
pip install outlier_utils
Після встановлення цього пакета ви можете виконати тест Граббса. Наступні приклади ілюструють, як це зробити.
Приклад 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. Видаліть викид. Якщо значення дійсно викидається, ви можете видалити його, якщо воно матиме значний вплив на ваш аналіз.