R中秒/分钟间隔数据的“频率”值

机器算法验证 r 时间序列 有马 多重季节性 马佩
2022-01-23 19:34:11

我正在使用 R(3.1.1) 和 ARIMA 模型进行预测。如果我使用时间序列数据,我想知道函数中分配的“频率”参数应该是什么:ts()

  1. 分钟为单位,分布在 180 天内(1440 分钟/天)
  2. 为单位,分布在 180 天(86,400 秒/天)内。

如果我记得正确的定义,R中ts中的“频率”是每个“季节”的观察次数。

问题第 1 部分:

就我而言,什么是“季节”?

如果季节是“天”,那么分钟的“频率”= 1440 和秒的 86,400?

问题第 2 部分:

“频率”是否也取决于我想要实现/预测的目标? 例如,就我而言,我想要一个非常短期的预测。每次提前10分钟。 那么是否可以将季节视为一个小时而不是一天? 在那种情况下,频率 = 60 分钟,频率 = 3600 秒?

例如,我尝试将频率 = 60 用于分钟数据,并且与频率 = 1440 相比获得了更好的结果(fourierHyndman 使用见下面的链接) http://robjhyndman.com/hyndsight/forecasting-weekly-data/

(比较是使用 MAPE 来衡量预测准确性)

如果结果是完全任意的,并且频率不能改变。在我的数据上使用 freq = 60 的实际解释是什么?

我还认为值得一提的是,我的数据包含每小时和每两小时的季节性(通过观察原始数据和自相关函数)

1个回答

“频率”是每个“周期”(通常是一年,但有时是一周、一天、一小时等)的观察次数。这与物理学或傅里叶分析中频率的定义相反,其中“周期”是周期的长度,“频率”是周期的倒数。在 R 中使用该ts()函数时,应使用以下选项。

Data      frequency
Annual     1
Quarterly  4
Monthly   12
Weekly    52

实际上,一年没有 52 周,而是平均 365.25/7 = 52.18。但是大多数使用ts对象的函数都需要整数频率。

一旦观察频率小于一周,那么通常有不止一种处理频率的方法。例如,每分钟观察到的数据可能具有每小时季节性(频率=60)、每日季节性(频率=24x60=1440)、每周季节性(频率=24x60x7=10080)和年度季节性(频率=24x60x365.25= 525960)。如果你想使用一个ts对象,那么你需要决定哪些是最重要的。

另一种方法是使用处理多个季节性时间序列的msts对象(在包中定义)。forecast然后您可以指定所有可能相关的频率。它也足够灵活,可以处理非整数频率。

您不一定要包括所有这些频率——只是那些可能出现在数据中的频率。由于您只有 180 天的数据,您可能可以忽略年度季节性。如果数据是对自然现象(例如温度)的测量,您也可以忽略每周的季节性。

对于多个季节性,您可以在回归或 ARIMA 模型中使用 TBATS 模型或傅里叶项。预测包中的fourier函数将处理msts对象。