Натисніть, щоб дізнатись більше про автора Мааріт Відманн.
Повна програма аналізу часових рядів охоплює кроки в a наука даних цикл від доступу до перетворення, моделювання, оцінювання та розгортання даних часових рядів. Однак для даних часових рядів конкретні завдання на цих етапах відрізняються порівняно з перехресними даними. Наприклад, дані поперечного перерізу збираються як знімок одного об’єкта в певний момент часу, тоді як дані часових рядів збираються шляхом спостереження за тим самим об’єктом протягом певного періоду часу. Регулярні шаблони в даних часових рядів мають свою спеціальну термінологію, і вони визначають необхідну попередню обробку перед переходом до моделювання часових рядів. Часові ряди можна моделювати за допомогою багатьох типів моделей, але конкретні моделі часових рядів, такі як модель ARIMA, використовують часову структуру між спостереженнями.
У цій статті ми представляємо найпоширеніші завдання на шляху створення програми часових рядів. Нарешті, ми застосували теорію на практиці, створивши приклад програми на платформі Analytics.
Доступ до часових рядів
Часові ряди мають різні джерела та застосування: щоденні дані про продажі для прогнозування попиту, річні макроекономічні дані для довгострокового політичного планування, дані датчиків смарт-годинника для аналізу сеансу тренування та багато іншого. Усі ці часові ряди відрізняються, наприклад, своєю детальністю, регулярністю та чіткістю: ми можемо бути впевнені, що маємо значення ВВП для нашої країни за цей рік, а також за наступні 10 років, але ми не можемо гарантувати, що сенсор нашого смарт-годинника працює стабільно під час будь-яких вправ і при будь-якій температурі. Також може статися, що дані часових рядів не доступні через регулярні проміжки часу, а можуть бути зібрані лише з випадкових подій, таких як інфекції чи спонтанні відвідування клієнтів. Однак спільним для всіх цих видів даних часових рядів є те, що вони збираються з одного джерела протягом певного часу.
Регулювання та очищення часових рядів
Коли ми отримаємо дані часових рядів, наступним кроком буде зробити їх рівномірно розподіленими з відповідною деталізацією, безперервними та чистими. Необхідні завдання залежать від початкової форми даних, а також від нашої аналітика мета. Наприклад, якщо ми плануємо тижневу рекламну акцію продукту, нас можуть зацікавити більш детальні дані, ніж якщо ми хочемо отримати огляд продажів певного продукту.
Сортування
Часові ряди потрібно відсортувати за часом. Коли ви розділяєте дані на навчальні та тестові набори, не забудьте зберегти часову структуру між записами, беручи дані зверху/знизу для тестування/навчання. Якщо ваші дані містять більше одного запису на мітку часу, їх потрібно агрегувати за міткою часу. Наприклад, якщо у вас є кілька замовлень на день і вас цікавлять щоденні продажі, вам потрібно підсумувати продажі за кожен день. Крім того, якщо вас цікавлять часові ряди з деталізацією, відмінною від тієї, що у вас зараз є в даних (наприклад, місячні продажі замість щоденних продажів), ви можете додатково агрегувати дані з бажаною деталізацією.
Відсутні значення
Якщо деякі позначки часу відсутні, вам потрібно ввести їх у часовий ряд, щоб зробити його рівномірним. Іноді відсутні записи є частиною динаміки часових рядів (наприклад, фондовий ринок закривається в п’ятницю та відкривається в понеділок).
Коли ви вводите відсутні часові позначки до даних, відповідні значення, звичайно, відсутні. Ви можете приписати ці відсутні значення, наприклад, лінійною інтерполяцією або ковзними середніми значеннями. Однак пам’ятайте, що найкраща техніка врахування відсутніх значень залежить від регулярної динаміки даних. Наприклад, якщо ви перевіряєте щотижневу сезонність у щоденних даних, а значення однієї суботи відсутнє, тоді значення останньої суботи, ймовірно, найкраще замінить його. Якщо відсутні значення не відсутні випадково, як відсутні ціни закриття фондового ринку у вихідні, ви можете замінити їх фіксованим значенням, яке в цьому випадку дорівнюватиме 0. З іншого боку, якщо відсутні значення є випадковими і вони трапляються досить далеко в минулому, ви можете використовувати дані після відсутнього значення та ігнорувати старіші дані.
Нерегулярні візерунки
Одним із хороших способів обробки швидких коливань і викидів є згладжування даних. Можна використовувати декілька технік, наприклад moving average та експоненціальне згладжування. Крім того, вирізання значень, які лежать поза межами прямокутної діаграми, згладжує дані. Майте на увазі, що сильна сезонність у даних може призвести до широко розповсюдженої коробкової діаграми, і тоді краще використовувати умовну коробкову діаграму для виявлення викидів.
Однак іноді часові ряди просто показують дуже нерегулярне явище! У такому випадку ви можете спробувати зробити часовий ряд більш регулярним, витягнувши його підмножину, наприклад, враховуючи лише продажі одного продукту замість продажів усього супермаркету, або кластеризуючи дані.
Дослідження та перетворення часових рядів
На даний момент у нас є дані часового ряду у формі, яка підходить для візуального та чисельного дослідження. Різні графіки та статистичні дані виявляють довго- та короткострокові закономірності та часові зв’язки в часовому ряді, які ми можемо використовувати, щоб краще зрозуміти його динаміку та передбачити його майбутній розвиток.
Візуальне дослідження часових рядів
Основним графіком для дослідження часових рядів є графік (рис. 3), який показує можливий напрямок, регулярні та нерегулярні коливання, викиди, прогалини або точки повороту в часовому ряді. Якщо ви спостерігаєте закономірність у своєму часовому ряді, наприклад річну сезонність продажів напоїв, ви можете перевірити кожен сезонний цикл (рік) окремо на сезонному графіку (Малюнок 3). На сезонному графіку можна легко побачити, наприклад, чи липень цього року був більшим місяцем продажів, ніж минулого року, чи щомісячні продажі збільшуються з року в рік.
Якщо вас цікавить, що відбувається протягом сезонів, наприклад, який середній обсяг продажів у літні місяці та наскільки та в якому напрямку продажі змінюються щомісяця, ви можете перевірити таку динаміку на умовному діаграмі (рис. 3). Ще одним корисним графіком для дослідження часових рядів є графік відставання (рис. 3). Діаграма відставання показує зв’язок між поточними значеннями та минулими значеннями, наприклад, продажі сьогодні та продажі за тиждень до цього.
Класична декомпозиція часових рядів
Класична декомпозиція, тобто розкладання часового ряду на тенденцію, сезонність і залишкову величину, є гарним орієнтиром для прогнозування. Передбачається, що залишилася частина часового ряду, залишок стаціонарний, і може бути прогнозований, наприклад, за допомогою моделі ARIMA. Пам’ятайте, однак, що якщо залишковий ряд не є стаціонарним, можуть знадобитися деякі додаткові перетворення, такі як розрізнення першого порядку або логарифмічне перетворення вихідного часового ряду.
По-перше, якщо часовий ряд показує напрямок, тенденцію, часовий ряд можна усунути, наприклад, підігнавши регресійну модель за допомогою даних або обчисливши ковзне середнє значення.
По-друге, якщо часовий ряд показує регулярне коливання – сезонність – часовий ряд можна відкоригувати для цього. На графіку автокореляції часового ряду можна знайти лаг, де спостерігається основна сезонність. Наприклад, якщо ви спостерігаєте пік на лаг 7, і у вас є щоденні дані, тоді дані матимуть щотижневу сезонність. Сезонність можна відкоригувати, розрізняючи дані з відставанням, де відбувається головний сплеск. Якщо ви хочете відкоригувати другу сезонність у даних, ви можете зробити це, повторивши процедуру для скоригованого (розрізненого) часового ряду.
Нарешті, коли ви досягли стаціонарного часового ряду, який готовий до моделювання, наприклад, моделлю ARIMA, ви можете виконати остаточну перевірку, наприклад, за допомогою Тест Люнг-бокса для стаціонарності.
Моделювання та оцінка часових рядів
Тепер переходимо до моделювання залишкової частини часового ряду, яка містить його нерегулярну динаміку. Ми можемо зробити це за допомогою моделей ARIMA, навчання за допомогою машини моделі, нейронні мережі та багато їх варіацій. Ми часто моделюємо залишкову частину часового ряду за допомогою цих моделей, оскільки вона стаціонарна. Однак декомпозиція часових рядів не завжди необхідна, тому що деякі моделі, як, наприклад, сезонна модель ARIMA, також працюють для моделювання нестаціонарних часових рядів.
Нижче ми збираємо кілька властивостей цих різних методів моделювання, їх подібності та відмінності, щоб ви могли вибрати найкращий для свого випадку використання. Пам'ятайте також, що корисно тренувати кілька моделей і навіть складати з них ансамбль!
Моделі ARIMA
АРІМА Модель (Autoregressive Integrated Moving Average) — модель лінійної регресії між поточними та минулими значеннями (AR-частина), а також між поточними та минулими помилками прогнозу (MA-частина). Якщо модель має ненульову I-частину, то дані розрізняються, щоб зробити її стаціонарною. Базові моделі ARIMA припускають, що часовий ряд є стаціонарним, а стаціонарний часовий ряд не має передбачуваних моделей у довгостроковій перспективі. Зменшення точності довгострокових прогнозів можна побачити у збільшенні довірчих інтервалів прогнозів. Наявність більшої кількості даних не завжди краще для навчання моделей ARIMA: великі набори даних можуть зробити оцінку параметрів моделі моделі ARIMA трудомісткою, а також перебільшити різницю між справжнім процесом і процесом моделі.
Моделі машинного навчання
Моделі машинного навчання використовують значення з відставанням як стовпці предиктора та ігнорують часову структуру між цільовим стовпцем і стовпцями предиктора. Моделі машинного навчання також можуть ідентифікувати довгострокові закономірності та поворотні моменти в даних за умови, що в навчальних даних надано достатньо даних для встановлення цих закономірностей. Загалом, чим більше нерівностей показують дані, тим більше даних потрібно для навчання моделі. Коли ви застосовуєте модель машинного навчання, рекомендується моделювати залишки. Інакше ви можете побудувати модель, складнішу за класичну модель декомпозиції, але яка насправді не вивчає нічого нового!
Поради щодо вибору моделі
По-перше, деякі явища важко передбачити, і в такому випадку часто має сенс вибрати простішу модель і не вкладати ресурси в моделювання того, що неможливо точно спрогнозувати.
По-друге, продуктивність моделі - не єдиний критерій. Якщо важливі рішення ґрунтуються на результатах моделі, її інтерпретація може бути важливішою, ніж трохи краща продуктивність. Тим не менш, нейронна мережа може програти простій класичній моделі декомпозиції, хоча вона прогнозує трохи краще.
По-третє, додавання пояснювальних змінних до вашої моделі може підвищити точність прогнозу. Однак у такій моделі також необхідно прогнозувати експлікативні змінні, а зростання складності моделі не завжди варте більшої точності. Іноді достатньо приблизних оцінок, щоб підтвердити рішення: якщо обсяги доставки обчислюються десятками та сотнями, то прогнозований попит також не повинен мати більшу деталізацію.
Оцінка моделі
Після навчання моделі наступним кроком є її оцінка. Для прогнозування у вибірці тестовий набір є самим навчальним набором, тому процес моделі адаптується до даних, які використовувалися для навчання моделі. Для прогнозування поза вибіркою тестовий набір є наступним за навчальним у часі.
Одним із рекомендованих показників помилки для оцінки моделі часових рядів є середня абсолютна відсоткова помилка (КАРТА), оскільки він забезпечує похибку в універсальній шкалі, у відсотках від фактичного значення. Однак, якщо справжнє значення дорівнює нулю, ця метрика не визначена, а також інші метрики помилок, наприклад середня квадратична помилка (RMSE), зроблю. Однак часто рекомендують НЕ використовувати R-квадрат. Метрика R-квадрат не відповідає контексту аналізу часових рядів, оскільки фокус зосереджений на прогнозуванні майбутньої систематичної мінливості цільового стовпця замість моделювання всіх мінливостей у минулому.
Прогнозування та реконструкція часових рядів
Ми майже на місці! Останнім кроком є прогноз майбутніх значень і реконструкція сигналу.
Динамічне прогнозування
Якщо у вас є модель, яка не може забезпечити точні прогнози в довгостроковій перспективі, динамічне розгортання часто підвищує точність прогнозу поза вибіркою. У динамічному розгортанні одночасно прогнозується лише одна точка в майбутньому, а минулі дані оновлюються цим значенням прогнозу для створення наступного прогнозу (рис. 5).
Відновлення тенденції та сезонності
Нарешті, якщо ми розкладаємо часовий ряд перед прогнозуванням, нам потрібно відновити тенденцію та/або сезонність у прогнозах. Якщо ми регулюємо сезонність, розрізняючи дані, ми починаємо реконструкцію сигналу, додаючи значення з відставанням, де виникає сезонність. Наприклад, якщо ми мали щоденні дані y, де ми застосували сезонну різницю на лаг 7 (тижнева сезонність), відновлення цієї сезонності потребувало б наступного розрахунку для прогнозованих значень yt+1, yt+2, ..., yt+h :
де tостання точка часу в даних навчання, і h є прогнозним горизонтом.
Щоб відновити другу сезонність, ми повторюємо описаний вище крок для відновленого часового ряду. Якби ми хотіли відновити компонент тенденції до часового ряду, ми б застосували регресійну модель, що представляє тенденцію до відновленого часового ряду.
Заповніть програму часових рядів на платформі Analytics
Нарешті, давайте розглянемо, як застосувати ці кроки на практиці за допомогою нашої платформи Analytics. Робочий процес Доступ до перетворення та моделювання часових рядів (доступно в Hub) на малюнку 6 показано кроки від доступу до очищення, візуального дослідження, декомпозиції та моделювання часових рядів. Для деяких із цих завдань ми використовуємо компоненти часових рядів які інкапсулюють робочі процеси як функції, специфічні для часових рядів: агрегують дані з вибраною деталізацією, виконують класичну декомпозицію тощо.
У цьому прикладі ми використовуємо Зразок – супермаркет дані надані Жива картина. У нашому аналізі ми зосереджуємося на замовленнях усіх продуктів з 2014 по 2017 роки – загалом 9994 записи. Ми починаємо попередню обробку, переформовуючи дані в дані часових рядів, обчислюючи загальний обсяг продажів за день. Тепер ми маємо лише одне значення на день, але деякі дні відсутні, оскільки в ці дні не було надіслано жодного замовлення. Тому ми вводимо ці дні в часовий ряд і замінюємо відсутні значення продажів фіксованим значенням 0. Після цього ми агрегуємо дані на місячному рівні та в подальшому аналізуємо середні продажі за кожен місяць.
Для візуального дослідження ми також збираємо дані на річному рівні, і ми з’ясовуємо, що на початку 2015 року є переломний момент, як показано на графіку праворуч на малюнку 7. Лінійний графік ліворуч показує річну сезонність даних: є два регулярних піки наприкінці кожного року та менший пік на початку кожного року. Ми також виявляємо річну сезонність у даних, як показано великим сплеском у лагі 12 на графіку ACF ліворуч. Ми розкладаємо часовий ряд на тренд, сезонність і залишковий показник, і ці компоненти показані на лінійному графіку посередині на рисунку 7. Діаграма ACF праворуч не показує значної автокореляції в залишковому ряді.
Далі ми моделюємо залишковий ряд середньомісячних продажів за допомогою моделі ARIMA. Після розрізнення на лагі 12 довжина часового ряду становить 36 спостережень. Ми шукаємо найкращу модель із компонентом Auto ARIMA Learner із максимальним порядком 4 для частин AR і MA і максимальним порядком 1 для частини I. Найефективніша модель на основі Інформаційний критерій Akaike дорівнює ARIMA (0, 1, 4), а кінцевий MAPE на основі прогнозів у вибірці становить 1.153.
Нарешті, ми оцінюємо точність прогнозу моделі поза вибіркою. Робочий процес Прогнозування та реконструкція часових рядів (доступно на Hub) на малюнку 8 показано, як спрогнозувати щоденні продажі в 2017 році на основі місячних даних за 2014–2016 роки (24 спостереження) і виграшної моделі ARIMA (0,1,4) за допомогою динамічного розгортання підхід. Після цього ми реконструюємо сигнал, в даному випадку відновлюємо тренд і річну сезонність до прогнозних значень (12 середньомісячних значень продажів). Ми порівнюємо фактичні та прогнозні значення та отримуємо MAPE 0.336.
Підсумки
Часові ряди, будь то дані датчиків, що показують поведінку крихітного об’єкта наносекунди за наносекундами, макроекономічні дані за 20 століття чи щось середнє, мають спеціальні методи аналітики, які застосовуються для доступу, маніпулювання та моделювання.
У цій статті ми познайомили вас із основами методів аналітики для часових рядів, які допоможуть вам розпочати роботу з даними часових рядів.
посилання
[1] Чемберс, Джон К., Сатіндер К. Муллік і Дональд Д. Сміт. Як вибрати правильну техніку прогнозування. Гарвардський університет, Вища школа ділового адміністрування, 1971 р.
[2] Хайндман, Роб Дж. і Джордж Атанасопулос. Прогнозування: принципи і практика. OTexts, 2018.
Джерело: https://www.dataversity.net/building-a-time-series-analysis-application/
- абсолют
- Додатковий
- аналіз
- аналітика
- додаток
- застосування
- AR
- стаття
- автоматичний
- Основи
- еталонний тест
- КРАЩЕ
- Напої
- тіло
- Box
- будувати
- Створюємо
- бізнес
- Очищення
- Колонка
- загальний
- компонент
- довіра
- країни
- Поточний
- дані
- день
- Попит
- розробка
- Захворювання
- Оцінки
- Event
- Здійснювати
- дослідження
- Рисунок
- в кінці кінців
- Перший
- відповідати
- Сфокусувати
- п'ятниця
- майбутнє
- GDP
- Загальне
- Джордж
- добре
- випускник
- Обробка
- Гарвард
- Гарвардський університет
- Як
- How To
- HTTPS
- Сотні
- ідентифікувати
- зображення
- Інфекції
- інформація
- IT
- липень
- великий
- вести
- УЧИТЬСЯ
- учень
- вивчення
- рівень
- Лінія
- Довго
- навчання за допомогою машини
- основний
- ринок
- Метрика
- модель
- моделювання
- понеділок
- щомісячні дані
- місяців
- рухатися
- мережу
- мереж
- Нейронний
- нейронної мережі
- нейронні мережі
- Відкриється
- порядок
- замовлень
- Інше
- Викрійки
- продуктивність
- планування
- платформа
- прогноз
- Product
- Продукти
- просування
- облік
- регресія
- Відносини
- ресурси
- результати
- продажів
- шкала
- Школа
- обраний
- сенс
- Серія
- комплект
- Доставка
- простий
- невеликий
- розумний
- Знімок
- So
- старт
- почалася
- статистика
- акції
- Фондова біржа
- представлений
- літо
- підтримка
- Жива картина
- Мета
- тест
- Основи
- Майбутнє
- час
- топ
- Навчання
- Перетворення
- Universal
- університет
- значення
- годинник
- week
- тижні
- Що таке
- Вікіпедія
- в
- Work
- робочий
- тренування
- вартість
- рік
- років
- нуль