Методы сглаживания данных: скользящие средние и экспоненциальное сглаживание
Борьба с высокочастотным шумом в реальных измерениях
В инженерной практике, метеорологии, экономике и медицине исследователи постоянно работают с временными рядами — последовательностями данных, измеренными через равные промежутки времени. Любые реальные измерения неизбежно содержат шум. Показания кардиомонитора, датчика температуры в промышленной печи или график биржевых котировок всегда будут иметь хаотичные, случайные отклонения. Этот шум мешает анализу, скрывая истинный, физически или экономически обоснованный тренд. Процесс очистки полезного сигнала от случайных высокочастотных флуктуаций называется сглаживанием данных.
Математически сглаживание представляет собой фильтрацию низких частот. В отличие от строгой аппроксимации (где мы ищем единую аналитическую функцию для всего массива), методы сглаживания работают локально. Они вычисляют новое, «очищенное» значение для каждой точки, опираясь только на небольшую окрестность (окно) вокруг нее. Существует множество алгоритмов сглаживания, от простейших арифметических до сложных полиномиальных.
Простое и взвешенное скользящее среднее (SMA и WMA)
Самым известным и интуитивно понятным алгоритмом является простое скользящее среднее (Simple Moving Average, SMA). Принцип его работы тривиален: мы берем «окно» заданного размера (например, 5 точек), суммируем значения внутри этого окна и делим на 5. Полученное число становится новым сглаженным значением для центральной точки окна. Затем окно сдвигается на один шаг вправо, и операция повторяется. Чем шире окно, тем сильнее сглаживается график, но тем сильнее он отстает от резких изменений реального тренда (эффект запаздывания).
Недостатком SMA является то, что все точки в окне имеют одинаковый вес. Устаревшие данные на краю окна влияют на результат так же сильно, как и самые свежие данные в центре. Для решения этой проблемы применяется взвешенное скользящее среднее (WMA), где точкам присваиваются весовые коэффициенты. Обычно максимальный вес дается центральной точке (или самой свежей точке, если сглаживание направлено в прошлое), а веса остальных точек убывают по мере удаления от центра, что делает фильтр более отзывчивым.
Экспоненциальное сглаживание и фильтр Савицкого-Голея
Временные ряды в финансах и системах реального времени часто обрабатываются с помощью экспоненциального сглаживания (EMA). В отличие от скользящих средних, EMA не имеет фиксированного окна. Каждое новое сглаженное значение вычисляется как взвешенная сумма текущего измерения и предыдущего сглаженного значения. При этом веса всех исторических данных убывают экспоненциально вглубь веков. EMA требует минимум оперативной памяти (нужно хранить только одно предыдущее значение) и мгновенно реагирует на новые импульсы, что делает его любимым инструментом трейдеров.
Однако все методы усреднения имеют фатальный недостаток при обработке физических и химических спектров: они «срезают» острые пики полезного сигнала. Для сохранения формы пиков и точного вычисления производных в 1964 году был разработан Фильтр Савицкого-Голея. Этот метод проводит локальную полиномиальную регрессию (по методу наименьших квадратов) внутри движущегося окна. Сглаженное значение вычисляется не арифметическим усреднением, а подстановкой в найденный полином (обычно 2-й или 3-й степени). Благодаря этому фильтр Савицкого-Голея великолепно сглаживает шум, сохраняя при этом амплитуду, ширину и центры физических резонансов в спектроскопии.