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

19 Ноя в 10:26
3 +2
0
Ответы
1
Краткая, практичная стратегия.
1) Предобработка (последовательность)
- Оценить структуру: тренд/сезонность/автокорреляцию/частоту и пропуски по времени.
- Выявление выбросов (не удалять автоматически): методы — z‑score/Тukey IQR на окне, медианный фильтр, Hampel, анализ остатков после STL/скользящей медианы. Пометить точки‑выбросы флагом.
- Решение по выбросам: (а) заменить на модельную оценку (продекодировать как пропуск и затем имутировать), (б) winsorize (ограничить), (в) оставить + флаг, если выбросы важны для задачи.
- Импутация пропусков (временной контекст важен):
- Простые: forward/backward fill, линейная или сплайн интерполяция (подходит для мелких пробелов).
- Сезонные/структурные: сезонная STL‑деформация + интерполяция в остатке; использование гармоник/Фурье для сезонности.
- Модельные/стохастические: Калмановские фильтры / state‑space модели (SARIMA, ETS) — умеют напрямую работать с NA; Gaussian Process; Expectation‑Maximization; matrix completion/soft‑impute для множ. временных рядов; MICE/кросс‑импутация для мультивариатных.
- Для ML: оставлять NA и добавлять индикатор "is_missing" и "time_since_last_obs".
- Нормализация/скейлинг: при ML/NN стандартизировать или применять лог/Box‑Cox при сильной асимметрии.
- Фичи: лаги, скользящие средние/медианы/стд, календарные признаки (день недели/праздники), Фурье‑термы для сезонности, внешние регрессоры, индикаторы имутации/выброса.
2) Подходы к моделированию
- Классические статистические:
- SARIMA / SARIMAX, ETS, TBATS (много сезональностей), State‑space/Kalman (хороши при пропусках).
- Простая точка опоры: сезонный наивный (хорош как бейзлайн).
- Машин‑/градиентные методы:
- XGBoost/LightGBM/CatBoost с лагами и скользящими признаками — часто дают сильные результаты.
- Регрессия с регуляризацией (Ridge, Lasso) для интерпретируемости.
- Нейросети / современные:
- LSTM/GRU с маскированием и признаками "time_gap"; TCN; Transformer/TFT; N‑BEATS.
- Для probabilistic forecasts: DeepAR, MQ‑CNN/DeepAR, TFT.
- Гибриды:
- Декомпозиция (trend+season) + ML/NN на остатках.
- Ансамбли (стеккинг, среднее/взвешенное) между статистическими и ML моделями.
- Выбор при пропусках/выбросах:
- Если много пропусков или нерегулярная частота — state‑space/Gaussian Process или модели с маскированием.
- Для интермиттирующего спроса — специальные методы (Croston, TSB) и метрики, устойчивые к нулям.
3) Обучение и валидация
- Time‑series cross‑validation (rolling‑origin / expanding window) вместо случайной CV.
- Несколько фолдов бэктестов, имитирующих реальные горизонты прогноза.
- Бейзлайны: сезонный‑наивный и простая экспоненциальная сглаженность; сравнивать относительный прирост (skill).
4) Критерии оценки (рекомендуемые, с формулами)
- MAE: MAE=1N∑t=1N∣yt−y^t∣ \mathrm{MAE}=\frac{1}{N}\sum_{t=1}^N |y_t-\hat y_t|MAE=N1 t=1N yt y^ t .
- RMSE: RMSE=1N∑t=1N(yt−y^t)2 \mathrm{RMSE}=\sqrt{\frac{1}{N}\sum_{t=1}^N (y_t-\hat y_t)^2}RMSE=N1 t=1N (yt y^ t )2 .
- MAPE (чувствителен к нулям): MAPE=100%N∑t=1N∣yt−y^tyt∣ \mathrm{MAPE}=\frac{100\%}{N}\sum_{t=1}^N \left|\frac{y_t-\hat y_t}{y_t}\right|MAPE=N100% t=1N yt yt y^ t .
- sMAPE: sMAPE=100%N∑t=1N∣yt−y^t∣(∣yt∣+∣y^t∣)/2 \mathrm{sMAPE}=\frac{100\%}{N}\sum_{t=1}^N \frac{|y_t-\hat y_t|}{(|y_t|+|\hat y_t|)/2}sMAPE=N100% t=1N (yt +y^ t )/2yt y^ t .
- MASE (масштаб‑независимая, устойчива к сезонности): MASE=1N∑t=1N∣yt−y^t∣1T−1∑t=2T∣yt−yt−1∣ \mathrm{MASE}=\frac{\frac{1}{N}\sum_{t=1}^N |y_t-\hat y_t|}{\frac{1}{T-1}\sum_{t=2}^T |y_t-y_{t-1}|}MASE=T11 t=2T yt yt1 N1 t=1N yt y^ t (T — длина обучения).
- Для интервальных/стохастических прогнозов:
- Pinball loss (квантили): ρτ(u)=(τ−1u<0)u \rho_\tau(u)=(\tau-\mathbf{1}_{u<0})uρτ (u)=(τ1u<0 )u, средняя по наблюдениям.
- CRPS (общая мера для непрерывного прогноза) и оценка покрытия: доля попаданий факта в доверительный интервал (should match nominal).
- Относительная метрика/skill: skill=1−RMSEmodelRMSEnaive \text{skill}=1-\frac{\mathrm{RMSE}_{\text{model}}}{\mathrm{RMSE}_{\text{naive}}}skill=1RMSEnaive RMSEmodel .
- Для редких/интермиттирующих рядов — использовать MASE или RMSSE и меры, учитывающие нули; не применять MAPE.
5) Практические рекомендации
- Всегда хранить флаги: где были пропуски/выбросы — это полезно как признак.
- Тестировать несколько типов моделей и ансамблировать лучшие.
- Использовать робастные функции потерь (Huber, quantile) при наличии выбросов.
- Проверять автокорреляцию остатков и стабильность остатков по времени.
- Для бизнес‑решений фокус на прогнозных интервалах и их покрытии, а не только на точечной ошибке.
Если нужно, могу предложить конкретный пайплайн с выбором методов (например, для ежедневных/помесячных данных, с 10–30% пропусков) и пример настройки CV/грид‑поиска.
19 Ноя в 11:14
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир