Обнаружение выбросов с помощью Chi Square

Обнаружение выбросов с помощью Chi Square

2 ноября 2022 г.

Это простой метод обнаружения выбросов, процедура в основном представляет собой квантиль распределения Вейбулла теста хи-квадрат в python.

У нас могут быть небольшие серии данных, такие как запасы, толщина проката и т. д.; иногда данные собираются вручную, и нам необходимо обнаруживать выбросы в качестве первого фильтра, чтобы обнаруживать человеческие ошибки в собранных данных и исправлять их перед анализом, в других случаях данные необходимо разбивать по сезонам, процессам и т. д.

Я понимаю, что кластеризация, такая как смесь Гаусса, для обнаружения выбросов или что-то в этом роде для каждой переменной слишком дорого, а вычисление Хи-квадрат дешевле в вычислительном отношении.

Первый вопрос: почему каждая часть этого процесса? Предлагаемый подход к этой проблеме заключается в том, чтобы просто найти ошибку наблюдения, и для этого задача построена на вычислении точности измерения. Процедура состоит из:

  1. Тест хи-квадрат. Его можно использовать для проверки того, равна ли дисперсия генеральной совокупности заданному значению.
  2. Распределение Вейбулла: оно также может моделировать искаженные данные.
  3. Квантильная функция: распределение вероятностей случайной величины.

Мы не можем установить границы выбросов путем расчета межквартильного диапазона, поскольку его можно использовать для продуктов и сезонов разного характера. Но тогда вы можете использовать простой критерий хи-квадрат и искать ошибки наблюдения. Мы можем продолжить как маленький рецепт.

Рецепт:

  1. Первый шаг — отображение плотности рассматриваемой переменной.

    Я хочу знать природу переменной

2. Расчет точности измерения, классическая процедура, представленная в фильтре Калмана, вычитает медиану из значения; я делю значение между медианой, чтобы сделать нормализованную безразмерную меру:

This normaized measure is used like framework for the exercise, we can observe little bit less skewness

https://gist.github.com/devicemxl/3bcdb35be4451ae7767b1e555ca7722d#file-measurement -py?embedable=true

  1. Скользящий ряд хи-квадрат (χ2) позволяет нам создавать постоянно обновляемую последовательность хи-квадрат и тем самым получать легко группируемые значения

    с χ2 теперь мы можем увидеть

https://gist.github.com/devicemxl/04b5658416bb642487ed9522c11eeb9c#file -movingchi-square-py?embedable=true

4. Квантиль (Q); у каждой бизнес-переменной есть свои единственные диапазоны, в этом случае я выбираю квантиль 95°, потому что он должен быть переменной с фиксированным диапазоном.

5. Классифицировать; со значением в Q мы можем классифицировать доходность χ2:

https://gist.github.com/devicemxl/5f254d5c65232d3755a7fa5fb8663140#file-classifychi -py?embedable=true

6. Вуала! При этом мы разделяем шум и данные нелинейной переменной:

Здесь мы реализуем очень простой процесс обнаружения выбросов, у него немного больше возможностей; Через несколько дней я напишу еще один пост на эту тему.

исходный код:

https://github.com/devicemxl/Chi-Square-for-Outliers?embedable =правда

Источники и дополнительная литература:

Некоторые права защищены

Вопросы и комментарии всегда приветствуются


Также опубликовано здесь


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE