预测者面临的重要问题之一是给定序列是否 可以预测?
我偶然发现了 Peter Catt的一篇题为“熵作为可预测性的先验指标”的文章,该文章使用近似熵 (ApEn) 作为确定给定时间序列是否可预测的相对度量。
文章说,
“较小的 ApEn 值表明一组数据后面跟着相似数据(规则性)的可能性更大。相反,较大的 ApEn 值表明重复相似数据的可能性较低(不规则性)。因此,较大的值传达更多的无序,随机性和系统复杂性。”
然后是计算 ApEn 的数学公式。这是一种有趣的方法,因为它提供了一个数值,可用于评估相对意义上的可预测性。我不知道近似熵是什么意思,我正在阅读更多关于它的信息。
有一个名为pracma的包R
,可让您计算 ApEn。出于说明目的,我使用了 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
以下是我的问题:
m
计算 ApEn (和)时有 2 个参数r
?如何确定它们。R
在上面的代码中使用了默认值。- 我做错了什么,错误地表明 ApEn 对于随机数与定义明确的系列(如 sunspot.yearly)相比较低。
- 我是否应该对系列进行去季节化/去趋势化,然后估计 ApEn。然而,作者已将 ApEn 直接应用于该系列。
- 有没有其他方法可以确定该系列是否可预测?