Как стать автором
Обновить

Пример экспресс-анализа предпочтительности моделей импутации пропусков в многомерных временных рядах

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров763

Содержание

Введение и дизайн эксперимента
Предварительная обработка
Моделирование
Сводные результаты моделирования
Визуализации и интерпретация результатов
Выводы и что дальше

Введение и дизайн эксперимента

Как правило, устранение пропусков — обязательный этап  предварительной обработки временных рядов. Эта небольшая работа — попытка создания инструмента оперативного подбора модели для импутации (вменения) пропущенных последовательностей.В качестве прототипа использована эта публикация.  

Изменения и добавления по отношению к прототипу:

1. Добавлены относительно свежие  open source DL модели, специализированные для временных рядов:

  • TSMixer - PyTorch based модель на основе  наложения многослойных перцептронов (MLP).

  • NBeats - PyTorch based модель на основе MLP с возможностью интерпретации.  

2. Добавлен  KalmanForecaster - модель статистического типа, основанная на одноименном методе динамической фильтрации.

3. Добавлена LightGBMModel - ML класса модель градиентного бустинга, работающая с лагированными временными рядами.

   Перечисленные  модели взяты из фреймворка Darts. Это лишь одна из многих доступных реализаций таких моделей.

4. Добавлен KNNImputer из репозитория sklearn.impute.

5. Метрика RMSE дополнена метриками MAE и MAPE.

6. На примере моделей LightGBM, IterativeImputer  и KNNImputer проведен многомерный анализ — использованы экзогенные ковариаты, извлеченные из второго временного ряда.

7. Добавлен анализ стационарности, корреляции, коинтеграции и причинности использованных временных рядов.

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

9. Для удобства  результаты сведены в таблицы и визуализированы.

В качестве  данных выбраны два ряда из многомерного набора Household Electric Power Consumption.

В анализе участвуют следующие методы и модели:

1. Метод Forward filling.

2. Метод Interpolation.

3. Модель KNNImputer with Covariates.

4. Модель IterativeImputer with Covariates.

5. Модель GaussianProcessRegressor.

6. Модель ThetaModel.

7. Модель TSMixer.

8. Модель NBeats.

9. Модель KalmanForecaster with Covariates.

10. Модель LightGBM with Covariates.

Перечисленные инструменты можно отнести к двум классам:

  • специализированные для работы с временными рядами и воспринимающие последовательные наблюдения как зависимые данные, определенные на отношении порядка (6, 7, 8, 9);

  • специализированные для работы с табличными данными, воспринимающие последовательные наблюдения как независимые (1, 2, 3, 4, 5).

Особняком стоит модель LightGBM. Изначально она предназначена для табличных данных. Но приспособлена к пониманию зависимостей временного ряда путем подачи пакета из его же сдвинутых (лагированных) экземпляров.

Задача импутации может решаться на потоковых и на исторических данных. В первом случае это обычная задача прогнозирования без "заглядывания вперед" на этапе обучения. При работе на исторических данных можно обучаться на всей длине ряда, за исключением пропусков. Для работы моделей пропуски должны быть удалены, либо  заполнены способом, не приводящим к утечке данных (leakage). В целях сохранения равенства длин используемых рядов  для заполнения пропусков выбрана линейная интерполяция.

Предварительная настройка моделей адаптировала бы их к тому либо иному виду сложностей. Что продемонстрировано применением модели KalmanForecaster с двумя значениями одного из параметров. С учетом этого все модели использованы, практически, с настройками по умолчанию. Нейросетевые модели обучались на 30-ти  эпохах. Количество итераций для IterativeImputer также было небольшим. Напомним, что  цель работы — экспресс-анализ предпочтительности инструмента для конкретного пропуска в конкретном ряду. Качественная импутация с оптимизацией гиперпараметров — это уже задача следующего этапа.

Предварительная обработка

  • Из набора выделены два ряда:

    • 'Global active power consumption',

    • 'Sub_metering_2'.

  • Методом fillna(mean()) заполнены пропуски, ряды ресемплированы  до дневной частоты. Всего 1442 точки.

Рисунок 1. Временной ряд Global_active_power_consumption.
Рисунок 1. Временной ряд Global_active_power_consumption.
Рисунок 2. Временной ряд Sub_metering_2.
Рисунок 2. Временной ряд Sub_metering_2.

В целях проверки пригодности временного ряда Sub_metering_2 для импутации пропусков в Global_active_power_consumption выполнены статистические тесты:

  • на корреляцию Пирсона (линейная связь между данными без учета временной зависимости);

  • вспомогательные тесты обоих рядов на стационарность — расширенный тест Дики-Фуллера (ADF);

  • и, наиболее важные для нас,  расширенный  коинтеграционный тест Энгла-Грейнджера и тест на причинность.

    Два последних теста формулируют нулевые гипотезы как отсутствие коинтеграции и причинности соответственно. По приведенным результатам мы наблюдаем, что обе гипотезы отвергнуты.

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

Рисунок 3.1. Тест на стационарность.
Рисунок 3.1. Тест на стационарность.
Рисунок 3.2. Тесты на коинтеграцию и корреляцию.
Рисунок 3.2. Тесты на коинтеграцию и корреляцию.
Рисунок 3.3. Результаты теста причинности.
Рисунок 3.3. Результаты теста причинности.
  • На следующем шаге были созданы четыре секции сплошных пропусков в ряду Global_active_power_consumption

Рисунок 4. Генерация пропусков.
Рисунок 4. Генерация пропусков.

ts_missing_len = [10, 20, 55, 90] #Значения длин для четырех секций пропусков

  • Пропуски в данных имеют два типа сложности:

    • Сложность, связанную с длиной. Чем длиннее, тем сложнее импутация.

    • Сложность, связанную с наличием в месте пропуска шейплета — определенного паттерна, нехарактерного для большей части ряда.

  Шейплеты можно заметить в первой и третьей секциях. Вторая и четвертая — содержат только более характерные для ряда флуктуации.

  Таким образом, первый тип сложности возрастает с номером секции, второй тип — характерен для первой и третьей. Если вернуться к рисункам 1 и 2, то можно заметить похожие шейплеты во втором ряду. Многомерные шейплеты — это полезная информация для многомерных моделей.

  Сопоставив шейплеты с данными, можно предположить, что длинные продолжительные минимумы энергопотребления в августе — сентябре связаны с отпусками. В марте также есть минимумы, но более короткие.

Моделирование

Далее мы применяем методы  к данным с пропусками, соответственно получаем импутацию методами. Затем обучаем модели на данных с пропусками и получаем предсказания моделей. Вся информация отображена на рисунках: истинные и импутированные значения для каждой из четырех секций, значения метрик, суммарное время моделирования. На чем можно сконцентрироваться:

  • на значениях метрик, каждая из них имеет свои особенности;

  • на том, насколько точно модели смогли поймать изменчивость истинного ряда;

  • на недопрогнозе и перепрогнозе, использованные метрики их не различают;

  • на elapsed time - все что меньше секунды это ноль;

  • на том, как инструменты справляются с разными типами сложности.

Рисунок 5. Forward_filling.
Рисунок 5. Forward_filling.

Для второй секции — неплохо. У четвертой явный перепрогноз.

Рисунок 6. Linear_interpolation.
Рисунок 6. Linear_interpolation.

Есть прогресс в третьей и четвертой секциях. Здесь не приведены данные по интерполяциям более высоких порядков. На этих данных они существенно хуже за счет "фантазий".

Рисунок 7. KNNImputer_with_Covariates.
Рисунок 7. KNNImputer_with_Covariates.

Это уже очень достойные результаты. Может в первой секции есть промах. Но он связан скорее с неподходящими гиперпараметрами. Слишком  разные виды пропусков. Нужна адаптивная настройка. Обратим внимание на доверительный интервал, растущий к центру секции. Ковариаты сработали. На третьей секции модель "поймала" шейплет.

Рисунок 8. IterativeImputer_with_Covariates.
Рисунок 8. IterativeImputer_with_Covariates.

На двойке и четверке лучше родственной модели, на третьей ‑ неудача. Обращаем внимание на несоответствие представлений модели о доверительном интервале и реальных данных. Позже попробуем объяснить этот казус.

На этом комментарии приостановим. Визуализации достаточно просты и нативны. Возможно стоит обратить внимание на KalmanForecaster с разными параметрами.

Рисунок 9. GaussianProcessRegressor.
Рисунок 9. GaussianProcessRegressor.
Рисунок 10. Theta_model.
Рисунок 10. Theta_model.
Рисунок 11. TSMixer_Model.
Рисунок 11. TSMixer_Model.
Рисунок 12. NBeats_Model.
Рисунок 12. NBeats_Model.
Рисунок 13. KalmanForecaster_SV_dim__3.
Рисунок 13. KalmanForecaster_SV_dim__3.
Рисунок 14. KalmanForecaster_SV_dim__30.
Рисунок 14. KalmanForecaster_SV_dim__30.
Рисунок 15. LightGBMModel_with_Covariates.
Рисунок 15. LightGBMModel_with_Covariates.

Сводные результаты

Значения метрик помещены в сводные таблицы по секциям пропусков.

  • Модели ранжированы по MAE.

  • Лучшие и худшие значения метрик подсвечены.

  • Видно, что разные метрики ранжируют модели по-разному.

  • Последний столбец содержит суммарное время обработки всех четырех секций. Ряды у нас небольшие и много значений меньше секунды округлено до нуля.

Таблица 1. Сводные метрики по секции пропусков 1.
Таблица 1. Сводные метрики по секции пропусков 1.
Таблица 2. Сводные метрики по секции пропусков 2.
Таблица 2. Сводные метрики по секции пропусков 2.
Таблица 3. Сводные метрики по секции пропусков 3.
Таблица 3. Сводные метрики по секции пропусков 3.
Таблица 4. Сводные метрики по секции пропусков 4.
Таблица 4. Сводные метрики по секции пропусков 4.

Столбчатые диаграммы

  • Диаграммы группированы по трём использованным метрикам.

  • Диаграмма MAPE построена на логарифмической шкале из-за экстремально плохого значения KalmanForecaster с параметром 30 на четвертой секции пропусков.

  • Обратим внимание - с этой же настройкой на первой секции модель KalmanForecaster занимает второе место и вместе с занявшей первое место LightGBM находятся в отрыве от всех остальных.

Рисунок 16. Метрика MAE.
Рисунок 16. Метрика MAE.
Рисунок 17. Метрика RMSE.
Рисунок 17. Метрика RMSE.
Рисунок 18. Метрика MAPE на логарифмической шкале.
Рисунок 18. Метрика MAPE на логарифмической шкале.

Интерпретация результатов

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

Выводы

  1. В работе продемонстрирован подход к экспресс-анализу методов и моделей импутации. Анализ таргетирован по отношению к ряду и двум типам сложностей  в пропусках.

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


Что дальше

Обозначим возможные направления, в которых можно, что-либо поискать дополнительно. Направления относительно независимы, поэтому используем форму тезисов.

1. Дополнительные модели и метрики

     Этап экспресс-анализа можно дополнить специфичными для рядов метриками  и моделями.

  • Например, метрики, учитывающие недопрогноз и перепрогноз. Это важно когда разнится цена подобного рода ошибок.

  • Модели:

    • Сейчас в open source достаточно широко представлены специализированные под временные ряды модели с LLM архитектурами, обычные и фундаментальные (предварительно обученные). Здесь, например, есть их небольшой и относительно свежий обзор.

    • Из совсем уж новинок - в марте 2025 года в open source выпущен r2.1 релиз фундаментальной модели от IBM TinyTimeMixer. Она имеет компактные версии, которые можно запускать на локальных машинах и из коробки поддерживает процедуру дообучения.

  2. Intermittent Time Series

   В экосистеме  временных рядов есть специфический вид моделей для разреженных/прерывистых рядов (Intermittent Time Series). Cronston, ADIDA, IMAPA, TSB - модели, разработанные для прогнозирования прерывистого спроса и работающие с метриками, балансирующими потери неудовлетворенного спроса и затраты на избыточные товарные резервы.

3. Awesome_Imputation

   Репозиторий Awesome_Imputation, в котором собраны несколько инструментов для работы с пропусками в рядах.

4. Эффект усиления шумов

   В радиотехнике применяется формула Фрииса Friis's formula. Важным следствием этой формулы является то, что общий коэффициент шума радиоприемника в первую очередь определяется коэффициентом шума его первого усилительного каскада. Импутация в пайплайне обработки временного ряда сродни первому каскаду. Если с разумными затратами можно каким-то образом убрать пропуски (например, заменить датчики, поработать с информационными каналами), то стоит избрать этот способ.

5. Соотношение сигнал/шум

     Важно понимать степень зашумленности ряда. При высоком уровне шума  мы не сможем правильно обучить модели прогнозирования. Возможно следует попробовать различные техники фильтрации шумов (от простых для стационарных рядов, до дискретного вейвлет - преобразования, эмпирической модовой декомпозиции (EMD) для рядов со сложной динамикой). Если понятна природа шумов, можно пробовать воздействие на их причины. Так, минимизируя влияние атмосферы и техногенных факторов,  астрономы строят телескопы в горах или вообще выводят их в космос. А для улучшения соотношения сигнал/(тепловой шум) приемники радиотелескопов охлаждают до криогенных температур.  

6. Робастность процесса импутации

  • Можно попробовать замену метрик, основанных на средних оценках на медианные метрики.

  • Использовать методы из класса "усечения выборок", например винзоризацию в скользящем окне.

7. Оценивание качества оптимизации параметров моделей под определенные данные и определенные же виды пропусков

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

     Остатки - это различия между наблюдаемыми и прогнозируемыми моделью значениями. Именно их мы оценивали с помощью метрик в процессе экспресс-анализа. Как правило, цель подгонки в Residual Analysis состоит в стремлении свести остатки к случайному шуму. Так бывает когда модель сумела обобщить все зависимости в данных (за исключением шумов). А шум в идеале должен быть близок к белому. Говорят, что идеала не бывает, но стремиться все равно стоит.

В сущности, все модели неправильны, но некоторые полезны.

   Использованные ранее метрики - полный аналог "средней температуры по больнице". Это точечные оценки, агрегированные средним. В процессе агрегации много информации теряется. Поэтому на этапе Residual Analysis исследуется вся совокупность остатков. Причем,  в зависимости от применяемых методов они могут быть представлены и в табличной форме и в форме временного ряда.

   Далее мы только обозначим некоторые этапы анализа остатков и обычно применяемые статистические и визуальные методы.

     Стационарность остатков  

  • Статистические тесты:  

    • Расширенный тест Дики-Фуллера (ADF)  

    • Тест KPSS (Kwiatkowski-Phillips-Schmidt-Shin)  

  • Визуальный контроль:  

    • График остатков во времени (отсутствие трендов/сезонности)       

    • ACF-график (быстрое затухание автокорреляций)

   Отсутствие автокорреляции  

  • Статистические тесты:  

    • Тест Льюнга-Бокса (Ljung-Box)  

    • Тест Дарбина-Уотсона (для AR-моделей)  

  • Визуальный контроль:  

    • ACF/PACF-графики (отсутствие значимых лагов)  

    • График остатков с лагированными значениями  

   Нормальное распределение остатков  

  • Статистические тесты:  

    • Тест Шапиро-Уилка  

    • Тест Харке-Бера  

  • Визуальный контроль:  

    • Гистограмма остатков с кривой нормального распределения  

    • Q-Q plot (квантильный график)  

    Гомоскедастичность (постоянство дисперсии)  

  • Статистические тесты:  

    • Тест Уайта  

    • Тест Бреуша-Пагана  

  • Визуальный контроль:  

    • График остатков vs предсказанных значений (равномерный разброс)  

    • График остатков vs времени

    Случайный характер (отсутствие паттернов)  

  • Инструментальные средства:  

    • Анализ мотивов с помощью Matrix Profiling  

    • Анализ спектральной плотности мощности (PSD)  

  • Визуальный контроль:  

    • График матричного профиля  

    •  График PSD

     Зачем рекомендуются парные тесты. Каждый тест из пары обладает  спецификой. Так, например, тесты на стационарность ADF и KPSS, чувствительны к разным типам стационарности в широком смысле. Иногда для одного и того же ряда они могут давать противоположные результаты. Каждая из четырех возможных комбинаций парного теста на стационарность имеет свою интерпретацию.

   Для чего нужен визуальный контроль. Статистический тест - специфический бинарный классификатор, выдающий точечную оценку, характеризующую весь процесс/временной ряд целиком. Такая оценка может быть нечувствительна к локальной динамике. К шейплету, например. Для этого и нужны визуализации, либо инструменты с разрешением в измерениях, характеризующих динамику ряда, например:

  • анализ на временной шкале;

  • спектральный анализ на частотной шкале;

  • вейвлет-анализ, обладающий масштабируемым разрешением на обеих шкалах;

  • анализ на основе эмпирической модовой декомпозиции (EMD), которая имеет некоторые преимущества в разрешающей способности;

  • Matrix Profiling, метод задания функциональной зависимости для степени близости подпоследовательностей временного ряда.

8. Вероятностное прогнозирование и калибровка

   Для части моделей, использованных в работе, в разделе моделирования были приведены вероятностные прогнозы. Обычно это предпочтительный и более информативный вариант, позволяющий визуализировать интервалы прогнозирования — диапазоны, которые, возможно, накрывают истинное значение с заданной вероятностью. Некоторые реализации моделей умеют давать вероятностные прогнозы "из коробки". Для не умеющих, можно воспользоваться известной техникой квантильной регрессии (QR).

   Давайте присмотримся к прогнозам моделей KNNImputer и IterativeImputer на четвертой секции пропусков. Это рисунки 7 и 8 соответственно. При одинаковой процентной ошибке MAPE и близких значениях остальных метрик модели демонстрируют совсем разные уверенности в прогнозах. А для третьей секции IterativeImputer - шейплет уловить не смог, но очень уверен в себе, демонстрируя узкий доверительный интервал. По всей видимости, это связано с тем, что квантильные прогнозы моделей не калиброваны.

   Одно из возможных решений  проблемы — применение методов конформного прогнозирования - своего рода оберток/декораторов, независимых от моделей-прогнозистов. В частности, конформализованной квантильной регрессии (CQR), объединяющей адаптивность квантильной регрессии с конформной калибровкой. Для желающих углубиться в тему возможно будет полезным вышедшее в январе 2025 года переиздание на русском языке оригинальной работы о прикладном конформном прогнозировании — "Practical Guide to Applied Conformal Prediction in Python: Learn and apply the best uncertainty frameworks to your industry applications".

Сергей Сюр
Теги:
Хабы:
Всего голосов 4: ↑3 и ↓1+2
Комментарии1

Публикации

Работа

Data Scientist
53 вакансии

Ближайшие события