Я пытаюсь прогнозировать продажи продуктов в автоматах. Проблема заключается в том, что машина заполняется с нерегулярными интервалами, и при каждой загрузке мы можем записывать только совокупные продажи с момента последней загрузки машины (т.е. у нас нет данных о ежедневных продажах). Так что в основном у нас есть данные для агрегированных продаж с нерегулярными интервалами. Интервалы обычно составляют от 2 дней до 3 недель. Вот пример данных для одного торгового автомата и одного продукта:
27/02/2012 48
17/02/2012 24
09/02/2012 16
02/02/2012 7
25/01/2012 12
16/01/2012 16
05/01/2012 16
23/12/2011 4
16/12/2011 14
09/12/2011 4
02/12/2011 2
Наш текущий наивный алгоритм состоит в том, чтобы вычислять средние продажи в день путем деления общего количества, проданного за последние 90 дней, на 90.
У вас есть идеи, как улучшить прогноз продаж в день? Мне нужно прогнозировать, что будет продано при следующем посещении машины. Можно ли использовать какой-то алгоритм экспоненциального сглаживания, учитывая природу наших данных?
Заранее спасибо!
ОБНОВЛЕНИЕ: Большое спасибо за все ответы и комментарии. Позвольте мне попытаться дать немного больше контекста (экономическое обоснование вопроса - конечно, очень упрощенное). У нас есть сотни торговых автоматов. Каждый день мы должны решить, какие 20 из них посетить для пополнения. Для этого мы пытаемся предсказать, каково текущее состояние машин, и выбрать «самые пустые» 20 машин. Для каждой машины и продукта мы рассчитываем средние продажи за день (SPD), используя наивный алгоритм, описанный выше. Затем мы умножаем SPD на количество дней с момента последней заправки машины, и в результате получаем прогнозируемое количество проданного товара.
источник
Ответы:
Давайте сосредоточимся на бизнес-проблеме, разработаем стратегию для ее решения и начнем реализацию этой стратегии простым способом. Позже, это может быть улучшено, если усилие оправдывает это.
Задача бизнеса , конечно, максимизировать прибыль. Это достигается путем балансировки затрат на заправку машин с затратами на продажи. В его нынешней формулировке стоимость заправки машин фиксирована: 20 можно пополнять каждый день. Поэтому стоимость потерянных продаж зависит от частоты, с которой машины пустуют.
Концептуальная статистическая модель для этой проблемы может быть получена путем разработки некоторого способа оценки затрат для каждой из машин на основе предыдущих данных. ожидаетсяСтоимость необслуживания машины сегодня приблизительно равна вероятности ее истечения, умноженной на скорость ее использования. Например, если сегодня у машины есть 25% шансов опустошиться и в среднем продается 4 бутылки в день, ее ожидаемая стоимость равна 25% * 4 = 1 бутылка в потерянных продажах. (Переведите это в доллары, как хотите, не забывая, что одна потерянная продажа сопряжена с нематериальными затратами: люди видят пустую машину, они учатся не полагаться на нее и т. Д. Вы даже можете отрегулировать эту стоимость в соответствии с местоположением машины; Некоторое время машины работают пустыми, что может повлечь за собой несколько нематериальных затрат.) Справедливо предположить, что заправка машины немедленно обнулит ожидаемые потери до нуля - редко случается, чтобы машина опустошалась каждый день (не так ли. ..). Со временем,
Красные точки показывают последовательность продаж; синие точки - это оценки, основанные на оценке максимального правдоподобия типичного уровня продаж.
Имея такую диаграмму для каждой машины (из которых, кажется, их пара сотен), вы можете легко определить 20 машин, которые в настоящее время испытывают наибольшие ожидаемые потери: их обслуживание является оптимальным бизнес-решением. (Обратите внимание, что каждая машина будет иметь свою собственную расчетную скорость и будет в своей точке вдоль своей кривой, в зависимости от того, когда она последний раз обслуживалась.) Никто на самом деле не должен смотреть на эти диаграммы: определить машины для обслуживания на этой основе легко автоматизируется с помощью простой программы или даже с помощью электронной таблицы.
Это только начало. Со временем, дополнительные данные могут предлагать модификации этой простой модели: вы можете учитывать выходные и праздничные дни или другие ожидаемые влияния на продажи; может быть недельный цикл или другие сезонные циклы; в прогнозах могут быть долгосрочные тенденции. Возможно, вы захотите отследить отдаленные значения, представляющие неожиданные разовые прогоны на машинах, и включить эту возможность в оценки потерь и т. Д. Я сомневаюсь, однако, что будет необходимо сильно беспокоиться о последовательной корреляции продаж: трудно подумать любого механизма, чтобы вызвать такую вещь.
для Excel (
A2
это ячейка, содержащая время с момента последнего пополнения иTheta
предполагаемый ежедневный уровень продаж) идля Р.)
Более модельные модели (которые включают тренды, циклы и т. Д.) Должны будут использовать регрессию Пуассона для своих оценок.
источник
Я думаю, что у вас обычно будет первый шаг к преобразованию в обычный временной ряд. Вы сказали, что в среднем занимает 90 дней. Поскольку у вас есть данные, которые встречаются чаще, я думаю, что имеет больше смысла использовать большую часть того, что у вас есть, беря дни между каждым наблюдением и деля их на количество предметов, проданных за этот период (при условии, что это то, что вы второй столбец есть).
Как заявление об отказе от ответственности, я абсолютный любитель, поэтому вы хотите воспользоваться советом эксперта, такого как IrishStat, по поводу следующего кода (например, он сказал, что ETS - плохая модель, поэтому относитесь к этому только как к игрушечному примеру), но в надежде что это экономит ваше время, вот код R, с которым вы можете играть:
В результате получается сюжет:
источник
То, что у вас есть, - это «Непостоянная проблема спроса». Мы решили эту проблему путем преобразования спроса в ставку путем деления фактического спроса на количество дней в интервале между обслуживанием. Затем эту скорость можно смоделировать как передаточную функцию, чтобы прогнозировать скорость с учетом прогнозирования интервала. Эта прогнозируемая ставка может быть затем преобразована в спрос. Следует проявлять осторожность, чтобы обнаружить структурные сдвиги в скорости с помощью обнаружения вмешательства. Попробуйте поискать в Google «Подход к моделированию прерывистого спроса с использованием методологии передаточной функции». Откажитесь от типовых предположительных подходов Кростона или Экспоненциального сглаживания, поскольку они весьма несовершенны.
ДОПОЛНИТЕЛЬНЫЙ АНАЛИЗ:
Когда я смоделировал Rate как функцию от Interval, я получил следующее. Используя прогноз ИНТЕРВАЛ, используя его прошлое, это уравнение может затем предсказать скорость, которую можно использовать для прогнозирования спроса. Этот тип модели позволяет вводить авторегрессивную структуру в скорости, а также учитывать пульсы, сдвиги уровней и / или локальные тренды времени в скорости.
# (BOP) ОШИБКА ЗНАЧЕНИЕ ЗНАЧЕНИЕ
ИНТЕРВАЛ INPUT SERIES X1
ВХОДНАЯ СЕРИЯ X2 I ~ P00002 12/03/11 ИМПУЛЬС
ВХОДНАЯ СЕРИЯ X3 I ~ P00007 12/08/11 ИМПУЛЬС
ВХОДНАЯ СЕРИЯ X4 I ~ P00010 12/11/11 ИМПУЛЬС
источник