R | forecast-动态谐波回归原理

——整理的动态谐波回归的一些资料,可能有片面的,仅供参考

1. R中的动态回归模型(Dynamic Regression Models)

对一个时间序列{y(n)},设{x(n)}是{y(n)}的影响因素组成的时间序列,其中x(n)可以是一个向量。

动态回归模型的意思就是:先用一个“机器学习模型”,用{x(n)}当做输入,{y(n)}当做目标,训练出一个机器学习模型(R中基本都是线性函数,我看有的资料里称这种为线性动态回归)。训练完之后对于“机器学习模型”输出和{y(n)}的残差序列,再用一个“时间序列模型”去拟合这个残差序列。于是得到一个综合的模型。

动态回归模型的预测值 = 一个“机器学习模型”的预测值 + 一个“时间序列模型”的预测值

2. 动态谐波回归(Dynamic Harmonic Regression)

对于上述的动态回归模型,特别地,当{x(n)}是序列{y(n)}的傅里叶展开式中的部分傅里叶项的时候,称为动态谐波回归。

在R-forecast中,用函数{x(n)}=fourier({y(n)},K),提取{y(n)}的傅里叶展开式的前K对sin和cos项作为特征{x(n)}。关于fourier()函数更详细的工作原理,请参考R-fourier()计算方法

3. 软件实现

3.1 动态回归

R中forecast包中很多预测算法可以充当上述的“时间序列模型”,例如auto.arima,nnetar等。预测函数参数中带有xreg参数的就是可以进行动态回归的函数。例如auto.arima(y,xreg=x),nnetar(y,xreg=x)等。

R中forecast包中都是用线性回归来当做上述的“机器学习模型”。

需要说明的是,在预测未来的数据的时候,需要通过xreg参数提供未来的数据的影响因素数据。

3.2 动态谐波回归

特别地,当3.1中 xreg=fourier(y,K),其中K是给定的一个常数,这时就是动态谐波回归了。

动态谐波回归的xreg每一列都是周期性的,所以对于未来的xreg,可以很方便的计算出来,未来的xreg用fourier(y,K,h=24)来预测未来24个点的xreg值。

4.为啥叫“谐波”?

简单来说,我理解的谐波就是:周期函数傅里叶分解之后,频率是原周期函数频率整数倍的那些分量。百度百科-谐波

5.参考资料

相关书籍和章节

auto.arima源码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值