Який метод можна використовувати для виявлення сезонності даних?


56

Я хочу виявити сезонність у даних, які я отримую. Є деякі методи, які я знайшов, як графік сезонних підгалузей та графік автокореляції, але річ у тому, що я не розумію, як читати графік, хтось може допомогти? Інша справа, чи існують інші методи виявлення сезонності з або без кінцевого результату у графіку?


1
ви можете включити фактичний графік, у якого виникають проблеми з розумінням.
Карл

Більш переважно вихідні дані, які можуть бути використані для генерування "клопітного" ACF.
IrishStat


1
дивіться: journals.ametsoc.org/doi/abs/10.1175/JCLI-D-10-05012.1 Qian, C., Z Wu, C Fu та D Wang, 2011: Про зміну Ель Ніньо: Погляд від щорічно різного року цикл, міжрічна мінливість і середній стан. J. Climate, 24 (24), 6486–6500

Відповіді:


70

Дійсно хороший спосіб знайти періодичність у будь-якій регулярній серії даних - перевірити її спектр потужності після усунення будь-якої загальної тенденції . (Це добре піддається автоматизованому скринінгу, коли загальна потужність нормалізується до стандартного значення, такого як одиниця.) Попереднє усунення тренда (і необов'язкове розмежування для видалення послідовного кореляційного зв’язку) є важливим для уникнення плутанини періодів з іншою поведінкою.

Спектр потужності - це дискретні перетворення Фур'є функції автоковаріації відповідно згладженої версії оригінальної серії. Якщо ви вважаєте часовий ряд як вибірку фізичної форми хвилі, ви можете оцінити, яка частина сумарної сили хвилі переноситься в межах кожної частоти. Спектр потужності (або періодограма ) будує потужність проти частоти. Циклічні (тобто повторювані або сезонні візерунки) виявляться у вигляді великих шипів, розташованих на їх частотах.

Як приклад, розглянемо цей (імітований) часовий ряд залишків із щоденного вимірювання, проведеного протягом одного року (365 значень).

серія залишків

0

Ось ще один сюжет із тих же даних, намальований, щоб допомогти нам побачити можливі періодичні закономірності.

серія залишків, заповнена до 0

Якщо ви виглядаєте по- справжньому важко, ви, можливо, зможете помітити галасливий, але повторюваний малюнок, що виникає від 11 до 12 разів. Тривалі послідовності вище нульових та нижчих нульових значень принаймні говорять про деяку позитивну автокореляцію, показуючи, що цей ряд не є абсолютно випадковим.

Ось періодограма, показана для частот до 91 (одна чверть загальної довжини серії). Він був побудований за допомогою вікна Welch і нормалізований на одиницю площі (для всієї періодограми, а не лише для частини, показаної тут).

періодограма

Потужність виглядає як "білий шум" (невеликі випадкові коливання) плюс два помітні шипи. Їх важко пропустити, чи не так? Більший виникає в 12 і менший - у 52. Цей спосіб виявив щомісячний та тижневий цикл у цих даних. Це дійсно все, що там є. Щоб автоматизувати виявлення циклів ("сезонність"), просто скануйте періодограму (яка є переліком значень) щодо відносно великих локальних максимумів.

Настав час розкрити, як ці дані були створені.

Дані розкладаються на сигнал плюс шум

Значення генеруються із суми двох синусоїд: одна з частотою 12 (амплітуди квадрата 3/4) та інша з частотою 52 (амплітуди квадрата 1/4). Це те, що виявлено шипи в періодограмі. Їх сума показана як товста чорна крива. Потім додався звичайний шум варіації 2, як показано світло-сірими смугами, що проходять від чорної кривої до червоних крапок. Цей шум запроваджував низькорівневі ворушіння внизу періодограми, які в іншому випадку були б просто плоскими 0. Повністю дві третини загальної зміни значень неперіодичні та випадкові, що дуже шумно: саме тому так важко розібратися в періодичності, просто переглянувши крапки. Тим не менш (частково через те, що є стільки даних) знайти частоти за допомогою пародограми легко, і результат зрозумілий.

Інструкції та корисні поради щодо обчислення періодограми з’являються на веб-сайті « Числові рецепти» : шукайте розділ «Оцінка спектру потужності за допомогою FFT». Rмає код для оцінки періодограми . Ці ілюстрації були створені в Mathematica 8; періодограма була обчислена за її функцією "Фур'є".


2
Припущення "після усунення будь-якої загальної тенденції" - це ахіллесова п'ята, оскільки може бути багато тенденцій часу, багато зрушень рівня, всі вони були виключені у вашому прикладі. Ідея про те, що вхідні серії мають детермінований характер, летить перед можливим наявність сезонної та регулярної структури ARIMA. Неопрацьовані незвичайні одноразові значення будуть спотворювати будь-яку схему ідентифікації, засновану на періодограмі, внаслідок зменшення вниз до оцінок періодограми, що дає несуттєве значення. Якщо щотижневі та / або щомісячні ефекти змінилися в якийсь момент минулого, процедура, заснована на періодограмі, не зможе
IrishStat

@Irish Я думаю, що ваш коментар може дещо перебільшити. Найелементарніше шукати та лікувати "Незвичайні одноразові цінності" (також відомі як "outliers"), тому це лише зазначає, що слід підкреслити, що деякі оцінювачі часових рядів можуть бути чутливими до людей, що втратили огляд. "Детермінований за своєю суттю" неправильно представляє основні ідеї: ніхто не припускає, що існує детермінізм (про що свідчить величезна кількість шуму при моделюванні). Симуляція включає в себе певний періодичний сигнал як модель - завжди приблизну в реальності - лише для ілюстрації зв'язку між періодограмою та сезонністю. (Продовження ...)
whuber

2
Так, зміни сезонності можуть затьмарити періодограму (і ACF тощо), особливо зміни частоти (малоймовірно) або фази (можливо). Посилання в моєму дописі дають рішення для вирішення цього питання: вони рекомендують використовувати рухоме вікно для оцінки періодограми. Це мистецтво, і, безумовно, є підводні камені, так що аналіз багаторічних часових рядів виграє від експертного лікування, як ви виступаєте. Але питання задає, чи існують "інші методи виявлення сезонності", і, безперечно, періодограма є статистично потужним, обчислювально ефективним, легко інтерпретованим варіантом.
whuber

У моєму світі використання синусів / косинусів є «детермінованими ефектами», як і показники місяця року. Встановлення будь-якої заздалегідь заданої моделі обмежує вбудовані значення до визначеного користувачем шаблону, часто субстандартного. Дані слід "слухати" як допомогу аналітику / вдосконаленому комп'ютерному програмному забезпеченню ефективно розрізняти між фіксованими та стохастичними входами nb Я називаю структури лагів ARIMA як стохастичні або адаптивні "драйвери", оскільки відповідні значення коригують / адаптуються до змін в історії серії. На мій погляд, використання періодограми "перепродає" просте статистичне моделювання
IrishStat

2
@whuber Повторення тієї ж речі може бути не корисним. Однак може бути непогано зафіксувати абзац під періодограмою, щоб сказати, що шипи розташовуються з "частотою" 12 і 52 рази на рік, а не "періодом". Виправити сюжет, щоб сказати "частота", а не "період", може бути добре, якщо ви вважаєте, що це не дуже дратує.
Celelibi

19

Ось приклад використання щомісячних даних щодо заявок на випадок безробіття з міста в Нью-Джерсі (з Stata, лише тому, що я саме проаналізував ці дані спочатку). Сезонність ACF

Висоти ліній вказують на кореляцію між змінною та самим sth відставанням; сіра область дає вам зрозуміти, чи є ця кореляція важливою (цей діапазон є лише орієнтиром і не є найнадійнішим способом перевірити значущість). Якщо ця кореляція висока, є дані про послідовну кореляцію. Зверніть увагу на горби, які виникають у періоди 12, 24 та 36. Оскільки це дані щомісяця, це говорить про те, що кореляція посилюється, якщо дивитись на періоди, що передували рівно 1, 2 або 3 роки. Це свідчить про щомісячну сезонність.

Ви можете перевірити ці відносини статистично, регресуючи змінну на фіктивних змінних, що вказує на компонент сезонності --- тут, місячні манекени. Ви можете перевірити спільне значення цих манекенів для перевірки на сезонність.

Ця процедура не зовсім правильна, оскільки тест вимагає, щоб терміни помилок не були послідовно співвіднесені. Отже, перед тестуванням цих манекенів на сезонність нам потрібно видалити решту послідовних кореляцій (як правило, шляхом включення лагів змінної). Можуть бути імпульси, перерви та всі інші часові ряди, які потрібно виправити, щоб отримати відповідні результати тесту. Ви не запитували про них, тому я не буду вникати в деталі (плюс, на цю тему є багато питань з резюме). (Тільки для того, щоб підсилити вашу цікавість, для цього серіалу потрібні місячні манекени, одиночне відставання самого себе та зміна компонента для позбавлення від серійної кореляції.)


4

Сезонність може і часто змінюється з часом, тому зведені заходи можуть бути досить неадекватними для виявлення структури. Потрібно перевірити на швидкоплинність коефіцієнтів ARIMA і часто змінювати "сезонні муляжі". Наприклад, у 10-річному горизонті може не виникнути ефекту червня протягом перших k років, але останні 10-k років є свідченням ефекту в червні. Простий складений ефект у червні може бути незначним, оскільки ефект не був постійним у часі. Аналогічним чином може змінитися і сезонний компонент ARIMA. Слід обережно включати зміни на місцевому рівні та / або місцеві тенденції часу, забезпечуючи, щоб відхилення помилок залишалися постійними протягом часу. Не слід оцінювати перетворення на зразок GLS / найменш зважених квадратів або силових перетворень, таких як колоди / квадратні корені тощо. на оригінальних даних, але на помилках попередньої моделі. Припущення Гаусса не мають нічого спільного з спостережуваними даними, але все стосуються помилок моделі. Це пов'язано з підґрунтям статистичних тестів, які використовують відношення не центральної змінної chi-квадрата до центральної змінної chi-квадрата.

Якщо ви хочете опублікувати приклад серіалу зі свого світу, я би радий надати вам та перелік ретельного аналізу, що призведе до виявлення сезонної структури.


1

Відповідь Чарлі хороша, і саме там я б почав. Якщо ви не хочете використовувати графіки ACF, ви можете створити фіктивні змінні k-1 для наявних k періодів часу. Тоді ви можете побачити, чи манекенні змінні є значущими в регресії з фіктивними змінними (і, ймовірно, в трендовому терміні).

Якщо ваші дані щоквартально: манекен Q2 - це 1, якщо це друга чверть, інакше 0 манекен Q3 - 1, якщо це третя чверть, інакше 0 манекен Q4 - 1, якщо це четвертий квартал, інакше 0 Примітка чверть 1 - базовий корпус (всі 3 манекени нульові)

Ви також можете перевірити "розклад часових рядів" у Minitab - часто його називають "класичним розкладанням". Зрештою, ви можете скористатися чимось сучаснішим, але це просто місце для початку.


0

Я хотів би прийняти пропозицію допомоги від користувача IrishStat або когось іншого в моїй серії реального світу. Я намагаюся створити сезонний індекс на основі останніх 5 років цін на ф'ючерси на нафту. Мені вдалося створити прості середні сезонні, які можна переглянути тут .

Однак я хотів би відтворити сезонний графік, що прокручується щорічно (я здогадуюсь, що прокручування означає, що початок і кінець року є однаковим значенням) і знаходиться в шкалі від нуля до 100, як показано на зображенні нижче: введіть тут опис зображення

Є 15 років щоденних даних про рівень цін у електронній таблиці, яку можна завантажити. Приклад чи будь-який натяк на те, як досягти вищезазначеного, були б вдячні.


-1

Я "я трохи новий для R, але моє розуміння функції ACF полягає в тому, що якщо вертикальна лінія йде вище верхньої пунктирної лінії або нижче нижньої пунктирної лінії, виникає деяка авторегресія (включаючи сезонність). Спробуйте створити вектор синуса


Монтаж синусів / косинусів тощо може бути корисним для деяких фізичних / електричних часових рядів, але ви повинні бути в курсі MSB, ухилу специфікації моделі.
IrishStat

1
Авторегресія не передбачає сезонності.
Єнс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.