1. Введение
Прогнозирование временных рядов — это мощный метод, используемый для прогнозирования будущих значений на основе исторических данных с временным компонентом. В шумном мире розничной торговли точные прогнозы продаж могут означать разницу между успехом и стагнацией. Представьте себе, что у вас есть возможность прогнозировать потребительский спрос, оптимизировать запасы и точно планировать рекламные акции. Это история о том, как я приступил к проекту прогнозирования временных рядов, погрузившись с головой в данные корпорации Favorita, известной продуктовой розничной сети в Эквадоре.
1.1. Цели
Мое путешествие началось с двойной миссии:
я. Unearth Insights: я стремился раскрыть секреты, скрытые в данных о продажах магазина Favorita. Это включало в себя углубление в такие особенности, как расположение магазинов, семейства продуктов, рекламные акции и данные о продажах. Моя цель состояла в том, чтобы предоставить компании полезную информацию для принятия стратегических решений.
II. Прогнозирование продаж в магазине. Суть моего путешествия заключалась в построении надежной модели прогнозирования временных рядов. Эта модель позволит точно прогнозировать объемы продаж различных семейств продуктов в разных магазинах Favorita. Успешный результат может революционизировать управление запасами, стратегии продвижения и общую эффективность продаж.
1.2. Методология
Руководствуясь этим амбициозным видением, моя методология сформировалась:
а). Исследование данных
Я отправился в путешествие по поиску данных. В каждой строке, в каждом столбце была часть головоломки. Я погрузился в наборы данных, расшифровывая особенности, распределения и связи. Это исследование было не просто средством для достижения цели; это был фундамент, на котором держалось все путешествие.
б). Подготовка данных
Каждый моряк знает о важности мореходного судна. Точно так же данные должны быть подготовлены и готовы к дальнейшему путешествию. Отсутствующие значения были исправлены, категориальные переменные закодированы, а новые функции созданы с особой тщательностью. Вменение, масштабирование и однократное кодирование были инструментами в моем наборе инструментов, помогающими превратить данные в надежного компаньона.
в). Анализ временных рядов
Данные говорили на своем собственном языке — времени. Тенденции сменяли друг друга, времена года рисовали свои узоры, а выбросы время от времени производили фурор. Мой анализ углубился в эту временную область, распутывая структуру данных временных рядов. На этом этапе были обнаружены скрытые истории эволюции продаж с течением времени.
г). Выбор модели и обучение
Выбор подходящего судна для экспедиции был критическим выбором. Каждая модель, от линейной регрессии до случайных лесов, обладала уникальными преимуществами. Мой путь привел меня к выбору модели, где я использовал мощь таких алгоритмов, как ARIMA и SARIMA. Помимо чистых данных, я даже учитывал внешние факторы, такие как рекламные акции, праздники и цены на нефть. Они были компасом, направляющим прогноз в контексте реального мира.
д). Оценка модели
По ходу экспедиции я прокладывал курс, оценивая работу моделей. Моими путеводными звездами были средняя абсолютная ошибка, среднеквадратическая ошибка и средняя абсолютная ошибка в процентах. Эти метрики осветили путь к самой точной и надежной модели прогнозирования.
е). Развертывание модели и прогнозирование
Когда модель была настроена и готова, пришло время отправиться в неизведанные воды прогнозов будущего. Выбранная мной модель заняла центральное место, делая прогнозы для еще невиданных периодов времени. Настоящая проверка заключалась в том, насколько хорошо он мог передать пляску продаж за горизонтом.
1.3. Настройка сцены
Мой корабль не был бы полным без правильных инструментов. Инсталляциями и импортами я превратил чистый холст в сплошную колоду:
1.4. Отлив: загрузка данных
Так же, как кораблю нужны припасы, мое путешествие основывалось на данных из нескольких источников. Базы данных SQL дали сокровища в виде цен на нефть (oil_df), праздничных событий (holidays_events_df) и сведений о магазине (stores_df):
1.5. Суть квеста: раскрытие наборов данных
Ни одна экспедиция не обходится без груза, а мое судно было забито наборами данных. Набор данных поезда содержал ключи к раскрытию закономерностей продаж, в то время как набор тестовых данных представлял собой проблему прогнозирования, поскольку он не содержал целевого столбца «продажи».
Набор данных о транзакциях был еще одним набором идей:
1.6. Навигация в неизвестном: вопросы и гипотезы
У каждого исследователя есть вопросы и гипотезы, которыми он руководствуется в своем путешествии. Мое путешествие ничем не отличалось:
Гипотеза:
Нулевая гипотеза (H0):рекламная деятельность, цены на нефть и праздники/события не оказывают существенного влияния на продажи в магазинах корпорации Favorita.
Альтернативная гипотеза (H1). Рекламные акции, цены на нефть и праздники/события оказывают значительное влияние на продажи в магазинах корпорации Favorita.
Вопросы:
- Является ли набор данных о поездах полным и охватывает все необходимые даты?
- На какие даты приходятся самые высокие и самые низкие продажи каждый год?
- Как землетрясение повлияло на продажи?
- Можем ли мы выделить отдельные группы магазинов с различными моделями продаж?
- Влияет ли действие рекламных акций, цен на нефть и праздников на продажи?
- Какие истории лежат в основе даты и ее извлеченных особенностей?
- Показывают ли определенные семейства продуктов превосходные показатели продаж?
- Как изменяется тенденция продаж в зависимости от количества магазинов?
1.7. Отправление в путешествие
Итак, моя экспедиция в области прогнозирования временных рядов отправилась в плавание. Имея под рукой наборы данных и направляя меня компасом вопросов, я отважился погрузиться в неизведанные воды анализа данных и построения моделей. Каждая строка кода, каждая обнаруженная информация были на шаг ближе к разгадке истории продаж в магазине для корпорации Favorita. Оставайтесь с нами, пока мы отправляемся в это захватывающее путешествие, путешествуя по морям данных, чтобы открыть будущее успеха розничной компании.
2. Исследовательский анализ данных (EDA)
EDA необходим для понимания основных закономерностей, тенденций и сезонности данных. Мы визуализируем временные ряды продаж, изучаем сезонные закономерности и выявляем любые аномалии или выбросы.
3. Разработка функций
Разработка признаков играет решающую роль в повышении производительности модели. Мы извлекаем соответствующие компоненты даты, классифицируем продукты по значимым группам и кодируем категориальные переменные, используя такие методы, как однократное кодирование.
4. Разделение данных
Данные временных рядов требуют другого подхода к разбиению набора данных. Мы используем хронологическое разбиение, беря данные за более ранние годы для обучения и более поздние годы для тестирования.
5: Выбор модели и оценка
В этом разделе мы реализуем несколько моделей прогнозирования временных рядов и оцениваем их эффективность с использованием таких показателей, как среднеквадратическая логарифмическая ошибка (RMSLE), среднеквадратическая ошибка (RMSE), среднеквадратическая ошибка (MSE) и средняя абсолютная ошибка (MAE). . Модели, которые мы исследуем, включают:
- Авторегрессионное интегрированное скользящее среднее (ARIMA)
- Сезонная авторегрессионная интегрированная скользящая средняя (SARIMA)
- Линейная регрессия
- Случайный лесной регрессор
- Регрессор повышения градиента
6. Сравнение и интерпретация моделей
После оценки каждой модели мы сравниваем их результаты и определяем наиболее эффективную модель. Мы интерпретируем коэффициенты модели (где применимо), чтобы получить представление о факторах, влияющих на продажи в магазине.
7. Заключение
Прогнозирование временных рядов является ценным инструментом для прогнозирования продаж в магазине и других явлений, зависящих от времени. В рамках этого проекта мы продемонстрировали весь процесс прогнозирования временных рядов, от предварительной обработки данных до оценки модели. Понимая сильные и слабые стороны различных моделей, мы можем делать более точные прогнозы и принимать решения на основе данных для корпорации Favorita.
В заключение, эта статья представляет собой исчерпывающее руководство по прогнозированию временных рядов с практическими примерами и фрагментами кода. Я надеюсь, что вы найдете эту статью полезной в своих собственных проектах по прогнозированию временных рядов. Удачных прогнозов!