О компании |  ПартнерыЦены |  Семинары  | Библиотека  | Контакты
BIGroup Labs

 Поиск по сайту
 
  Главная страница |Решения |Технологии |Услуги |Продукция |Клиенты
  Главная страница   >      Аналитиков и маркетологов   >    Прогнозирование   >    Прогнозирование.

Прогнозирование.
Deductor 4 – прогнозировани

Прогнозирование.

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

I Часть.

Прогнозирование является одной из самых востребованных и в то же время одной из самых сложных задач анализа бизнес-информации. Хороший прогноз является ключом к решению таких задач, как оптимизация складских запасов, построение системы бюджетирования и многих других.

В данной статье мы будем рассматривать прогнозирование объемов продаж торговой компании. Причем мы будем строить авторегрессионную модель прогнозирования объемов продаж. Т.е. будем исходить из того, что на текущие продажи влияют продажи в предыдущие временные периоды, не учитывая при этом влияния других факторов, которыми могут быть например цена, брэнд и.т.д. При этом этапы нашего исследования соответствуют основным принципам моделирования - не гнаться за абсолютной точностью на первых шагах построения модели. Если наша авторегрессионная модель будет давать плохие прогнозы, то мы можем попытаться построить новую модель с учетом других факторов, которые по мнению эксперта также оказывают влияние на объемы продаж.

  1. Строить прогноз по дням нецелесообразно, т.к. дни слишком сильно отличаются друг от друга. Целесообразно строить прогноз либо по неделям, либо по месяцам. В дальнейшем будем исходить из того, что мы строим понедельный прогноз.
  2. При этом, как показывает практика реализации проектов по прогнозированию продаж, при наличии данных за 1,5 года целесообразно строить прогноз на 1 неделю вперед, при наличии данных за 2-3 года, на 2-3 недели. Хотя эти цифры весьма субъективны и могут меняться от проекта к проекту, т.к. очень многое зависит от качества исходных данных ( наличие товара на складе, стабильность спроса и.т.д.). Брать слишком большой временной интервал для построения модели прогнозирования нецелесообразно, т.к. факторы влияющие на спрос с течением времени могут менять степень своего влияния(рыночная ситуация с течением времени может сильно измениться).

  3. В качестве инструментов для прогнозирования, мы воспользуемся:
  1. Парциальной обработкой.
  2. автокорреляционной функцией.
  3. линейной регрессией.
  4. нейросетью.

  1. Парциальная обработка служит для улучшения качества исходных данных.Изначально данные по продажам сильно зашумлены. Шумы и аномальные выбросы в данных обусловлены провалами в складских запасах, случайнымиклиентами и многими другими факторами. Строить прогноз с учетом этих факторов не имеет никакого смысла, т.к. они имеют случайный характер. Прогнозировать имеет смысл лишь общую рыночную тенденцию (тренд). Для получения тренда используется парциальная обработка.
  2. Автокорреляционная функция предназначена для выявления сезонности в продажах товара.

    Этот алгоритм находит коэффициент корреляции между продажами в текущий временной период и продажами в предыдущие временные периоды:

  3. формула1

    X(0)-продажи в текущую неделю, X(1)-продажи в предыдущую неделю,…,X(n)-продажи n-недель назад.

    K(0)=K(X(0),X(0))=1
    K(1)=K(X(0),X(1))
    _________________
    K(n)=K(X(0),X(n)).

    Где K( , )-коэффициент корреляции между соответствующими величинами.

    Значение коэффициента корреляции изменяется в интервале [-1,1]. Чем ближе значение коэффициета корреляции к +1 или -1, тем больше линейная зависимость между соответствующими величинами, причем в случае +1, зависимость прямая, т.е. рост одной из величин приводит к росту и другой, а уменьшение одной из величин приведет к уменьшению другой.В случае -1, зависимость обратная, т.е. рост одной из величин приводит к уменьшению другой, а уменьшение одной из величин приведет к росту другой. В случае K=0, линейная зависимость между величинами отсутствует

  4. Линейная регрессия является одним из простейших способов моделирования системы, на вход которой поступают величины X1,…,Xn, а на выходе величины Y1,…,Yn. В дальнейшем без ограничения общности будем считать, что на выходе системы имеем одну величину Y. Примером подобной системы, может быть торговое предприятие: Y=прибыль.X1=товары, X2=денежные ресурсы,…
  5. Далее набирается статистика работы системы:

    X1(1),…,Xn(1), Y(1)
    X1(2),…,Xn(2), Y(2)
    _____________________
    X1(m),…,Xn(m), Y(m)

    И выдвигается гипотеза о линейной зависимости между входами и выходами, т.е. полагаем, что

    Y=a1*X1+…+an*Xn+a0.

    Где ai –неизвестные действительные числа, которые нам следует найти в процессе построения модели.

    Для нахождения ai используется метод наименьших квадратов (МНК), который заключается в нахождении тех значений ai, при которых достигается минимум выражения

    формула2

    После нахождения ai наша модель построена и может быть использована для ответа на вопрос, каково будет значение выхода при данных значениях входов, не используемых при построении модели.

    Естественно возникает вопрос, а как же выглядит система в случае задачи прогнозирования продаж?

    Предположим, что при анализе автокорреляционной функции, мы выяснили, что на продажи в текущую неделю в наибольшей степени влияют продажи, за две предыдущие недели (текущая рыночная тенденция) и продажи 52 и 53 недели назад (сезонность). Кроме того, мы предполагаем, что форма этой зависимости будет сохранена в течении некоторого промежутка времени.

    После этого производится преобразование исходного временного ряда (преобразование к скользящему окну):

    формула3

    Где p+54 число недель, данными по которым мы располагаем. Т.О. на вход нашей сформированной системе мы подаем величины X1,X2,X3,X4, а на выход величину Y. Обучающая выборка для построения модели системы, приведена выше и содержит p+1 элемент.

    Линейная регрессия является довольно распространенным методом моделирования систем, одно из ее преимуществ- наличие быстрых алгоритмов нахождения коэффициентов ai. Но в природе(и в частности в задаче прогнозирования продаж), линейных зависимостей нет в принципе и по этому линейная регрессия довольно часто дает плохие модели исследуемых систем.

    Естественным обобщением понятия линейной регрессии, является нейросеть. Нейросети используются для моделирования нелинейных зависимостей.

  6. Существует большое количество всевозможных нейросетевых архитектур, мы же рассмотрим наиболее простую и наиболее часто используемую на практике, получившую название – трёхслойный персептрон.
  7. Трёхслойным персептроном будем называть модель вида:

    формула4

    гдеформула5 -сигма-функция (функция активации). H-число нейронов в нейросети.

    формула6 -это свойство активно используется при построении алгоритмов нахождения коэффициентов vi, wik, ui - обучение нейросети.

    Для изображения нейросетей используется специальная схемотехника:

    формула7

    Все нейроны соединяются между собой связями, называемые весами (wij,vi,ui).

    Обозначим:формула8

    Доказано, что для любой функции F(X1,…,Xn), непрерывной на П и любого вещественного числа e>0 существует натуральное число H(число нейронов) и значения коэффициентов vi, wik, ui (весов), такие, чтоформула9

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

    Для нахождения коэффициентов vi, wik, ui, при построении модели системы используется МНК.

    формула10

    В дальнейшем будем рассматривать линейную регрессию, как частный случай нейросети, если положитьформула11

    Для оценки качества построенной модели (нейросети) используются следующие методы:

    Обучение нейросети проводят не на всей выборке, а выбирают из всей выборки случайным образом элементы, обычно 5-10% от общего объема выборки, полученное множество не используют при обучении и называют тестовым множеством.

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

    Следует отметить, что для нейросетей характерно так называемое явление переобучения. Аналогичная ситуация возникает, если мы попытаемся аппроксимировать непрерывную функцию полиномом слишком высокой степени. Мы всегда сможем построить полином степени n-1 проходящий через n заданных точек, но поведение такого полинома в n+1 точке будет иметь мало общего с поведением функции в этой точке. Т.е. мы построим модель хорошо аппроксимирующую прошлые данные, но плохоработающую на данных не используемых для ее построения. Ясно, что такая модель не имеет никакой практической ценности.

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

    n*H+m*H < N.

    Где n-число входов нейросети, m-число выходов. N-число элементов в обучающей выборке.

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

Строить модель (нейросеть) для каждой товарной позиции нецелесообразно, по следующим причинам:

  1. При наличии большого ассортимента (в несколько тысяч товарных позиций), этот процесс займет очень много сил и времени.
  2. Для товаров с часто обновляемым ассортиментом (например сотовые телефоны), по каждому товару в отдельности не успевает накопиться достаточное количество статистики его продаж.
  3. Для каждого товара в отдельности, достаточно часто бывает, что клиент хочет купить товар, а его нет на складе. Это явление вносит нехарактерные изменения в кривую спроса.

Решить вышеуказанные проблемы, помогает следующий прием:

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

Обозначим через U группу товаров обладающую указанными выше свойствами, через y1,…,yn- товары принадлежащие этой группе, через k1(t),…,kn(t). t=1…m. количество проданного товара в соответствующую неделю (t-номер недели). Изначально прогноз строится по всей группе товаров, т.е. прогнозируется значение величины K(t)=k1(t)+…+kn(t) в m+1 неделю. После построения модели мы получаем значение K(m+1).

Но нашей целью является получение прогноза по каждому товару в отдельности. Для достижения этой цели применяется следующий прием:

  1. Выбирается период разгруппировки L. Этот период определяется либо экспертом (специалистом в предметной области). Либо путем подбора значений параметра L и оценки качества прогноза на данных не используемых при построении модели.
  2. Производится разгруппировка полученного значения K(m+1) пропорциональная продажам каждого товара за период L.

Т.е. производится следующая операция:

B1(L)=k1(m)+k1(m-1)+…+k1(m-L+1)
B2(L)=k2(m)+k2(m-1)+…+k2(m-L+1)
___________________________________
Bn(L)=kn(m)+kn(m-1)+…+kn(m-L+1)

A1(L)= B1(L)/[ B1(L) +B2(L)+…+ Bn(L)]
A2(L)= B2(L)/[ B1(L) +B2(L)+…+ Bn(L)]
_____________________________________
An(L)= Bn(L)/[ B1(L) +B2(L)+…+ Bn(L)]

В качестве прогнозных значений по каждому товару берутся следующие величины:

k1(m+1)=A1(L)* K(m+1)
k2(m+1)=A2(L)* K(m+1)
______________________
kn(m+1)=An(L)* K(m+1).

II Часть.

В качестве платформы для реализации методологии описанной в первой части статьи был выбран программный продукт Deductor4.2. Этот выбор обусловлен тем, что Deductor – это платформа для создания законченных аналитических решений. Deductor содержит полный спектр механизмов анализа от готового хранилища данных и OLAP кубов до Data Mining методик. Реализованные в Deductor технологии позволяют на базе единой архитектуры пройти все этапы построения аналитической системы: от создания хранилища данных до автоматического подбора моделей и визуализации полученных результатов.

В соотношении цена-качество нами не было найдено аналогов программного продукта Deductor на российском рынке.

Рассмотрим понедельный прогноз продаж товаров принадлежащих товарной группе ВодкаИсток. Исходная информация была взята из предварительно созданного хранилища данных на базе платформы Deductor и имеет следующий вид:

pic1

Рис.1.

Далее строится сценарий обработки этой информации:

  1. Преобразуется дата к недельному интервалу(изначально информация была по дням).
  2. Производится группировка и сортировка продаж.В результате получаем информацию о продажах по всей группе Водка-Исток в недельном интервале. На рисунке 2 эта информация показана в виде таблицы. После этого происходит выделение тренда. Для этого используется мастер парциальной обработки. Тренд и исходные данные по продажам показаны на рис.3 Вверху данные до сглаживания, внизу- после сглаживания.

pic2

Рис.2.

pic3

Рис.3.

После выделения тренда, нужно посмотреть сезонность продаж. Для этого нужно воспользоваться обработчиком Автокорреляционная функция. Как видно из рисунка4 сезонность имеет достаточно сложный характер, но в наибольшей степени на продажи в текущую неделю влияют продажи в две предыдущие недели(текущая рыночная тенденция) и продажи 52 и 53 недели назад, что соответствует годовой сезонности.

После этого происходит преобразование данных к скользящему окну с глубиной погружения 53 и горизонтом прогнозирования 1.

Затем было построено несколько моделей, на вход которыхподавались: количество проданного товара-52, количество проданного товара-51, количество проданного товара-1, количество проданного товара. А выходом служило количество проданного товара+1.

Построены следующие модели:
Линейная регрессия.
Нейросеть с 1 нейроном.
Нейросеть с 2 нейронами.
Нейросеть с 3 нейронами.
Нейросеть с 4 нейронами.
Нейросеть с 5 нейронами.

pic4

Рис.4.

При этом обучающее множество содержало 27 примеров, тестовое 1 пример. После обучения, качество моделей оценивалось по диаграмме и диаграмме рассеяния. В качестве наилучшей модели, была выбрана нейросеть с 3 нейронами.Диаграмма и диаграмма рассеяния для нее приведены на рис.5 и рис.6.

pic5

Рис.5.

pic6

Рис.6.

pic7

Рис.7.

В численном виде прогнозное значение: количество проданного товара+1=39.

Далее была проведена разгруппировка с выбором L=4 (т.е. один месяц).

Получим следующую таблицу.

количество проданного товара+1Шаг прогнозаN6
3,7631Водка Истокоригинальная заглоба 0,5л 40% Беслан
0,8681Водка Истокоригинальная люкс 0,5л 40% гуал.красн Беслан
1,4471Водка Истокоригинальная 40% 0,25л ст/б фл Беслан
3,7631Водка Истокоригинальная (нов) люкс 0,5л Россия
9,2621Водка ИстокОригинальная Люкс матов.нов.бут.0,25л фляга
4,0521Водка Истокоригинальная нов 40% 0,5л ст/б Беслан
2,8941Водка Лимоннаяособая 40% 0,5л Исток
1,1581Водка Люкс крепкая45% 0,5л Исток
3,1841ВодкаЧерносмородиновая особая 40% 0,5л Исток
2,8941Водка Исток Медовая40% 0,5л ОАО Исток
2,6051Водка Исток Мягкая40% 0,5л ОАО Исток
1,4471Водка ИстокРжаная 40% 0,5л ОАО Исток
1,7371Водка ИстокПерцовая 40% 0,5л

Т.О. была построена модель прогнозирование объемов продаж по товарам группы Водка Исток.


P.S. На этом решение нашей задачи не заканчивается. Процесс познания безграничен и на следующих этапах, может быть сделана попытка добавления новых факторов в построение нашей модели. Кроме того, по прошествию определенного промежутка времени наша модель, может перестать быть адекватной текущей рыночной ситуации, в этом случае модель нужно перестроить с учетом новых данных.

Климов Артем.
BIGroup Labs.

   
К началу страницы

Задайте вопрос ›
Обсудите статью ›






Выскажите свое мнение

Ваше имя:
E-mail:
Профессия:
Комментарий:
 


Библиотека | Партнеры | Семинары | Контакты | Карта сайта
© 2012, BIGroup Labs.    Лаборатория Интеллектуального Бизнеса - 2004г.