Вопрос или проблема
Я работаю над проектом, чтобы предсказать будущие продажи продуктов нашей компании, чтобы цепочка поставок имела лучшее представление о том, сколько нужно пополнить запасы.
Подробная информация о модели, над которой я работаю:
Модель: LGBM (из библиотеки Darts)
Функции: Прошлые продажи, информация о календаре, цена, некоторые другие внешние особенности и та, по которой у меня есть вопрос — уровень запасов (точное количество товаров на складе за день до этого).
Окно предсказания: Один шаг, но с рекурсивным прогнозированием на 35 дней вперед.
Мой вопрос заключается в том, правомерно ли использовать уровень запасов как характеристику для прогнозирования продаж? Если да, как правильно его использовать?
Уровень запасов, безусловно, содержит некоторую информацию о продажах: например, 0 на складе обычно означает 0 продаж; низкий уровень на складе может снизить продажи; пополнение запасов после долгого отсутствия товаров на складе приведет к постепенному увеличению продаж, а не к резкому скачку (в моем случае). Тем не менее, во время предсказания у нас нет способа заранее узнать уровень запасов на каждый день. Я мог бы использовать некоторую логику для моделирования динамики запасов, но в этом случае нет возможности сравнить истинные и предсказанные значения, потому что данные о запасах даже не реальные. Использование реальных данных о запасах также вызывает у меня опасение, что я предоставляю модели информацию, которую ей, вероятно, не следует знать на момент предсказания.
Итак, могу ли я все-таки использовать это, или имеет ли смысл все равно использовать это? Если да, то как правильно обработать эти данные, чтобы я мог использовать их в проверочных данных? возможно, категоризировать их?
С нетерпением жду любых полезных мыслей и предложений. Спасибо!
Да, это правомерно использовать это как характеристику.
сторона спроса
Вы правильно определили некоторые из вопросов.
0 на складе обычно означает 0 продаж;
и длительное отсутствие товара на складе изменит привычки/предпочтения клиентов.
Неясно, насколько информация о запасах доходит до вашей
клиентской базы таким образом, чтобы изменить их покупательское поведение.
Например, если у вас есть много географически распределенных
складов, но в наличии только несколько единиц какого-либо продукта,
это говорит о том, что на большинстве складов товар отсутствует.
Это может увеличить количество дней для доставки товара
по адресу покупателя, что потенциально влияет на решение о покупке.
Когда ваша модель наблюдает “низкие” уровни запасов,
вполне уместно, чтобы она выводила воздействие на будущие продажи.
Возможно, вы захотите явно моделировать эффекты на стороне спроса,
такие как количество потерянных продаж из-за риска нулевых запасов,
или количество потерянных продаж из-за изменений предпочтений после длительного отсутствия товара.
сторона предложения
Как специалисты по данным, мы верим, что существует Процесс Генерации,
который создает структуру для наблюдаемых данных,
и что наши модели могут изучить эту структуру.
Многие люди, помимо клиентов, участвуют в этом процессе.
Это включает в себя людей, оформляющих заказы на пополнение запасов, возможно, с учетом
предстоящих специальных распродаж, сезонных паттернов либо
потребности накапливать некоторый товар в преддверии предсказанного шока в цепочке поставок.
Уровни запасов могут быть единственным способом для вашей модели
наблюдать знания этих
экспертов в предметной области.
обратная связь
Неясно, в какой степени выходные данные вашей модели
влияют на этих экспертов или напрямую формируют заказы на пополнение запасов.
Обучение на такой обратной связи не является приемлемым;
это цикл, который вы хотите разорвать.
(Что, вероятно, и побудило задавать вопрос в первую очередь.)
В той степени, в которой уровни запасов отражают истинные утверждения о внешнем мире,
они могут предложить полезные знания о системе,
из которых можно извлечь уроки.
В той степени, в которой такие уровни являются побочным эффектом
выходов модели в предыдущих циклах,
они в лучшем случае отвлекающая переменная.
Вы можете разорвать такие циклы, взаимодействуя
с экспертами иначе.
Спросите их о “прогнозируемых продажах на следующий месяц”,
а не о “количестве единиц для пополнения запасов на следующий месяц”,
и вы могли бы получить информативный входной признак.
Ответ или решение
Теория
Прогнозирование продаж является важным элементом для улучшения управления цепочкой поставок, позволяя бизнесу лучше планировать объемы пополнения запасов. В этом процессе возникает вопрос: допустима ли интеграция уровня запасов как одного из параметров для модели машинного обучения?
С теоретической точки зрения, использование уровня запасов как переменной может иметь как позитивные, так и негативные последствия. Включение этой информации может помочь модели уловить определенные скрытые динамики, связанные с продажами, такие как зависимость продаж от наличия продукта на складе. Низкий уровень запасов или отсутствие продукта на складе может привести к сокращению продаж, в то время как достаточное наличие может поддерживать их на стабильном уровне.
Тем не менее, существует и ряд сложностей. Прогнозирование завтрашнего уровня запасов, исходя из сегодняшнего, само по себе является задачей прогноза, и оно подвержено значительным неопределенностям. Использование этой переменной также может создать ситуацию косвенной утечки информации, когда прогнозы основаны на предположениях, не известных на момент тренировки модели.
Пример
Предположим, что у компании Alpha есть пять складов, разбросанных по стране. Они наблюдают, что когда уровень запасов продукта X падает ниже определенного уровня, продажи начинают снижаться из-за опасений клиентов об отсутствии товара в наличии. В то же время, известный сезонный пик в продажах неизбежно приводит к пополнению запасов, и здесь уровень запасов может служить индикатором для модели, прогнозирующей будущие продажи.
Допустим, модель машинного обучения, разработанная на данной основе, пытается учесть уровень запасов как переменную. На первых этапах тестирования она показывает хорошие результаты: она точно отражает снижение продаж при низких запасах. Однако в ситуации, когда данные о запасах слишком тесно связаны с результатами модели, может возникнуть риск автокорреляции, когда модель перестает быть устойчивой и надежной.
Применение
На практике, чтобы легитимно и эффективно использовать уровень запасов в модели прогнозирования продаж, стоит рассмотреть несколько методик:
-
Стимуляция и категоризация: Вместо использования сырых данных об уровне запасов, вы можете создать имитационную модель или категории, описывающие запасы (например, ‘низкий’, ‘средний’, ‘высокий’). Это может помочь нивелировать эффект неопределенности, связанной с точным прогнозированием запасов в будущем.
-
Разделение спроса и предложения: Используйте уровень запасов как косвенную улику для понимания изменений в спросе и предложении. Например, низкий уровень запасов может сигнализировать о высоком спросе, тогда как высокий уровень может говорить о ожиданиях роста спроса со стороны управляющих запасами.
-
Обратная связь и обучение: Важно отделить зависимость модели от решений экспертов. Постарайтесь изменить формат сбора данных от экспертов: вместо того, чтобы спрашивать об объеме пополнения запасов, спрашивайте об ожидаемых продажах в будущем.
-
Избегание циклической зависимости: Помните, что самообучающиеся модели могут создавать циклическую зависимость. Например, если модель прогнозирует на основе показателей, которая сама влияет на последующие данные, это приводит к искажению результатов. Стремитесь минимизировать подобные риски, контролируя, где именно и как данные о запасах интегрируются в систему.
Таким образом, хотя уровень запасов может выступать мощным индикатором продаж, его интеграция в модель требует осторожности и обдуманного подхода. В правильно сбалансированной модели, использование уровня запасов действительно может улучшить качество предсказаний.