这是关于时间序列的第N篇文章,本文将介绍ARIMAX模型,简单来说就是在ARIMA的基础上增加一个外生变量。ARIMAX和ARIMA相比在理论上没有太多新的内容,所以本文直接介绍在R里怎么一步一步跑ARIMAX。

在阅读这篇文章前,需要对ARIMA有一定了解,传送门在这里:

0100:时间序列分析|AR(p),MA(q), ARIMA入门及R中实践​zhuanlan.zhihu.com

0100:时间序列分析|ARIMA模型分步骤解析及R中实践​zhuanlan.zhihu.com

那么直接进入正题,来ARIMAX吧~


先举一个直观的需要用ARIMAX的例子:假设你在经营一家游乐园,你有过去三年游乐园的daily attendance数据,以及daily events数据,想要预测未来的daily attendance。

其中input data就是历史的daily attendance和daily events, output是未来的daily attendance。

如果用ARIMA的话,那么input变量只能是历史的daily attendance, 而想要将历史的daily events也作为一个因变量的话,就可以用ARIMAX模型。

假设下面咱们要解决的就是这个问题,步骤很简单,来看下R中要怎么一步一步run code吧:

第一步:时间序列数据集

  1. 如果没有数据的话,可以创建数据集:使用以下code建立一个ARIMA(1,1,1)的时间序列数据:
historical_attendance = arima.sim(list(order = c(1,1,1), ar = 0.9, ma = -0.4, n = 200)

2. 如果已有数据的话,记得将你的数据转化为时间序列数据

historical_attendance = ts(data$historical_attendance, frequency = 365.25/7, start= decimal_date(ymd('2015-06-27')))

第二步:把外生变量转变为matrix格式,这步极其重要! 我当时不知道要对外生变量进行格式转化,卡了很久找不到BUG,最后做code review的时候老板一眼就看出了问题所在。

xreg = as.matrix(data$historical_events)

第三步:跑ARIMAX模型,如果你数据量比较大的话,这步要跑好久。我大概300数据量,跑了一小时多。

arimax <- auto.arima(historical_attendance,xreg = xreg,seasonal.test="ch", parallel=TRUE,num.cores=8,stepwise=FALSE,approximation=FALSE)

第四步:做预测

做预测前,记得把test集中的外生变量也转化为matrix格式

xreg_next = as.matrix(data$future_events)
fcast_arimax <- forecast(arimax, h=10,xreg = xreg_next)

第五步:做一下可视化,画个图什么的。

只要掌握了ARIMA,ARIMAX就很简单的。对ARIMA不熟的, 一定要把这篇先看懂哦:

0100:时间序列分析|ARIMA模型分步骤解析及R中实践​zhuanlan.zhihu.com


PS: 我将开始频繁更新时间序列的各种模型了,包括模型本身的讲解和在R中怎么写code。

已更新的有:指数平滑ETS, 自回归AR, 移动平均MA,ARMA, ARIMA, ARIMAX,TABTS。

接下来会更新的模型包括:TABTS,TSAR, LSTM等

欢迎关注专栏:

一锅数据汤​zhuanlan.zhihu.com

covariance matrix r语言_时间序列分析|ARIMAX模型分步骤详解和R中实践相关推荐

  1. arima 数据预处理_时间序列分析|ARIMA模型分步骤解析及R中实践

    你是否想要做时间序列分析,但却不知道代码怎么写? 你是否不清楚时间序列分析各种模型该在什么情况下使用? 本文将针对以上两个问题,带你入门时间序列分析~ 等等! 不止'入门' 读完这篇,你立即就能在R中 ...

  2. R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签

    R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签 目录 R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签

  3. R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置、置信区间、坐标轴(刻度、标签、范围)、无效线去除、水平线、辅助线、box形状、色彩等

    R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置.置信区间.坐标轴(刻度.标签.范围).无效线去除.水平线.辅助线.box形状.色彩等 目录

  4. R 语言做时间序列分析的实例(模式识别、拟合、检验、预测)

    文章目录 一.准备工作 1.数据准备 2.基本概念 二.数据处理 1.模式识别 2.参数估计 3.诊断性检验 1 残差序列 2 Ljung-Box 检验 4.预测 一.准备工作 1.数据准备 所使用的 ...

  5. 基于R语言的时间序列分析预测

    数据来源: R语言自带 Nile 数据集(尼罗河流量) 分析工具:R-3.5.0 & Rstudio-1.1.453 #清理环境,加载包 rm(list=ls()) library(forec ...

  6. 二元置信椭圆r语言_一般加性模型的简介、应用举例及R语言操作

    一般加性模型的简介.应用及R语言操作举例前文在"平滑回归举例"中,提到当未知自变量和响应变量间的关系,难以选择合适的参数模型描述二者间的响应状态,或者期望探索二者可能的响应曲线形式 ...

  7. python时间序列分析航空旅人_时间序列分析-ARIMA模型(python)

    时间序列概念:在生产和科学研究中,对某一个或者一组变量 进行观察测量,将在一系列时刻 所得到的离散数字组成的序列集合,称之为时间序列.时间序列分析是根据系统观察得到的时间序列数据,通过曲线拟合和参数估 ...

  8. python arima模型_时间序列分析 ARIMA模型 Python(2)

    最近做了一个时间序列分析的项目.时间序列分析不同于以前的项目--看一下相关的库怎么用,就可以快速上线应用.它是非常需要你的基础知识的,Hamilton关于<时间序列分析>方面的知识,写了厚 ...

  9. R语言作图好看的秘籍:RColorBrewer调色板详解

    朋友们说我作图的配色还可以,这其实不是我的功劳,是因为 R 语言有许多非常优秀的调色板,本文就介绍一个非常流行的,我也经常在用的调色板 R 包:RColorBrewer. 安装 install.pac ...

最新文章

  1. Kubernetes的未来是虚拟机?
  2. [数据结构]-散列表(哈希表)
  3. Matlab优化函数中options选项的修改
  4. css 中 的作用
  5. hdu 3549 Flow Problem(最大流模板题)
  6. C# 面向对象三大特性:封装、继承、多态
  7. java线程工作原型_深度解析Java内存的原型及工作原理
  8. 面向对象 VS 面向过程
  9. Java基础提升高级API
  10. Linux eBPF:bcc 用法和原理初探之 kprobes 注入
  11. MyBatis-Plus分页查询——Page
  12. CSS中设置height:100%无效的解决方案
  13. 【Java篇】 Java小游戏中加入背景音乐
  14. Arcgis使用DEM数据计算坡度
  15. 新版犀牛书该不该入手?
  16. C++ SHFileOperation实现文件、文件夹拷贝、删除、重命名
  17. 74ls390设计任意进制计数器_《设计任意进制计数器》的实验报告
  18. js获取当前农历时间
  19. RCNN到faster RCNN 简介
  20. Android开发是简单的「能写应用就行」吗?复习指南

热门文章

  1. pm2 start 带参数_3款有海景天窗的国产SUV,最适合带女朋友看星星,首付3万拿下...
  2. pythonhelloworld实例_Python基于Tkinter的HelloWorld入门实例
  3. android 抓取webview中的所有图片_如何一键提取PDF文档中的所有图片?
  4. cygwin 编译 android vlc,Cygwin 编译 VLC 问题
  5. linux dns 内网ip,Ubuntu中ip地址、网关、网络号、DNS等解释
  6. java中怎么获取配置文件的值_java如何获取配置文件的值
  7. linux课堂笔记(3)
  8. 一秒执行一次_《一秒钟》:一贯的粗旷式抓大放小,张艺谋的自命题作业总是要观众自己再做一遍...
  9. java 流式_Java开发笔记(七十二)Java8新增的流式处理
  10. linux的sonar安装,Linux安装sonar