Один из важных вопросов, с которыми сталкиваются синоптики, заключается в том, можно ли прогнозировать данную серию или нет?
Я наткнулся на статью Питера Кэтта « Энтропия как априорный показатель прогнозируемости », в которой в качестве относительной меры для определения заданного временного ряда используется приблизительная энтропия (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 непосредственно к серии.
- Есть ли другой способ определить, является ли серия прогнозируемой?
источник
Ответы:
Параметрами
m
иr
, участвующими в вычислении приблизительной энтропии (ApEn) временных рядов, являются длина окна (последовательности) и допуск (значение фильтра) соответственно. В самом деле, с точки зренияm
,r
а такжеN
(число точек данных), ApEn будет определен как «натуральный логарифм относительной распространенности повторяющихся паттернов длины ,m
по сравнению с таковыми из длиныm + 1
» (Balasis, Daglis, Анастасиадис & Eftaxias, 2011 , стр. 215):Следовательно, представляется, что изменение допуска
r
позволяет контролировать (временную) гранулярность определения энтропии временных рядов. Тем не менее, использование значений по умолчанию для обоихm
иr
параметров вpracma
вызовах функции энтропии пакета работает нормально. Единственное исправление, которое необходимо сделать, чтобы увидеть правильное соотношение значений энтропии для всех трех временных рядов (более низкая энтропия для более четко определенных рядов, более высокая энтропия для более случайных данных), - это увеличить длину вектора случайных данных :Результаты , как и ожидалось , - как предсказуемость колебаний уменьшается от большинства определяется
series1
наиболее случайным образомseries 3
, их энтропия увеличивается , следовательно:ApEn(series1) < ApEn(series2) < ApEn(series3)
.Что касается других мер по прогнозируемости , вы можете проверить средние абсолютные Чешуйчатые ошибки (MASE) - см этого обсуждения для более подробной информации. Анализ прогнозируемых компонентов также представляется интересным и новым подходом к определению прогнозируемости временных рядов. И, как ожидается, для этого есть
R
пакет - ForeCA .Ссылки
Balasis, G., Daglis, IA, Anastasiadis, A. & Eftaxias, K. (2011). Обнаружение динамических изменений сложности в Dst time sSeries с использованием концепций энтропии и анализа измененного диапазона. В W. Liu и M. Fujimoto (Eds.), «Динамическая магнитосфера», IAGA Special Sopron Book, Series 3, 211. doi: 10.1007 / 978-94-007-0501-2_12. Springer. Получено с 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()
функцию, и в этом сценарии также корректируется отношение результатов по временным рядам.Каждый временной ряд состоит из 3 компонентов: тренд, сезонность и случайность. Если данные демонстрируют сильную тенденцию и / или являются очень сезонными, то прогноз будет относительно легким. Если данные в основном случайные, то по определению вы ничего не можете предсказать.
источник