Выбросами во временных рядах называются данные, которые подозрительно сильно отличаются от остальных данных.
Возникают выбросы по самым разным причинам. Но чаще всего, это или опечатка, которую допустил человек, когда вводил данные с клавиатуры (при передачи данных голосом по телефону или устно или корявым почерком или еще как-то), или сбой датчика по причине его неисправности или по причине какого-то внешнего воздействия на него (подземный толчок, мимо прошел человек с сильным магнитом, грызуны повредили изоляцию провода и там прошла искра, и т.п.).
Иногда, выбросы не связаны с ошибками, то есть это действительно была какая-то нетипичная аномалия. Но и от таких выбросов тоже желательно избавиться, так как часто из-за аномальности ситуации другие данные не подстроились под эту аномалию. Например, одним прибором был зафиксирован очень сильный, но короткий сигнал. Из-за того, что он очень короткий, другие приборы, которые мерят зависимые от сигнала параметры, просто в силу своей инерционности не успели среагировать на такое короткое изменение их параметров. Или у других приборов просто не хватило размера шкалы для фиксации аномального значения их параметров.
До процесса фильтрации необходимо понять, а присутствуют ли в полученных данных какие-нибудь выбросы или нет.
1.
Обнаружение выбросов необходимо начать со здравого смысла и знания предметной области.
Например, мы заранее знаем, что на поверхности Земли (если это не вулкан) не бывает температуры 1000 градусов Цельсия, или знаем, что раствор на базе воды не существует при температуре 150 градусов при нормальном давлении, знаем, что pH-фактор не бывает свыше 14, возраст человека не может быть 200 лет, а в России нет городов с населением 30 миллионов человек, и т.д. Все эти знания используем для первичного поиска выбросов.
2.
Затем, мы смотрим, как должны быть распределены данные в нашей предметной области.
В природе данные часто имеют гауссовское нормальное распределение.
А в сфере человеческой деятельности, это не всегда так. Там могут быть и гамма-распределения и распределения Пуассона и логнормальное распределение, и другие. Некоторые из этих распределений имеют пределы в виде нормального распределения. Поэтому нужно знать, эти пределы, чтобы решить, можно ли использовать нормальное распределение или нет.
Это очень важно, так незнание таких вещей может привести к тому, что за выбросы будут приняты длинные хвосты некоторых медленно спадающих распределений.
Фильтрация зависит от выбранного распределения.
Например, если мы уверены, что это гауссовское распределение, то стандартное правило заключается в том, чтобы считать выбросом всё, что отклоняется от медианы более чем на 3 стандартных отклонения.
Метод замены выброса зависит от характера данных.
Например, если это достаточно гладкие временные ряды, а выброс единичный или длина непрерывных данных с выбросами много меньше характерной длины волны, то применяем интерполяцию данных.
Если это не временные ряды, а выбросов очень много, то выброс заменяем медианой.
Так как в процессе замены выбросов у вас слегка меняется распределение (дисперсия и, возможно, среднее значение), то имеет смысл повторить поиск выбросов и их замену. Иногда такие повторы приходится делать неоднократно.
Если размерность пространства признаков достаточно большая, то часто хорошую замену выбросам дает машинное обучение на ближайших соседях.
В зависимости от характера данных можно применять те или иные способы машинного обучения для замены выбросов.
Но тут надо помнить, что если вы делаете замену выбросов одним способом машинного обучения, то потом не следует этим же способом делать регрессионное прогнозирование. Иначе можно попасть в ловушку.
Например, у вас стоит задача найти регрессионную модель машинного обучения на данных с выбросами. Вы сначала заменили выбросы с помощью машинного обучения методом ближайших соседей. Теперь забудьте про метод ближайших соседей и разрабатывайте модель машинного обучения другими методами. Дело в том, что если выбросов было очень много, то именно метод ближайших соседей даст очень хорошие результаты на сплит-тестах, что введет вас в заблуждение.
Поэтому имеет смысл перепробовать несколько способов замены выбросов и посмотреть, как ведут себя несколько разных моделей на базе разных методов машинного обучения.