Як визначити прогнозованість часових рядів?


10

Одне з важливих питань, з яким стикаються синоптики, - чи можна прогнозувати дану серію чи ні?

Я натрапив на статтю " Ентропія як первісний показник передбачуваності " Пітера Катта, яка використовує приблизну ентропію (ApEn) як відносну міру для визначення певного часового ряду.

У статті йдеться про:

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

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

Існує пакет називається pracma в Rтому , що дозволяє розрахувати ApEn. Для наочності я використав 3 різні часові ряди та обчислив номери ApEn.

  1. Серія 1: Знаменитий часовий ряд AirPassenger - дуже детермінований, і нам слід легко спрогнозувати.
  2. Серія 2: Часовий ряд із сонячних плям - дуже чітко визначений, але має бути менш прогнозованим, ніж серія 1.
  3. Серія 3: Випадкове число Неможливо передбачити цю серію.

Отже, якщо ми порахуємо ApEn, серія 1 повинна бути меншою, ніж серія 2, повинна бути дуже-менш меншою 3-ї серії.

Нижче представлений фрагмент R, який обчислює ApEn для всіх трьох серій.

library("pracma")
> series1 <- approx_entropy(AirPassengers)
> series1
[1] 0.5157758
> series2 <- approx_entropy(sunspot.year)
> series2
[1] 0.762243
> series3 <- approx_entropy(rnorm(1:30))
> series3
[1] 0.1529609

Це не те, чого я очікував. Випадковий ряд має меншу кількість, ніж добре визначений ряд AirPassenger. Навіть якщо я збільшую випадкове число до 100, я все одно отримаю таке, що менше чітко визначеного ряду серії 2 / Sunspot.yealry.

> series3 <- approx_entropy(rnorm(1:100))
> series3
[1] 0.747275

Нижче мої запитання:

  1. У розрахунку ApEn ( mі r) є 2 параметри ? Як їх визначити. Я використовував типові параметри в Rнаведеному вище коді.
  2. Що я роблю неправильно, це показує, що неправильно, що ApEn нижчий для випадкових чисел проти чітко визначених серій, таких як sunspot.yearly.
  3. Чи слід деасоналізувати / знешкодити ряд, а потім оцінити ApEn. Однак автор застосував ApEn безпосередньо до серії.
  4. Чи є інший спосіб визначити, чи передбачувана серія?

Як зазначено в статті, приблизна ентропія не повинна використовуватися в коротких часових рядах, N <200. Що ще важливіше, у статті використовується зразкова ентропія, а не приблизна ентропія. Пракма містить і те, і інше. Дякую

Чи враховуються пояснювальні змінні? Наприклад, якщо ви прогнозуєте випадання облікового запису фірми, це може бути пов’язане з маркетинговими витратами, а витрати є дуже прогнозованими, насправді це заплановане на місяці вперед. Як би це було враховано у запропонованому підході?
Аксакал

@Aksakal, немає пояснювальних змінних немає. Я шукав широкомасштабне одновимірне (без пояснювальної змінної) прогнозування часових рядів, де нам потрібна об'єктивна міра для оцінки прогнозованості. Крім того, у багатьох багатьох випадках одноманітне прогнозування набагато точніше, ніж моделі, побудовані з пояснювальних змінних.
синоптик


1
Я відчуваю, що це набагато вужче питання, ніж запропонований дублікат. Голосування залишають відкритим, але пропонуємо ОП розглянути більш конкретний заголовок, щоб не плутати два. Скажіть: "Як визначити передбачуваність часових рядів за допомогою наближеної ентропії ?"
Шон Пасха

Відповіді:


7

Параметри mі r, що беруть участь у обчисленні приблизної ентропії (ApEn) часових рядів, відповідно є довжиною вікна (послідовності) та допуском (значення фільтра) . Справді, з точки зору m, rа також N(число точок даних), ApEn буде визначено як «натуральний логарифм відносної поширеності повторюваних патернів довжини , mв порівнянні з такими з довжини m + 1» (Balasis, Daglis, Анастасіадіс & Eftaxias, 2011 , стор. 215):

ApEn(m,r,N)=Φm(r)Φm+1(r),

where 

Φm(r)=ΣilnCim(r)/(Nm+1)

Тому виявляється, що зміна толерантності rдозволяє контролювати (тимчасову) деталізацію визначення ентропії часових рядів. Тим не менш, використання значень за замовчуванням для обох mта rпараметрів у pracmaфункції ентропії пакету працює чудово. Єдине виправлення, яке потрібно зробити, щоб побачити правильне співвідношення значень ентропії для всіх трьох часових рядів (нижча ентропія для більш чітко визначених серій, вища ентропія для більш випадкових даних) - збільшити довжину випадкових векторів даних :

 library(pracma)
 set.seed(10)
 all.series <- list(series1 = AirPassengers,
                    series2 = sunspot.year,
                    series3 = rnorm(500)) # <== size increased
 sapply(all.series, approx_entropy)
  series1   series2   series3 
  0.5157758 0.7622430 1.4741971 

Результати , як і очікувалося , - як передбачуваність коливань зменшується від більшості визначається series1найбільш випадковим чином series 3, їх ентропія збільшується , отже: ApEn(series1) < ApEn(series2) < ApEn(series3).

Що стосується інших заходів по прогнозованості , ви можете перевірити середні абсолютні Лускаті помилки (MASE) - див цього обговорення для більш докладної інформації. Аналіз прогнозованих компонентів також представляється цікавим та новим підходом до визначення передбачуваності часових рядів. І, як очікується, для цього також є Rпакет - ForeCA .

library(ForeCA)
sapply(all.series,
       Omega, spectrum.control = list(method = "wosa"))
 series1   series2   series3 
 41.239218 25.333105  1.171738 

Ω[0,1]Ω(whitenoise)=0%Ω(sinusoid)=100%

Список літератури

Balasis, G., Daglis, IA, Anastasiadis, A., & Eftaxias, K. (2011). Виявлення змін динамічної складності в sseries часу Dst за допомогою концепцій ентропії та аналізу масштабних діапазонів. У В. Лю та М. Фуджімото (ред.), Динамічна магнітосфера, Спеціальна книга Шопронової книги IAGA, серія 3, 211. doi: 10.1007 / 978-94-007-0501-2_12. Спрингер. Отримано з http://members.noa.gr/anastasi/papers/B29.pdf

Георг М. Герг (2013): аналіз прогнозованих компонентів. JMLR, W&CP (2) 2013: 64-72. http://machinelearning.wustl.edu/mlpapers/papers/goerg13


Я також перевірив pracma::sample_entropy()функцію, а також коригує співвідношення результатів у часових рядах.
Олександр Блех

@forecaster: Ласкаво просимо.
Олександр Блех

1
Дивіться також цей документ notsoirrational.files.wordpress.com/2015/04/schulz15.pdf, який використовує експериментальні дані для обгрунтування своїх заходів передбачуваності. Він також стосується деякої роботи з роботою ForeCA, згаданою у цій публікації
Георг М. Ґерг,

@ GeorgM.Goerg: Дякую за пропозиції, посилання та редагування.
Олександр Блех

@forecaster: Моє задоволення.
Олександр Блех

0

Кожен часовий ряд складається з 3 компонентів: тенденція, сезонність та випадковість. Якщо дані виявляють сильну тенденцію і є або дуже сезонними, прогнозування буде відносно легким. Якщо дані здебільшого випадкові, то за визначенням ви нічого не можете передбачити.

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