Как включить предикторную переменную без информации о будущем в модель?

Вопрос или проблема

Я приведу крайне упрощенный пример, чтобы проиллюстрировать вопрос, но я думаю, что ответ должен быть актуален и для более обобщенных случаев.

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

Для этого у меня есть исторические данные и дополнительно переменная-регрессор, которую я знаю, что объясняет часть вариабельности целевой переменной. (Типичный случай – какой-то погодный индикатор)

Проблема в том, что у меня есть данные только до текущего периода времени, и меня интересует прогноз на два временных шага вперед.

Какой был бы лучший способ интегрировать эту информацию в модель?

Простой пример
Данные:

вставьте описание изображения здесь

Цель – предсказать продажи на t+2, и мы предполагаем, что погода имеет некоторую степень ковариации с продажами.

Возможные подходы:

  1. Обучить до t0, используя погоду, а затем сделать прогноз погоды с помощью другой модели и использовать ее для прогнозирования с обученной моделью – в этом случае ошибка прогноза переменной погоды будет напрямую влиять на финальный прогноз, так как модель будет обучена на качественных реальных данных, а прогноз будет сделан на основе низкокачественных прогнозируемых данных
  2. Обучить модель, используя запаздывающую (в данном случае Lag2) погоду – в этом случае Lag2 погода может не объяснить вариацию целевой переменной так же хорошо, как непосрндственная переменная
  3. На каждом временном шаге использовать погоду до t-(i-2), чтобы прогнозировать X-i, и обучить модель, используя эти значения.
  4. Вообще не использовать данные о погоде – потеря потенциально полезной информации
  5. Другие подходы

ИЗМЕНИТЕ: Автообзор говорит, что вопрос может быть субъективным, но я так не думаю. Ответ должен быть общим и учитывать, что прогнозируемая погода может быть хорошего/плохого качества, а Lag2 погода может иметь много/очень мало информации.

Этот вопрос не является субъективным, но он “специфичен для области”, потому что то, как вы будете использовать дополнительный предсказатель, зависит от самого предсказателя.

Оставаясь в пределах вашего примера, сначала нам нужно ответить на некоторые базовые вопросы о случае использования:

1. Насколько далеко вперед вам нужно прогнозировать?

Например, если вам нужно делать краткосрочные прогнозы, такие как максимум на 2-3 дня вперед, тогда инженерия признаков, вероятно, будет лучшим вариантом. Относительно легко обработать несколько прогнозов погоды (большинство даже предлагают API) и использовать эти данные. Вы правы, что тогда мы должны справляться с качеством прогноза погоды, но а) мы ожидаем, что качество прогнозов погоды на короткий срок будет довольно хорошим, и б) если возможно, мы могли бы немного настроить нашу модель, используя “прогнозируемую погоду” вместо фактической погоды в обучении нашей модели.

Если вы хотите делать долгосрочные прогнозы, это может не сработать, так как долгосрочную погоду трудно предсказать.

2. Насколько важен предсказатель для вашей модели?

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

3. Насколько стабильна временная серия предсказателя?

Говоря об инженерии признаков, вы уже говорили о использовании метода запаздывания для использования исторических данных о погоде. Мы могли бы пойти дальше и использовать временной ряд, чтобы сами прогнозировать погоду (что отличается от использования нормальных моделей прогнозирования погоды, которые вы не можете создать). Это имеет смысл каждый раз, когда временная серия предсказателя более стабильна, чем временная серия целевой переменной. Прямое использование запаздывающих значений не имеет большого смысла, потому что это будет просто посредственной моделью временного ряда, так что лучше сразу использовать что-то вроде ARIMA/Prohpet и т.д.

В основном вы уже суммировали большинство жизнеспособных подходов сами:

  1. Не использовать предсказатель

  2. Создание замены

  3. Прогнозирование предсказателя

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

Ответ или решение

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

Основные принципы интеграции предикторной переменной

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

  2. Оценка стабильности временного ряда предиктора: Если временной ряд погоды имеет высокую стабильность, возможности прогнозирования можно рассматривать более глубоко. В таких случаях может быть целесообразно использовать методы, такие как ARIMA или Prophet, для прогноза значений погоды и дальнейшего использования их в вашей модели.

Возможные подходы

1. Прогнозирование предиктора

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

2. Использование лаговых значений

Это может включать в себя использование лагов, например, Lag2 (предыдущее значение), для интеграции информации о погоде. Однако стоит помнить, что такие лаги могут не полностью объяснить вариацию целевой переменной, как это может сделать текущие значения предикторов.

3. Инженерия признаков

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

4. Отказ от использования предиктора

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

5. Альтернативные подходы

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

Заключение

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

SEO оптимизация

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

Оцените материал
Добавить комментарий

Капча загружается...