📈 Симулятор Прогнозування Продажів — Тренд, Сезонність і Шум
Побудуйте синтетичну історію продажів із тренду, сезонності та шуму, а тоді спостерігайте, як модель прогнозування підганяється під неї та проєктує вперед з довірчим інтервалом.
Про симулятор прогнозування продажів
Реальні дані про продажі рідко бувають просто шумом — зазвичай у них є довгостроковий тренд (зростання чи спад попиту), повторюваний сезонний візерунок (сплески в свята, літні затишшя, ефекти днів тижня) і випадкова варіація зверху, яку жодна модель не може передбачити. Класична декомпозиція часових рядів розбиває спостережуваний ряд саме на ці три частини: y(t) = тренд(t) + сезон(t) + залишок(t). Щойно тренд і сезонну форму оцінено з історії, їх можна продовжити вперед у часі, щоб отримати прогноз, а розкид залишків підказує, наскільки цьому прогнозу можна довіряти.
Ця симуляція генерує 104 тижні (два роки) синтетичних даних про продажі з регульованого лінійного тренду, регульованого сезонного циклу та гаусівського шуму. Далі вона запускає справжній конвеєр декомпозиції на стороні клієнта: центроване ковзне середнє виокремлює тренд, усереднення за фазою виокремлює сезонний індекс, а лінійна регресія на десезоналізованих даних дає лінію тренду прогнозу. Стандартне відхилення залишків внутрішньовибіркового підгону визначає смугу довіри ±1,96σ навколо проєктованого прогнозу. Змінюйте повзунки, щоб побачити, як сила тренду, амплітуда сезонності та рівень шуму впливають на якість підгонки (MAE, RMSE) і наскільки точно прогноз відповідає щойно змодельованому «справжньому» майбутньому.
Часті запитання
Що означає заштрихована смуга довіри навколо прогнозу?
Смуга — це інтервал ±1,96σ навколо точкового прогнозу, побудований на основі стандартного відхилення залишків внутрішньовибіркового підгону (розбіжності між підігнаними значеннями моделі та фактичними історичними даними). Якщо припустити, що ці залишки приблизно нормально розподілені й той самий шумовий процес триватиме й надалі, близько 95% фактичних результатів мають потрапляти в межі смуги. Це не гарантія — це найкраща оцінка моделі щодо того, наскільки типово вона помиляється, спроєктована вперед зі сталою шириною.
Чому прогноз сильно промахується, коли сигма шуму велика?
Класична декомпозиція розділяє ряд на тренд, сезонність і залишковий шум, а потім припускає, що шум усереднюється з часом. Коли σ велика відносно тренду й сезонного сигналу, окремі тижні визначаються випадковістю без стійкої структури — у шумі немає нічого, чого модель могла б навчитися, тому смуга довіри розширюється, і будь-яка окрема майбутня точка, ймовірно, опиниться далеко від центральної лінії прогнозу, навіть якщо середня поведінка за багато тижнів усе ще відповідає тренду плюс сезонному візерунку.
Що таке класична декомпозиція часових рядів?
Декомпозиція розбиває спостережуваний ряд y(t) на компоненти: y(t) = тренд(t) + сезон(t) + залишок(t). Цей симулятор оцінює тренд за допомогою центрованого ковзного середнього, яке згладжує сезонний цикл, віднімає його, щоб виокремити сезонні ефекти, усереднює детрендовані значення за фазою (наприклад, усі 27-і тижні разом), щоб отримати повторюваний сезонний індекс, а потім заново підганяє лінійний тренд на десезоналізованих даних. Залишок — це те, що залишилося — в ідеалі близьке до чистого шуму без жодного залишкового візерунку.
У чому різниця між MAE та RMSE?
Середня абсолютна похибка (MAE) усереднює |факт − підгонка| за всіма точками, трактуючи кожну похибку однаково незалежно від її величини. Середньоквадратична похибка (RMSE) усереднює квадрати похибок перед добуванням кореня, що значно сильніше карає великі похибки порівняно з малими. Коли RMSE помітно більша за MAE, це сигналізує, що кілька тижнів мають незвично великі похибки (викиди), а не що похибки розподілені рівномірно — корисно для виявлення того, чи налаштування сигми шуму або амплітуди сезонності спричиняють випадкові великі сплески, які модель тренду й сезонності не може відтворити.
Як оцінюється сезонна компонента?
Для кожної фази річного циклу (з 0-го по 51-й тиждень періоду) симулятор усереднює детрендований залишок за кожним випадком цієї фази у двох роках історії. При 104 тижнях даних це два спостереження на фазу, чого достатньо, щоб відновити чітку сезонну форму при низькому шумі, але дає більш шумний сезонний індекс, коли σ висока. Потім 51 усереднення за фазами центрують так, щоб сума дорівнювала нулю, аби сезонна компонента не зміщувала загальний рівень тренду.
Чому прогноз просто повторює ту саму сезонну форму щороку?
Класична декомпозиція припускає, що сезонний візерунок стабільний від одного циклу до іншого — вона не має механізму для еволюції самої сезонної форми з часом (для цього знадобилася б складніша модель, як-от Хольта-Вінтерса з параметром сезонного згладжування, або модель простору станів / ARIMA із сезонним диференціюванням). Повторення фіксованого сезонного індексу — це сильне, але просте припущення: воно добре працює, коли базовий бізнес-цикл дійсно повторюється, і не спрацьовує, якщо сезонний візерунок змінюється.
Чому лінія справжнього майбутнього розходиться з прогнозом навіть при низькому шумі?
Лінія прогнозу екстраполює підігнаний тренд і сезонний індекс, оцінені виключно зі 104 тижнів шумної історії, тоді як лінія справжнього майбутнього продовжує точний базовий генеративний процес зі свіжим випадковим шумом. Навіть при низькій σ підігнаний нахил тренду й сезонний індекс є оцінками з певною похибкою вибірки, тому невеликий розрив між двома лініями очікуваний. Зі зростанням σ ця похибка оцінювання зростає, і саме тому існує смуга довіри.
Чому для пошуку тренду використовується ковзне середнє, а не пряме підганяння прямої?
Пряме підганяння прямої лінії до сирих даних, які все ще містять сильний сезонний цикл, може зміщувати нахил, тому що сезонні піки й спади розподілені у вибірковому вікні нерівномірно. Центроване ковзне середнє з вікном, що дорівнює сезонному періоду, скасовує один повний цикл у кожній точці, даючи гладку оцінку тренду, не спотворену сезонністю. Лише після того, як сезонну компоненту виокремлено й видалено, симулятор підганяє лінійну регресію, отримуючи оцінку тренду, не змішану із сезонним сигналом.
Центроване ковзне середнє тренду, усереднений за фазою сезонний індекс і регресія методом найменших квадратів заново підганяють десезоналізований ряд; стандартне відхилення залишків визначає смугу довіри ±1,96σ, намальовану позаду проєктованого прогнозу.
3D · Рушій Three.js / WebGL · ціль 60 FPS · працює повністю на стороні клієнта, без встановлення