有增长或者降低趋势并且存在季节性波动的时间序列的预测算法即Holt-Winters,这种序列可以被分解为水平趋势部分、季节波动部分,因此这两个因素应该在算法中有对应的参数来控制。

Holt-Winters算法中提供了alpha、beta和gamma 来分别对应当前点的水平、趋势部分和季节部分,参数的去执法范围都是0-1之间,并且参数接近0时,近期的观测值的影响权重就越小。我们以澳大利亚昆士兰州海滨纪念商品的月度销售日子为分析对象,绘制出该时间序列,捞个整体印象:

[plain] view plaincopy
  1. souvenir <- scan("http://robjhyndman.com/tsdldata/data/fancy.dat")
  2. souvenirtimeseries <- ts(souvenir, frequency=12, start=c(1987,1))
  3. logsouvenirtimeseries <- log(souvenirtimeseries)
  4. plot.ts(logsouvenirtimeseries)

我们采用R中提供的HoltWinters算法进行预测,实现和结果如下:

[plain] view plaincopy
  1. souvenirtimeseriesforecasts <- HoltWinters(logsouvenirtimeseries)

Alpha=0.4,意味着当期预测基于平衡了最近和较远期的观测值。Beta 为0表明趋势部分的斜率在整个时间序列上市不变的,且等于初始值,这个也符合我们的直观感受,水平改变非常多,但是趋势部分斜率是基本不变的,于此相反gamma=0.96表明当期季节部分预测仅仅基于最近的观测值。

我们同时画出预测值和观测值来看下预测的效果如何:

[plain] view plaincopy
  1. plot(souvenirtimeseriesforecasts)

可见Holt-Winters算法非常成功的预测了季节峰值,为了预测未来期数的值,我们同样采用forecast函数包,以预测未来48个月销售为例:

[plain] view plaincopy
  1. library("forecast")
  2. souvenirtimeseriesforecasts2 <- forecast.HoltWinters(souvenirtimeseriesforecasts, h=48)
  3. plot.forecast(souvenirtimeseriesforecasts2)

图中蓝色线条显示的为预测值,深灰色部分为80%的置信区间,浅灰色为95的置信区间。

接下来老套路采用Ljung-Box 和画出直方图来检查预测误差的随机性,就不重复贴代码了,有忘记的童鞋请转前两篇,我这里就直接贴结果图了:

R语言 Holt-Winters法相关推荐

  1. R语言贝叶斯方法在生态环境领域中的高阶技术

    贝叶斯统计学即贝叶斯学派是一门基本思想与传统基于频率思想的统计学即频率学派完全不同的统计学方法,它在统计建模中具有灵活性和先进性特点,使其可以轻松应对复杂数据和模型结构. 然而,很多初学者在面对思想. ...

  2. R语言:逆变换法生成随机数

    逆变换法生成随机数: 一.概念解释 1.PDF 2.PMF 3.CDF 二.连续型情况举例 三.离散型情况举例 一.概念解释 1.PDF probability density function 概率 ...

  3. R语言科学计数法详解:digits和scipen设置

    控制R语言科学计算法显示有两个option: digitis和scipen.介绍的资料很少,而且有些是错误的.经过翻看R语言的帮助和做例子仔细琢磨,总结如下: 默认的设置是: getOption(&q ...

  4. r语言三倍标准差法去除异常值,再计算平均值标准差

    博主自己没能找到好的函数去除异常值,于是自己写好了一个简单实用的包.可以通过三倍标准差法删去每一行的异常值,然后计算出平均值标准差. 函数总共四个参数: file=  要计算的文件路径,在工作目录可以 ...

  5. r语言插补法_R语言用多重插补法估算相对风险

    在这里,我将用R中的一个小模拟示例进行说明.首先,我们使用X1和X2双变量法线和Y模拟大型数据集,其中Y遵循给定X1和X2的逻辑模型. 首先,我们模拟一个非常大的完整数据集: #simulate完整数 ...

  6. R语言-随机前沿分析法--SFA

    3.1介绍 生产函数模型:   lnqi=x'i*b+vi-ui                  (随机生产前沿函数) qi:产出变量向量 x'i:投入变量向量 b:变量参数估计 vi:统计噪声的对 ...

  7. R语言-模糊逻辑控制

    4.1模糊逻辑控制 一种采用模糊集合理论的控制技术, 将模糊数学应用于控制系统,也是一种非线性的智能控制系统. 采用IF条件判断语句和THEN结果语句的方式呈现,其中条件判断语句是利用人的常识判断对控 ...

  8. R语言简单指数平滑(自编函数)

    系列文章目录 R语言利用贝叶斯分类法(klaR程序包),训练数据集,预测数据的分类 R语言载入arules程序包的Epub数据集,使用Apriori算法,进行关联规则分析 R语言进行系统聚类分析并作图 ...

  9. R语言时间序列(time series)分析实战:霍尔特指数Holt‘s平滑法预测

    R语言时间序列(time series)分析实战:霍尔特指数Holt's平滑法预测 目录

  10. 时间序列预测之一:指数平滑法(二)R语言——代码实现

    参考:https://www.cnblogs.com/fengzzi/p/10044426.html 指数模型是用来预测时序未来值的最常用模型.这类模型相对比较简单,但是实践证明它们的短期预测能力较好 ...

最新文章

  1. Redis持久化存储详解(一)
  2. 上海中考-哪些区是“地狱模式”?——2019上海中考数据观
  3. android ADT学习总结
  4. BLE 0x3e HCI_ERROR_CODE_CONN_FAILED_TO_ESTABLISH
  5. 关于mysql 优化的日常记录
  6. Android camera开发(11)---Camera软件架构
  7. 用于将带有查询字符串的复杂对象传递到Web API方法的自定义模型绑定器
  8. HDU 3082 HDOJ 3082 Simplify The Circuit ACM 3082 IN HDU
  9. 计算机组成原理(唐朔飞)--第一篇 概论
  10. c语言2种软件下载,C语言代码自动整理工具
  11. Python爬虫——下载韩寒博客文章
  12. 如何解压 GZ 文件
  13. 大数据实战第十六课(上)-Spark-Core04
  14. Pycharm下载库出错ERROR: Could not find a version that satisfies the requirement
  15. android+自定义dns解析,安卓手机玩dnsmasq 搭建自己的DNS服务器
  16. 【ROM制作工具】V1.0.0.23新版全新发布啦
  17. HCNP——LSR报文、LSU报文及LSAck报文
  18. Win10系统解决Windows Defender自动删除文件的问题
  19. lodop设置html字体大小无效,LODOP设置纸张无效问题
  20. 全尺度表示的上下文非局部对齐

热门文章

  1. python里面fabs什么意思_介绍Python中的fabs()方法的使用
  2. 在不损坏硬盘数据情况下,MBR格式转GPT格式,手动创建EFI和MSR分区,安装WIN10/WIN8.1...
  3. 什么是DirectX
  4. android studio报错Error occurred during initialization of VM Could not reserve enough space
  5. 你所不知道的测试经验分享之安卓UI控件定位!
  6. ream完美转换XML、JSON 转载
  7. Cartesian convention笛卡尔公约
  8. VIVADO软件介绍与使用
  9. 菜鸟仓库-货物格子问题编程题
  10. PS怎么做抽象流彩油画丙烯画效果