Планування продажів та прогнозування попиту у роздрібній торгівлі часто означає необхідність коригування майбутніх продажів для деяких особливих дат та/або періодів, таких як промо-акції чи свята. Як прогнозувати продажі? Ті ажіотажні продажі, які ми спостерігаємо до чи після офіційних, неофіційних чи релігійних свят, часто обумовлені “природними” споживчими звичками: покупці хочуть “накрити великий стіл” для масштабного святкування чи навпаки поповнити свої запаси після такого. Іноді вони користуються значними знижками, або у них просто достатньо вільного часу (через офіційні вихідні дні) для шопінгу в період свят. Виникає питання: “Як скласти прогноз продажів?”
У RBC Group ми завжди враховуємо календар національних свят у наших прогнозних моделях. Деякі алгоритми, які ми іноді використовуємо для того, щоб зробити прогноз продажів, такі як Prophet, вже мають досить зручний вбудований функціонал для моделювання свят та подій, що повторюються. Крім того, він дозволяє легко встановити “святкові” дні в межах деякого вікна навколо певної дати. Наприклад, ви цілком обґрунтовано можете об’єднати Святвечір та Різдво, або захочете використати Чорну п’ятницю як додаток до Дня подяки. Давайте розберемося, як вирішити це завдання автоматично, щоб зробити прогноз продажів.
Реальна проблема полягає в тому, щоб вирішити, який розмір вікна використовувати у кожному конкретному випадку, тому що у кожного нашого клієнта – своя специфіка бізнесу. Отже, необхідно відповідально підійти до питання: “Як побудувати прогноз продажу?” Таким чином, налаштування святкового вікна може здійснюватися або виключно з урахуванням експертних знань власника бізнесу (хоча це може бути і не найкращий спосіб), або аналітично (те, як ми вважаємо за краще це робити). В останньому випадку основна ідея полягає у збиранні статистичних даних про продажі, пов’язані зі святами, протягом історичного періоду та розрахунку середнього вікна для кожної такої особливої дати, щоб охопити всі “ажіотажні” продажі. Як розрахувати прогноз продажу? Далі ми продемонструємо такий підхід на наборі із знаменитого M5 Forecasting – Accuracy competition на Kaggle.
Після завантаження даних ми зсуваємо нашу первинну обробку даних до одного штату – “Каліфорнія” (просто для спрощення):
Так як ми не збираємося працювати на рівні “магазин-товар”, нам потрібно об’єднати всі три набори даних і привласнити наш цільовий показник – “щоденні продажі” – як продукт у “кількість” та “ціна продажу”.
Далі, ми будемо підсумовувати продажі для всіх магазинів у штаті Каліфорнія, щоб отримати щоденні продажі компанії. Тепер ми можемо встановити правило для маркування “ажіотажних” продажів, пов’язаних зі святами — для цієї демонстрації ми розглядатимемо їх як ті, які вищі за 7-денний ковзний середній.
А, щоб “ажіотажні” продажі вважалися ” пов’язаними зі святами ” необхідно аби вони мали місце безпосередньо до чи після святкового дня, тобто безпосередньо примикали до події. На графіку можна легко спостерігати такі продажі над чорною кривою (7-денне ковзне середнє) поблизу червоних вертикальних ліній (свята та особливі заходи):
Далі наведено аналітичне відображення діаграми вище (1 – вище звичайних продажів, 0 – звичайні продажі). За допомогою такої таблиці можна без проблем розрахувати середню (річну) кількість прилеглих дат до кожного свята.
Складання прогнозу продажів можна вважати закінченим після завершення розрахунку, і ми можемо повністю автоматично отримати наш святковий календар, наприклад, у форматі для подальшого використання в Prophet.
Тепер настав час оцінити ефективність моделі Prophet з/без використання свят як додаткову опцію для прогнозування продажів (ми проведемо наш тест на 143 спостереженнях 2016 року, заздалегідь виключених із усіх попередніх розрахунків):
Подивіться, наскільки помітно модель покращила прогнозування обсягів продажу для днів безпосередньо перед Суперкубком (2016-02-07), Великоднем (2016-03-27) або Сінко де Майо (2016-05-05). Таким чином стає зрозуміло, як спрогнозувати обсяг продажів залежно від святкових днів. Всі ці зміни були здійснені за допомогою кількох рядків коду з урахуванням виключно історичних даних про продажі. У кожного заходу є окреме вікно для подальшого моделювання залежно від особливостей бізнесу, тоді як ми використовували загальний календар з датами свят як основні вхідні дані, щоб здійснити прогнозування обсягу продажів.
