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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Математическое описание)
(Математическое описание)
Строка 114: Строка 114:
</center>
</center>
-
 
+
Будем полагать, что товар новый в течении 5 недель. По 1 неделе(7 точкам) будем прогнозировать продажи на последующее время, предполагая, что продажи новых товаров будут расти по экспоненте
-
<tex>y=exp(x)</tex>
+
<center><tex>y=aexp(bx)</tex></center>
-
<tex>y={x}^{2}</tex>
+
параболе
 +
<center><tex>y=a{x}^{2}+bx+c</tex></center>
 +
или логарифму
 +
<center><tex>y=</center>
=== Варианты или модификации ===
=== Варианты или модификации ===

Версия 18:23, 13 апреля 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}. Нужно отметить, что здесь предполагается, что и x_{i}, и y_{i} наблюдаются без ошибки, и что уравнение (1) правильно определено. Такие проблемы, как ошибки измерения и пропущенные переменные здесь не рассматриваются. Если (1) определено некорректно (то есть, не линейно), тогда модель можно рассматривать как лучший линейный прогноз для условной квантили. Если функция F_{u}(⋅) известна, то для оценки b могут использоваться различ- ные подходы. Однако в данной модели распределение остаточного члена u_{i} остается неопределенным. Как показывает соотношение (1), единственным предположением является лишь то, что u_{i} удовлетворяет ограничению на квантиль:


Quant(u | x_{i})=0

Вообще, Q-ая простая квантиль (0 < Q < 1) переменной y, скажем μ , является решением следующей задачи:

  \min_{b} (\sum_{i:y_{i}>=b}Q|y_{i}-b|+ \sum_{i:y_{i}<b}(1-Q)|y_{i}-b| )

В частности, медиана (Q=1/2) находится минимизацией суммы модулей:

 \sum_{b}|y_{i}-b|


Аналог линейной модели для 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(.)-обычная индикаторная функция.


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

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

y=aexp(bx)

параболе

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

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

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

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

{{Задание|Литвинов Игорь|В.В. Стрижов|15 декабря 2009|Litvinov|Strijov}}

__NOTOC__" alt= "y=

=== Варианты или модификации === Варианты алгоритма зависят от параметров stp и Q. Значения параметров выбираются по результатам экспериментов.

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

  • Описание системы: [http://mlalgorithms.svn.sourceforge.net/viewvc/mlalgorithms/NewGoodsProgn/Docs/Systemdocs.doc]
  • Ссылка на файлы системы: [http://mlalgorithms.svn.sourceforge.net/viewvc/mlalgorithms/NewGoodsProgn/]

== Отчет о полученных результатах == Параметр stp подбирался в зависимости от параметра rr (сумма модулей отклонения прогноза от реальных данных за месяц) [[Изображение:gra.jpg|500px]]

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

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

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

stp = 25

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

где rs - сумма модулей отклонения средней за месяц величины от реальных данных [[Изображение:teta1.jpg|650px]]


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

stp = 25

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

[[Изображение:teta2.jpg|650px]]

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

stp = 25

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

[[Изображение:teta3.jpg|650px]]

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

stp = 25

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

[[Изображение:teta4.jpg|650px]]

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

stp = 25

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

[[Изображение:teta5.jpg|650px]]

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

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

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

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

{{Задание|Литвинов Игорь|В.В. Стрижов|15 декабря 2009|Litvinov|Strijov}}

__NOTOC__" />
Личные инструменты