Прогнозирование объемов продаж новых товаров (отчет)
Материал из MachineLearning.
(→Математическое описание) |
(→Математическое описание) |
||
Строка 114: | Строка 114: | ||
</center> | </center> | ||
- | + | Будем полагать, что товар новый в течении 5 недель. По 1 неделе(7 точкам) будем прогнозировать продажи на последующее время, предполагая, что продажи новых товаров будут расти по экспоненте | |
- | <tex>y= | + | <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%. Будем использовать функционал качества
где y, соответственно известное значение и прогноз.
- временной ряд для каждого из товаров,
- значение продаж для каждого такого ряда.
Описание алгоритмов
В проекте использовался метод квантильной регрессии и эвристические алгоритмы.
Обзор литературы
Для прогнозирования объёмов продаж новых товаров в литературе описываются различные методы. Метод квантильной регрессии впервые применён в [1], прогнозирование с помощью которого наиболее точно и позволяет прогнозировать c разными вероятностями [2]. Квантильная регрессия с параметром 0.5 является линейной, которая рассматриватся в [3].
Базовые предположения
Предполагается, что наилучший прогноз будет получен с помощью квантильной регрессии с параметром Θ=0.5. Прогноз требуется не более чем на 7 дней.
Математическое описание
Общая модель квантильной регрессии
Пусть , i=1,...,n - некоторые переменные, где
- K×1 вектор независимых переменных в уравнении регрессии. Допускается, что
≤τ |
)=
(τ-
b|
), i=1,...,n.
Это соотношение — в другой формулировке — может быть переписано как
,
(1)
Где Quant() обозначает условную квантиль
на векторе регрессора
. Нужно отметить, что здесь предполагается, что и
, и
наблюдаются без ошибки, и что уравнение (1) правильно определено. Такие проблемы, как ошибки измерения и пропущенные переменные здесь не рассматриваются.
Если (1) определено некорректно (то есть, не линейно), тогда модель можно
рассматривать как лучший линейный прогноз для условной квантили.
Если функция
(⋅) известна, то для оценки b могут использоваться различ-
ные подходы. Однако в данной модели распределение остаточного члена
остается неопределенным. Как показывает соотношение (1), единственным
предположением является лишь то, что
удовлетворяет ограничению на
квантиль:
Quant
Вообще, Q-ая простая квантиль (0 < Q < 1) переменной y, скажем μ , является решением следующей задачи:
В частности, медиана (Q=1/2) находится минимизацией суммы модулей:
Аналог линейной модели для Q-ого квантиля определяется таким же образом. То есть , оценка для b в соотношении (1) — называемом Q-ой квантильной регрессией — решает задачу
(1/n)
(1/n)
где r(λ)= (Q − I(λ < 0))λ — контрольная функция (check function),a I(.)-обычная индикаторная функция.
Эвристические алгоритмы
Будем полагать, что товар новый в течении 5 недель. По 1 неделе(7 точкам) будем прогнозировать продажи на последующее время, предполагая, что продажи новых товаров будут расти по экспоненте
параболе
или логарифму

[[Изображение:gra.jpg|500px]]
</p><p>Для наименьшего rr выбирается значение stp= 25, которое используется в дальнейшем для расчётов в качестве оптимального.
</p><p>Проанализируем зависимость ошибок алгоритма для разного параметра квантильной регрессии teta. Прогнозирование ведётся по одному товару, в качестве примера рассмотрен товар с индексом 1 в таблице данных.
</p><p>1) Параметр teta=0.5,
</p><p>stp = 25
</p><p>Значения ошибок
rs =418.4907
rr =412.4245
</p><p>где rs - сумма модулей отклонения средней за месяц величины от реальных данных
[[Изображение:teta1.jpg|650px]]
</p><p><br />
2) Параметр teta=0.25,
</p><p>stp = 25
</p><p>Значения ошибок
rs =418.4907
rr =532.9533
</p><p>[[Изображение:teta2.jpg|650px]]
</p><p>3) Параметр teta=0.75,
</p><p>stp = 25
</p><p>Значения ошибок
rs =418.4907
rr =391.8512
</p><p>[[Изображение:teta3.jpg|650px]]
</p><p>4) Параметр teta=0.6,
</p><p>stp = 25
</p><p>Значения ошибок
rs =418.4907
rr =382.4836
</p><p>[[Изображение:teta4.jpg|650px]]
</p><p>5) Параметр teta=0.4,
</p><p>stp = 25
</p><p>Значения ошибок
rs =418.4907
rr =457.0586
</p><p>[[Изображение:teta5.jpg|650px]]
</p><p>== Список литературы ==
</p><p>1) Koenker and G. Bassett, Jr. )
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__" />