开始使用免费开始使用

多重季节性的谐波回归

当时间序列存在多重季节模式时,谐波回归也非常有用。比如,taylor 数据包含 2000 年间几个月内英格兰和威尔士的半小时用电量。其季节周期为 48(每日季节性)以及 7 x 48 = 336(每周季节性)。数据量不够,无法考虑年度季节性。

对于这样一条很长的时间序列,auto.arima() 拟合会花很长时间。因此,您将改用 tslm() 函数,基于 Fourier 项拟合一个标准回归模型。它与 lm() 十分类似,但专为时间序列设计。面对多重季节性时,您需要为每个季节周期指定阶数 $K$。

# formula 参数是对待拟合模型的
# 符号化描述

> args(tslm)
function (formula, ...)

tslm() 是新引入的函数,您基本可以直接跟随预写代码。taylor 数据已加载到您的工作区。

本练习是课程的一部分

R 中的预测

查看课程

练习说明

  • taylor 拟合一个名为 fit 的谐波回归,对每种季节性均使用阶数 10。
  • 将预测 20 个工作日的结果保存为 fc。请记住数据是半小时级,以便设定正确的 h 值。
  • 绘制预测的时间图。
  • 检查已拟合模型的残差。正如您将看到的,auto.arima() 的表现可能会更好。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Fit a harmonic regression using order 10 for each type of seasonality
fit <- tslm(taylor ~ fourier(___, K = c(10, 10)))

# Forecast 20 working days ahead
fc <- forecast(___, newdata = data.frame(fourier(___, K = ___, h = ___)))

# Plot the forecasts
___

# Check the residuals of fit
___
编辑并运行代码