时间序列-指数平滑

时间序列的主要成分一般认为有:平稳,趋势,季节等和几者的累加、累积


一般的基础分析方法,首先就是做平滑,那么为什么要做平滑呢?说了也是白说,平滑不就是平均滑动吗,就是为了通过移动平均值来消除或者消弱序列中不规则变动,试图发现其中的规律。


这里先来说说指数平滑:

指数平滑法有几种不同形式:

一次指数平滑法针对没有趋势和季节性的序列,

二次指数平滑法针对有趋势但 没有季节性的序列。

三次指数平滑法也叫“Holt-Winters法”

关于其具体的公式,这里就不贴了,网上有很多很多。顺便说下,这里的一次,二次和多项式的一次二次可不同,它们考虑的因素不同而已。

通过公式可以发现,这几种方法都添加了特别的影响因子(暂时这么叫),αβγ之类的,很烦人的,哈哈,就是添加了一些额外的东东,在几个值上面做取舍,做加权;公式的内容和意义还是比较容易看出来的。不得不提到的是后面很多算法之类的东西,很喜欢加这个影响因子,惩罚因子之类的,这世界本来没有什么因子,说的人多了,就慢慢的有了(盗版别人的话,你懂的)。

在实际中,怎么选择这几个参数值呢?一般的办法就是反复试验。先试试0.2和0.4之间的几个值(非常粗略地),然后看看结果是否符合要求。如果整个过程能够程序化,最好是使用循环,记录每次误差,选择最小的误差作为最佳的参数值。的确,很多拟合模型就是这么做的,叫做自适应模型拟合,通过最小化均方差。


R 里面的实现:

require(graphics)

## Seasonal Holt-Winters   co2是R自带的数据框 
(m <- HoltWinters(co2))     #m是得到的拟合模型
plot(m)
plot(fitted(m))       

p <- predict(m, 50, prediction.interval = TRUE)  ###使用结果进行预测
plot(m,p)

(m <- HoltWinters(AirPassengers, seasonal = "mult"))
plot(m)

## Non-Seasonal Holt-Winters 即我们所说的二次指数平滑
x <- uspop + rnorm(uspop, sd = 5)
m <- HoltWinters(x, gamma = FALSE)
plot(m)

## Exponential Smoothing  即我们所说的一次指数平滑
m2 <- HoltWinters(x, gamma = FALSE, beta = FALSE)
lines(fitted(m2)[,1], col = 3)

可以仔细研究下得到的结果和参数意义。












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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值