Значення "Частота" для даних інтервалів секунд / хвилин у R


28

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

  1. розділяється на хвилини і поширюється на 180 днів (1440 хвилин / день)
  2. розділена на секунди і поширюється на 180 днів (86 400 секунд / день).

Якщо правильно згадати визначення, "частота" в ц в R - це кількість спостережень за "сезон".

Частина питання 1:

Який "сезон" у моєму випадку?

Якщо сезон "денний", то "частота" хвилин = 1440 і 86 400 на секунди?

Частина питання 2:

Чи може "частота" також залежати від того, що я намагаюся досягти / прогнозувати? наприклад, у моєму випадку я хотів би мати дуже короткостроковий прогноз. Кожен крок попереду на 10 хвилин щоразу. Чи можна було б тоді розглядати сезон як годину замість дня? У такому випадку частота = 60 хвилин, частота = 3600 секунд?

Я спробував, наприклад, використовувати частоту = 60 для хвилинних даних і отримав кращі результати порівняно з частотою = 1440 (використовується fourierдив. Посилання Hyndman нижче) http://robjhyndman.com/hyndsight/forecasting-weekly-data/

(Порівняння проводилося за допомогою MAPE для вимірювання точності прогнозу)

У випадку, якщо результати повністю довільні, і частоту змінити неможливо. Якою б насправді була інтерпретація використання freq = 60 у моїх даних?

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

Відповіді:


38

"Частота" - це кількість спостережень за "цикл" (зазвичай рік, але іноді тиждень, день, годину тощо). Це протилежне визначенню частоти у фізиці або в аналізі Фур’є, де "період" - це тривалість циклу, а "частота" - обернена кількість періоду. При використанні ts()функції в R слід використовувати наступні варіанти.

Data      frequency
Annual     1
Quarterly  4
Monthly   12
Weekly    52

Власне, не 52 тижні на рік, але в середньому 365,25 / 7 = 52,18. Але для більшості функцій, які використовують tsоб'єкти, потрібна ціла частота.

Коли частота спостережень менша за тиждень, то зазвичай існує більше ніж один спосіб обробки частоти. Наприклад, дані, що спостерігаються щохвилини, можуть мати погодинну сезонність (частота = 60), щоденну сезонність (частота = 24x60 = 1440), сезонність за тиждень (частота = 24x60x7 = 10080) та річну сезонність (частота = 24x60x365.25 = 525960). Якщо ви хочете використовувати tsоб’єкт, то вам потрібно вирішити, який із них є найважливішим.

Альтернативою є використання mstsоб'єкта (визначеного в forecastпакеті), який обробляє декілька часових рядів сезонності. Потім ви можете вказати всі частоти, які можуть бути релевантними. Він також досить гнучкий для обробки не цілих частот.

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

У багатьох сезонах ви можете використовувати модель TBATS або терміни Фур'є в регресії або моделі ARIMA. fourierФункція з прогнозного пакета буде обробляти mstsоб'єкти.


Варіант цієї відповіді був розміщений у моєму блозі: robjhyndman.com/hyndsight/seasonal-periods
Роб Хайндман

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