预报员面临的重要问题之一是给定的序列是否 可以预报?
我偶然发现了彼得·卡特(Peter Catt)题为“ 熵作为可预测性的先验指标 ”的文章,该文章使用近似熵(ApEn) 作为确定给定时间序列的相对度量是可预测的。
文章说,
“较小的ApEn值表示一组数据后面将跟随相似数据的可能性较大(规则性)。相反,较大的ApEn值表示重复相似数据的可能性较小(规则性)。因此,较大的ApEn值会带来更多混乱,随机性和系统复杂性。”
然后是用于计算ApEn的数学公式。这是一个有趣的方法,因为它提供了一个可用于相对意义上评估可预测性的数值。我不知道“近似熵”的含义,我正在阅读有关它的更多内容。
有一个叫包pracma中R
,可以让你计算近似熵。为了说明目的,我使用了3个不同的时间序列并计算了ApEn数。
- 系列1:著名的AirPassenger时间序列-具有高度确定性,我们应该能够轻松进行预测。
- 系列2:黑子时间序列-定义明确,但比系列1更难预测。
- 系列3:随机数无法预测此系列。
因此,如果我们计算ApEn,则系列1应该小于系列2,而系列3应该非常非常少。
以下是为所有三个系列计算ApEn的R代码段。
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直接应用于该系列。
- 还有其他方法可以确定该系列是否可预测?