Одне з важливих питань, з яким стикаються синоптики, - чи можна прогнозувати дану серію чи ні?
Я натрапив на статтю " Ентропія як первісний показник передбачуваності " Пітера Катта, яка використовує приблизну ентропію (ApEn) як відносну міру для визначення певного часового ряду.
У статті йдеться про:
"Менші значення ApEn вказують на більший шанс, що за набором даних будуть слідувати подібні дані (регулярність). І навпаки, велике значення ApEn вказує на менший шанс повторення подібних даних (нерегулярність). Отже, більші значення передають більше розладу , випадковість і складність системи ".
Далі йдуть математичні формули для обчислення ApEn. Це цікавий підхід, оскільки він забезпечує числове значення, яке може бути використане для оцінки прогнозованості у відносному значенні. Я не знаю, що означає приблизна ентропія, я читаю докладніше про це.
Існує пакет називається pracma в R
тому , що дозволяє розрахувати ApEn. Для наочності я використав 3 різні часові ряди та обчислив номери ApEn.
- Серія 1: Знаменитий часовий ряд AirPassenger - дуже детермінований, і нам слід легко спрогнозувати.
- Серія 2: Часовий ряд із сонячних плям - дуже чітко визначений, але має бути менш прогнозованим, ніж серія 1.
- Серія 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
Нижче мої запитання:
- У розрахунку ApEn (
m
іr
) є 2 параметри ? Як їх визначити. Я використовував типові параметри вR
наведеному вище коді. - Що я роблю неправильно, це показує, що неправильно, що ApEn нижчий для випадкових чисел проти чітко визначених серій, таких як sunspot.yearly.
- Чи слід деасоналізувати / знешкодити ряд, а потім оцінити ApEn. Однак автор застосував ApEn безпосередньо до серії.
- Чи є інший спосіб визначити, чи передбачувана серія?