一阶指数平滑c语言,时间序列数据之一、二、三阶指数平滑法

原标题:时间序列数据之一、二、三阶指数平滑法

基本概念

时间序列数据:

是指一个数据序列,在时域上存在相互依赖的关系

前提假设:

时间序列分析一般假设我们获得的数据在时域上具有一定的相互依赖关系,例如股票价格在t时刻很高,那么在t+1时刻价格也会比较高(跌停才10%);如果股票价格在一段时间内获得稳定的上升,那么在接下来的一段时间内延续上升趋势的概率也会比较大。

目标:

(1)发现这种隐含的依赖关系,并增加我们对此类时间序列的理解;

(2)对未观测到的或者尚未发生的时间序列进行预测。

我们认为时间序列由两部分组成:有规律的时间序列(即有依赖关系)+噪声(无规律,无依赖)。所以,,接下来要做的就是过滤噪声—接下来利用指数平滑来对数据进行处理

不管是几阶指数平滑,都需要设置初值,设置初值的方法:

假如数据大于20项,那么初值就可以认定为第一个数据;假如数据小于20项,就取待处理数据的前三项的真实平均值作为初始值

一阶指数平滑

一次指数平滑一般应用于直线型数据,且一次指数平滑具有滞后性,可以说明有明显的时间性、季节性。

一次指数平滑需要滞后一期,给定平滑系数alpha,那么一次指数平滑的计算公式为:

bcb61f7526fa448fc0290640ca14983e.png

预测第t+1期的数值则是上一期的实际值与预测值的加权平均,预测公式为:

bd88831cd3f0b9420cf7b71b9262babc.png

代码实现

36942c2074a7ba30e8a11736f3be6de9.png

二阶指数平滑

二次指数平滑一般也应用于直线型,但是效果会比一次指数平滑好很多,也就相当于加强版的一次指数平滑。

给定平滑系数alpha,那么二次指数平滑的计算公式为:

0119bc9d96a5008eee10481604cac433.png

预测未来t期的值X{t+T}的计算公式为:

其中:

011601a42e268f79a2ac5bd0e452f262.png

平滑之前的数据如下图所示:

dfb1477893390679b817a766591a2f5e.png

二阶指数平滑之后的效果如下图所示:

cc99ae08814124733aec058e42e66e8e.png

三阶指数平滑(holt-winters)

适用:

三阶指数平滑法针对有趋势也有季节性的序列。当一个序列在每个固定的时间间隔中都出现某种重复的模式,就称之具有季节性特征,而这样的一个时间间隔称为一个季节(理解:比如说在一个周内,销量呈现出重复的模式)。一个季节的长度k为它所包含的序列点个数。

二次指数平滑考虑了序列的baseline和趋势,三次就是在此基础上增加了一个季节分量。类似于趋势分量,对季节分量也要做指数平滑。比如预测下一个季节第3个点的季节分量时,需要指数平滑地考虑当前季节第3个点的季节分量、上个季节第3个点的季节分量。

5f4ab6274d68f71cece30a3767e717e0.png

其中:

P_i 是指周期性部分,公式如下:

k表示这个周期的长度

代码实现如下

a136140933a93eed8c251382e10dbd31.png

运行代码

e21dfc71ccbc9f8bfe5c9206818284e1.png

画图代码

ae86a49c6b5133d7e2df5ff30cbda853.png

平滑之前的数据如下图所示:

b11b932f9ecfd32dba05ae0dfd8c848f.png

平滑之后的数据如下图所示:

责任编辑:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值