Прогнозирование продаж полуфабрикатов

2013-01-18 11:30:56 4735

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

Содержание

Вербальная постановка задачи

Описательный анализ

Сезонная декомпозиция

Построение прогноза с помощью модели АРПСС

Кросс – проверка

Построение прогноза с помощью нейронных сетей

Резюме

Вербальная постановка задачи

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

  • Хороший прогноз можно получить практически только для детерминированного ряда, развитие которого и так известно.

  • Прогноз предполагает, что в будущем не произойдет каких-либо существенных изменений факторов, которые могут повлиять на ряд.

  • Как правило, отдача от прогнозирования достигается при применении комплексных решений, включающих не только методы прогноза, но и средства оптимизации.

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

Исходный временной ряд был представлен в виде таблицы excel. Данные были успешно импортированы в STATISTICA.

Рисунок 1. Исходные данные

Данные представляют собой еженедельные продажи полуфабрикатов. Всего 116 наблюдений. Таким образом мы уже имеем "спущенную сверху" сезонную структуру. Экспертно установлено, что ряд подвержен высокочастотным колебаниям небольшой амплитуды с периодом в 4 измерения. Такие колебания свойственны любому производителю, сбывающему продукцию, в частности оптом. окупатели планируют закупки с периодичностью в месяц.

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

Описательный анализ

Описательные исследования временного ряда являются неотъемлемой частью прогностических исследований. Первым шагом обычно является визуализация временного ряда. Это можно сделать с помощью контекстного меню или воспользовавшись схемой Графика - 2М графики - Линейные графики. Будет отображено диалоговое окно настройки графиков.

Рисунок 2. Диалоговое окно настройки графиков

Шаг 2. На вкладке параметры 1 задайте переменную с обозначением сезонных циклов как отвечающую за разметку по оси Х.

Шаг 3. Нажмите на кнопку ОК - будет отображен линейный график для переменной.

Рисунок 3. Линейный график продаж

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

Сезонная декомпозиция

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

Шаг 1. Выберете Анализ - Углубленные методы анализа - Временные ряды и прогнозирование. В появившемся окне выберете Классическая сезонная декомпозиция (Census 1).

Шаг 2. В появившемся диалоговом окне задайте тип модели «Аддитивная», значение сезонного лага установите равным 4. Задайте добавление в рабочую область компоненты скользящего среднего для нашего ряда. Правильно настроенная панель анализа выглядит так:

Рисунок 4. Настройки сезонной декомпозиции

Шаг 3. Нажмите ОК для начала вычислений. По окончании будет отображена панель анализа с добавленным рядом скользящего среднего.

Шаг 4. На вкладке Прогноз задайте переменную с циклами как ответственную за разметку по оси Х и нажмите на кнопку Просмотр нескольких переменных. Будет отображен график скользящего среднего и исходного ряда.

Рисунок 5. Исходный и сглаженный ряды

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

Построение прогноза с помощью модели АРПСС

Прогноз данного временного ряда будет двух видов: краткосрочный и среднесрочный. Краткосрочный прогноз удлинит ряд на 1,5 - 2 месяца и может являться основанием для принятия решений на ближайшее время, среднесрочный прогноз даст тенденцию развития продаж на более длительное время.

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

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

Шаг 1. Выберете АнализУглубленные методы анализа - Временные ряды и прогнозирование. На появившейся панели выберете АРПСС и автокорреляционные функции.

Шаг 2. Задайте параметры модели. Это параметры авторегрессии и скользящего среднего, вычеты и предварительные преобразования ряда. Анализ АКФ и ЧАКФ показывает, что оптимальной для прогнозирования будет модель (2,1,0)(1,1,0). Такая модель может быть задана следующим образом:

Рисунок 6. Настройки АРПСС

Шаг 3. Нажмите на ОК для начала оценки параметров. Если все настройки сделаны верно, все 3 параметра окажутся высоко значимыми. Нажмите на кнопку График ряда и прогнозов - будет построен следующий график:

Рисунок 7. Прогноз АРПСС

Прогноз обещает относительно стабильное развитие уровня продаж на ближайшие 2 месяца. Данный прогноз не учитывает годовых колебаний и мы можем ему доверять только если есть уверенность относительно стабильности развития рынка.

Кросс – проверка

Независимая проверка качества прогноза является одной из важных задач в прогнозировании. Мы должны быть уверены, что прогноз в будущем будет приближен к реальным (наблюдаемым) данным. Часто для этой цели используется алгоритм кросс – проверки. Алгоритм состоит в следующем - перед проведением анализа исходный временной ряд укорачивается на 7-10%, «хвост» ряда сохраняется для дальнейшего анализа, а после этого строится прогноз «укороченного» ряда и результат сравнивается с отложенными данными.

При условии, что под конец наблюдаемого периода на ряд не производилось интервенций, можно ожидать, что мера ошибки, полученной при сопоставлении, будет оценкой ошибки на будущий период. Иными словами, если наш прогноз на 2-5% отличается от наблюдаемых данных, мы можем ожидать, что эта ошибка сохранится и на будущий ненаблюдаемый период. Этот алгоритм в применении к данному случаю выглядит следующим образом.

Рисунок 8. Исходный ряд и кросс – проверка

Красным показана часть ряда, исключенная из анализа. С помощью алгоритма АРПСС был построен прогноз части ряда, помеченной синим цветом. Результат был сопоставлен с данными, исключенными из анализа.

Рисунок 9. Прогноз ряда и данные кросс – проверки

Красным цветом показаны реальные данные, красным – прогноз, построенный как прогноз временного ряда с «обрезанным» концом. Из графика видно, что прогноз по характеру совпадает с реальными данными, что доказывает адекватность примененной модели.

Измерение ошибки подгонки данной кросс – проверки и прогноза может быть произведено с помощью соответствующих модулей системы. Для данного ряда ошибка составляет порядка 10%, что дает нам шанс ожидать подобной ошибки в будущем.

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

Рисунок 10. Сглаженный скользящим средним ряд продаж

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

Построение прогноза с помощью нейронных сетей

Инструментом для построения прогноза подобного ряда были выбраны нейронные сети. Прочие методы оказались неэффективными по нескольким причинам:

  • Ряд достаточно короткий для использования сезонных методов.

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

Кроме того, использование нейронных сетей избавит нас от необходимости придерживаться какой-то определенной сезонной или трендовой модели.

Шаг 1. Выберете Анализ - Нейронные сети. Отобразится диалоговое окно настройки работы с нейронными сетями. Необходимо установить тип задачи на Временные ряды.

Шаг 2. Нажмите на кнопку Переменные и задайте переменную, отвечающую за сглаженный ряд как выходную и входную непрерывную. Нажмите на ОК для возврата на основное окно. Установите опцию Инструмент на Мастер решений. Затем нажмите ОК для перехода на диалоговое окно настроек Мастера.

Шаг 3. На вкладке Временные ряды установите параметры временного окна от 1 до 30. Этот параметр используется как основание для определения периода сезонной компоненты.

Шаг 4. На вкладке Тип сети установите все галочки, чтобы позволить системе тестировать все возможные типы нейронных сетей.

Шаг 5. На вкладке Быстрый выберете обучение 50 нейронных сетей и сохранение 50 лучших. Правильно настроенная панель будет выглядеть следующим образом:

Рисунок 11. Настройки нейронной сети

Шаг 6. Нажмите на кнопку ОК для начала обучения нейронных сетей. Через некоторое время будет отображена панель анализа результатов.

Рисунок 12. Панель результатов обучения нейронных сетей

Из обученных 50 нейронных сетей необходимо выбрать несколько с наименьшей тестовой производительностью. Это можно сделать с помощью кнопки Итоги моделей на вкладке Быстрый. Все сети необходимо отсортировать по параметру Тестовая производительность и выбрать несколько верхних сетей.

Непосредственный прогноз получается прогоном наблюдений через нейронную сеть – строится проекция временного ряда. Это может быть сделано на вкладке Дополнительно. Нажмите на кнопку Проекция временного ряда, будет отображено следующее диалоговое окно:

Рисунок 13. Настройки проекции временного ряда

Шаг 7. Задайте проекцию на 12 наблюдений (3 месяца) и нажмите на кнопку График. Будет отображен график удлинения нашего временного ряда.

Рисунок 14. Проекция временного ряда

При наложении на исходный график он принимает вид:

Рисунок 15. График прогноза трендовой компоненты ряда

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

Рисунок 16. График ряда и прогнозов сглаженного ряда

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

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

Резюме

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

  1. Сложной сезонной структурой.

  2. Наличием низко- и высокочастотных периодических компонент.

  3. Небольшим периодом развития и отслеживания во времени.

  4. Неустойчивыми колебаниями в начале отчетного периода.

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

Для этой цели был использован механизм обучения нейронной сети. Было опробовано множество архитектур, лучшей оказался персептрон с 30 входными нейронами. Прогноз ряда свидетельствует о снижении уровня продаж в течение ближайших 3-4 месяцев, затем снова об их росте.

Была сделана попытка построить прогноз ряда «с лету», не делая предварительных преобразований. Полученный прогноз длиной 1-1,5 месяца свидетельствовал о медленном снижении уровней продаж при сохранении сезонных месячных колебаний.

Итоговый прогноз можно получить только на ближайшие 1,5-2 месяца – за это время будет наблюдаться спад еженедельных продаж примерно до 450 единиц в неделю, после чего необходимо будет дальнейшее изучение рынка и уточнение требуемых прогнозов.

Представленный кейс разработан техническими специалистами компании StatSoft Russia. Другие примеры применения системы STATISTICA для проведения маркетинговых исследований можно посмотреть в Базе примеров StatSoft.