Один из важных вопросов, с которыми сталкиваются синоптики, заключается в том, можно ли прогнозировать данную серию или нет?
Я наткнулся на статью Питера Кэтта « Энтропия как априорный показатель прогнозируемости », в которой в качестве относительной меры для определения заданного временного ряда используется приблизительная энтропия (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
Ниже приведены мои вопросы:
- Есть 2 параметра в расчете ApEn (
m
иr
)? Как их определить. Я использовал значения по умолчанию вR
коде выше. - То, что я делаю неправильно, показывает, что неправильно, что ApEn ниже для случайных чисел по сравнению с четко определенным рядом, таким как sunspot.yearly.
- Должен ли я десезонализировать / развернуть серию и затем оценить ApEn. Автор, однако, применил ApEn непосредственно к серии.
- Есть ли другой способ определить, является ли серия прогнозируемой?