Прогнозирование объемов продаж новых товаров (отчет)

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Математическое описание)
(Математическое описание)
Строка 90: Строка 90:
x - переменная времени в нашем случае,
x - переменная времени в нашем случае,
 +
<tex>\hat{Y}</tex> = ax+b - предполагаемые значения оценок продаж
<tex>\hat{Y}</tex> = ax+b - предполагаемые значения оценок продаж
 +
Y - реальные значения продаж
Y - реальные значения продаж
Строка 100: Строка 102:
<center>
<center>
 +
 +
По полученным значениям коэффициентов а и b проводим прямую прогноз.
 +
 +
'''Эвристические алгоритмы'''
'''Эвристические алгоритмы'''
</center>
</center>

Версия 01:13, 21 апреля 2010

Введение в проект

Описание проекта

Цель проекта

Цель проекта - прогнозирование еженедельных продаж новых товаров.

Обоснование проекта

Результаты проекта могут быть использованы для планирования объёмов продаж новых товаров.

Описание данных

Дано: товарный классификатор (иерархия товарных групп); региональный классификатор (иерархия магазинов и регионов); товародвижения (продажи, поставки, остатки и пр., праздники и промо-акции).

Критерии качества

Продажи прогнозируется по каждому товару раздельно. Прогнозирование объёмов продаж на неделю основывается на предыстории продаж за фиксированное число дней. Это число дней регулируется переменной stp (количество шагов - количество дней, на которых основывается прогноз) в базовом алгоритме(квантильная регрессия). Критерием качества служит сумма модулей отклонения прогноза от реальной величины покупок по дням.

Требования к проекту

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

Выполнимость проекта

Прогнозирование объёмов продаж новых товаров производится в будние дни (время праздников и промо-акций в проекте не рассматривается).

Используемые методы

Базовый алгоритм

Прогнозирование производится методом квантильной регрессии для различных квантилей Θ (0.25; 0.4; 0.5; 0.6; 0.75). При прогнозировании можно менять параметр stp.

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

Постановка задачи

На основе данных продаж за фиксированное число дней (параметр stp) прогнозируются продажи новых товаров на 7 дней вперёд с наибольшей вероятностью (Θ=0.5) и вероятностями 25%, 40%. Будем использовать функционал качества

R(y, \hat{y}) = \sum_{i}|y_{i}-\hat{y}_{i}|.

где y, \hat{y} соответственно известное значение и прогноз.

x_{i}(t) - временной ряд для каждого из товаров, y_{i}(t) - значение продаж для каждого такого ряда.

Описание алгоритмов

В проекте использовался метод квантильной регрессии и эвристические алгоритмы.

Обзор литературы

Для прогнозирования объёмов продаж новых товаров в литературе описываются различные методы. Метод квантильной регрессии впервые применён в [1], прогнозирование с помощью которого наиболее точно и позволяет прогнозировать c разными вероятностями [2]. Квантильная регрессия с параметром 0.5 является линейной, которая рассматриватся в [3].

Базовые предположения

Предполагается, что наилучший прогноз будет получен с помощью квантильной регрессии с параметром Θ=0.5. Прогноз требуется не более чем на 7 дней.

Математическое описание

Общая модель квантильной регрессии

Пусть (x_{i},y_{i}), i=1,...,n - некоторые переменные, где x_{i} - K×1 вектор независимых переменных в уравнении регрессии. Допускается, что


P(y_{i}τ | x_{i})=F_{u}(τ-x'_{i} b| x_{i}), i=1,...,n.

Это соотношение — в другой формулировке — может быть переписано как

y_{i}=x'_{i}b+u_{i},  Quant_{i}(y_{i}|x_{i})=x'_{i}b (1)

Где Quant(y_{i} | x_{i}) обозначает условную квантиль y_{i} на векторе регрессора x_{i}.

Аналог линейной модели для Q-ого квантиля определяется таким же образом. То есть \hat b , оценка для b в соотношении (1) — называемом Q-ой квантильной регрессией — решает задачу


  \min_{b} (1/n)(\sum_{i:y_{i}>=x'_{i}b}Q|y_{i}-x'_{i}b|+ \sum_{i:y_{i}<x'_{i}b}(1-Q)|y_{i}-x'_{i}b| )=\min_{b} (1/n)\sum_{i=1}^{n}r(u_{i})          (2)

где r(λ)= (Q − I(λ < 0))λ — контрольная функция (check function),a I(.)-обычная индикаторная функция.


Важным частным случаем модели квантильной регрессии является медианная регрессия (Q=1/2) или знаковый статистический метод. Рассмотрим его первым. Знаковый метод исходит из предположения, что случайные ошибки могут быть положительными или отрицательными с равными вероятностями. Следовательно, линия регрессии будет проходить так, чтобы с каждой стороны от нее было равное количество наблюдений.

Q = 0.25. По определению квантили, вероятность того, что ошибки меньше нуля будет равна 25%. Следовательно, линия регрессии будет проходить ниже линии медианной регрессии

x - переменная времени в нашем случае,

\hat{Y} = ax+b - предполагаемые значения оценок продаж

Y - реальные значения продаж

Минимизация функционала:

  \min_{(a, b)} (\sum_{\hat{Y} - Y >= 0 }Q|\hat{Y} - Y|+ \sum_{\hat{Y} - Y < 0 }(1-Q)|\hat{Y} - Y| )

По полученным значениям коэффициентов а и b проводим прямую прогноз.


Эвристические алгоритмы

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

y=aexp(bx)

параболе

y=a{x}^{2}+bx+c

или логарифму

y=log(x)

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

Варианты или модификации

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

Описание системы

  • Описание системы: [1]
  • Ссылка на файлы системы: [2]

Отчет о полученных результатах

Пример работы квантильной регрессии на модельных данных

модельные данные(синяя линия) - случайные величины, распределенные по нормальному закону чёрная - teta = 0.75, красная teta = 0.25, зелёная - 0.5

Приведём сначала варианты настройки базового алгоритма на различных парметрах

Параметр stp подбирался в зависимости от параметра rr (сумма модулей отклонения прогноза от реальных данных за месяц)

Для наименьшего rr выбирается значение stp= 25, которое используется в дальнейшем для расчётов в качестве оптимального.

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

1) Параметр teta=0.5,

stp = 25

Значения ошибок rs =418.4907 rr =412.4245

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


2) Параметр teta=0.25,

stp = 25

Значения ошибок rs =418.4907 rr =532.9533

3) Параметр teta=0.75,

stp = 25

Значения ошибок rs =418.4907 rr =391.8512

4) Параметр teta=0.6,

stp = 25

Значения ошибок rs =418.4907 rr =382.4836

5) Параметр teta=0.4,

stp = 25

Значения ошибок rs =418.4907 rr =457.0586


Пример работы эвристических алгоритмов

Прогноз, полученный с помощью экспоненты.

Красная линия - базовый алгоритм, зелёная - эвристический. ошибка базового алгоритма ~600, экспоненты ~400



ошибка базового алгоритма ~400, экспоненты ~200

Прогноз, полученный с помощью логарифма.

Красная линия - базовый алгоритм, зелёная - эвристический. ошибка базового алгоритма ~600, логарифмом ~1600

ошибка базового алгоритма ~400, логарифмом ~300

Прогноз, полученный с помощью параболы.

Красная линия - базовый алгоритм, зелёная - эвристический. ошибка базового алгоритма ~600, параболы ~800

ошибка базового алгоритма ~400, параболы ~700

Список литературы

1) Koenker and G. Bassett, Jr. "Regression Quantiles," Econometrica, Vol.46 No1 (January, 1978)

2)Постникова Е. (2000) Квантильная регрессия. НГУ.

3)К. В. Воронцов, Лекции по логическим алгоритмам классификации


Данная статья является непроверенным учебным заданием.
Студент: Литвинов Игорь
Преподаватель: В.В. Стрижов
Срок: 15 декабря 2009

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.


Личные инструменты