时间序列建模基本步骤

  • 获取被观测系统时间序列数据;
  • 对数据绘图,观测是否为平稳时间序列;对于非平稳时间序列要先进行d阶差分运算,化为平稳时间序列;
  • 经过第二步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数ACF 和偏自相关系数PACF ,通过对自相关图和偏自相关图的分析,得到最佳的阶层 p 和阶数 q
  • 由以上得到的d、q、p,得到ARIMA模型。然后开始对得到的模型进行模型检验

一、时间序列平稳性

1.判断是否平稳

  平稳性就是要求经由样本时间序列所得到的拟合曲线在未来一段时间内仍能顺着现有的形态惯性地延续下去。平稳性要求序列的均值和方差不发生明显变化

  • 严平稳:严平稳表示的分布不随时间的改变而改变。如白噪声(正太),无论怎么取,期望都是0,方差为1
  • 宽平稳:期望与相关系数(依赖性)不变。未来某时刻的t的值Xt要依赖于它的过去信息,所以需要依赖性。这种依赖性不能有明显的变化。

三种方法:

(1)时序图检验
(2)自相关系数和偏相关系数
(3)单位根检验

如果是不平稳,那就需要将其转成平稳,就要用到差分法。

2.差分法

使用差分法可以使得数据更平稳,常用方法:一阶差分法和二阶差分法

3. 纯随机性检验

  纯随机序列,又称白噪声序列,序列的各项数值之间没有任何相关关系,白噪声序列是没有信息可提取的平稳序列。对于平稳非白噪声序列,均值和方差是常数。通常是建立一个线性模型来拟合该序列的发展,借此提取该序列的有用信息,ARMA模型是最常用的平稳序列拟合模型。

二、模型

1. 自回归模型AR

  自回归模型描述当前值与历史值之间的关系,用变量自身的历史数据对自身进行预测。自回归模型必须满足平稳性的要求。

  自回归模型首先需要确定一个阶数p,表示用几期的历史值来预测当前值。p阶自回归模型的公式定义为:

  上式中yt是当前值,u是常数项,ri是自相关系数,et是误差。

自回归模型的限制:

(1)自回归模型是用自身的数据进行预测;

(2)时间序列数据必须具有平稳性;

(3)自回归只适用于预测与自身前期相关的现象。

2. 移动平均模型MA

  移动平均模型关注的是自回归模型中的误差项的累加,q阶自回归过程的公式为:

  移动平均法能有效地消除预测中的随机波动

3. 自回归移动平均模型ARMA

  自回归模型AR和移动平均模型MA相结合,我们就得到了自回归移动平均模型ARMA(p,q),计算公式如下:

4. 差分自回归移动平均模型ARIMA

建立ARIMA模型一般有三个阶段,分别是模型识别和定阶、参数估计和模型检验。

三、平稳时间序列建模

  某个时间序列经过预处理,被判定位平稳非白噪声序列,就可以进行时间序列建模。

(1)模型识别和定阶

  模型识别和定阶问题,主要是确定p,d,q三个参数,差分的阶数d一般通过观察图示,1阶或2阶即可。这里我们主要介绍p和q的确定,我们首先介绍两个函数。

【1】自相关函数ACF(autocorrelation function)

  自相关函数ACF描述的是时间序列观察值与其过去的观察值之间的线性相关性

公式如下:

  其中k代表滞后期数,如果k=2,则表示yt和yt-2

【2】偏自相关函数PACF(partial autocorrelation function)

  偏自相关函数PACF描述的是在给定中间预测值的条件下,时间序列观测值与其过去的观测值之间的线性相关性。

举例:假设k=3,那我们描述的是yt和yt-3之间的相关性,但是这个相关性还受到yt-1和yt-2的影响,PACF剔除了这个影响,而ACF包含这个影响。

【3】拖尾和截尾

  拖尾序列以指数率单调递减或震荡衰减,而截尾指序列从某个时点变得非常小。

出现以下情况,通常视为(偏)自相关系数拖尾

1)如果有超过5%的样本(偏)自相关系数都落入2倍标准差范围之外

2)或者是由显著非0的(偏)自相关系数衰减为小值波动的过程比较缓慢或非常连续。

出现以下情况,通常视为(偏)自相关系数d阶截尾

1)在最初的d阶明显大于2倍标准差范围;

2)之后几乎95%的(偏)自相关系数都落在2倍标准差范围以内;

3)且由非零自相关系数衰减为在0附近小值波动的过程非常突然。

【4】p,q阶数的确定

  根据刚才判定截尾和拖尾的准则,p和q的确定基于如下的规则。

  根据不同的截尾和拖尾的情况,我们可以选择AR模型,也可以选择MA模型,当然也可以选择ARIMA模型。

(2)参数估计

  通过拖尾和截尾对模型进行定阶的方法,往往具有很强的主观性。回想我们之前在参数估计的时候是怎么做的,不就是损失和正则项的加权么?我们这里能不能结合最终的预测误差来确定p,q的阶数呢?在相同的预测误差情况下,根据奥卡姆剃刀准则,模型是越简单越好的。那么,平衡预测误差和参数个数,我们可以根据信息准则函数法,来确定模型的阶数。预测误差通常用平方误差即残差平方和来表示。

常用的信息准则函数法有下面几种:

AIC准则

  AIC准则全称为全称是最小化信息量准则(Akaike Information Criterion),计算公式如下:
  AIC = 2 *(模型参数的个数)-2ln(模型的极大似然函数)

BIC准则

  AIC准则存在一定的不足之处。当样本容量很大时,在AIC准则中拟合误差提供的信息就要受到样本容量的放大,而参数个数的惩罚因子却和样本容量没关系(一直是2),因此当样本容量很大时,使用AIC准则选择的模型不收敛与真实模型,它通常比真实模型所含的未知参数个数要多。BIC(Bayesian InformationCriterion)贝叶斯信息准则弥补了AIC的不足,计算公式如下:

  BIC = ln(n) * (模型中参数的个数) - 2ln(模型的极大似然函数值),n是样本容量

(3)模型检验

这里的模型检验主要有两个:
【1】检验参数估计的显著性(t检验)
【2】检验残差序列的随机性,即残差之间是独立

残差序列的随机性可以通过自相关函数法来检验,即做残差的自相关函数图:

(4)模型预测

预测主要有两个函数,一个是predict函数,一个是forecast函数,predict中进行预测的时间段必须在我们训练ARIMA模型的数据中forecast则是对训练数据集末尾下一个时间段的值进行预估

参考文献:

【1】ARIMA模型原理及实现

【2】时间序列规则法快速入门

【3】时间序列模式(ARIMA)---Python实现

【4】Time Series Analysis by State Space Methods

【5】时间序列分析之ARIMA

ARIMA模型总结的更多相关文章

  1. 时间序列预测之--ARIMA模型

    什么是 ARIMA模型 ARIMA模型的全称叫做自回归移动平均模型,全称是(ARIMA, Autoregressive Integrated Moving Average Model).也记作ARIM ...

  2. 【机器学习笔记之五】用ARIMA模型做需求预测用ARIMA模型做需求预测

    本文结构: 时间序列分析? 什么是ARIMA? ARIMA数学模型? input,output 是什么? 怎么用?-代码实例 常见问题? 时间序列分析? 时间序列,就是按时间顺序排列的,随时间变化的数 ...

  3. 时间序列分析模型——ARIMA模型

    时间序列分析模型——ARIMA模型 一.研究目的 传统的经济计量方法是以经济理论为基础来描述变量关系的模型.但经济理论通常不足以对变量之间的动态联系提供一个严密的说明,而且内生变量既可以出现在方程的左 ...

  4. 基于R语言的ARIMA模型

    A IMA模型是一种著名的时间序列预测方法,主要是指将非平稳时间序列转化为平稳时间序列,然后将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型.ARIMA模型根据原序列是否平稳以及 ...

  5. ARIMA模型---时间序列分析---温度预测

    (图片来自百度) 数据 分析数据第一步还是套路------画图 数据看上去比较平整,但是由于数据太对看不出具体情况,于是将只取前300个数据再此画图 这数据看上去很不错,感觉有隐藏周期的意思 代码 # ...

  6. 时间序列 ARIMA 模型 (三)

    先看下图: 这是1986年到2006年的原油月度价格.可见在2001年之后,原油价格有一个显著的攀爬,这时再去假定均值是一个定值(常数)就不太合理了,也就是说,第二讲的平稳模型在这种情况下就太适用了. ...

  7. 用R做时间序列分析之ARIMA模型预测

    昨天刚刚把导入数据弄好,今天迫不及待试试怎么做预测,网上找的帖子跟着弄的. 第一步.对原始数据进行分析 一.ARIMA预测时间序列 指数平滑法对于预测来说是非常有帮助的,而且它对时间序列上面连续的值之 ...

  8. ARIMA模型——本质上是error和t-?时刻数据差分的线性模型!!!如果数据序列是非平稳的,并存在一定的增长或下降趋势,则需要对数据进行差分处理!ARIMA(p,d,q)称为差分自回归移动平均模型,AR是自回归, p为自回归项; MA为移动平均,q为移动平均项数,d为时间序列成为平稳时所做的差分次数

    https://www.cnblogs.com/bradleon/p/6827109.html 文章里写得非常好,需详细看.尤其是arima的举例! 可以看到:ARIMA本质上是error和t-?时刻 ...

  9. 时间序列模式——ARIMA模型

    ARIMA模型全称为自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA),是由博克思(Box)和詹金斯(Jenkins ...

随机推荐

  1. sql server中的用户临时表和全局临时表的区别

    临时表分为: 本地临时表,仅限于当前访问者访问,创建方法去如下:create table #TableName(表结构)储存于数据库tempdb内(硬盘),当前用户断开连接(把当前的),自动删除如果使 ...

  2. Excel公式笔记

    跨表,查找相同的数据,的其他列的值 =index(sheet2!$c$:$c$,match(sheet1!$b$,sheet2!$d$:$d$,)) 备注: =index(读哪里的数据(大范围), m ...

  3. Protocol Buffers学习教程

    最近看公司代码的过程中,看到了很多proto后缀的文件,这是个啥玩意?问了大佬,原来这是Protocol Buffers! 这玩意是干啥的?查完资料才知道,又是谷歌大佬推的开源组件,这玩意完全可以取代 ...

  4. sql日期格式小应用 记录一下

    比如这样的数据 20170317 要转成2017-03-17 单独一步做不到 两步思想 先转成日期格式 在进行格式化 select CONVERT(varchar(10),(CAST(CONVERT( ...

  5. 超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)

    https://blog.csdn.net/u014732824/article/details/84952848 int i = System.Text.Encoding.Default.GetBy ...

  6. 在windows下编写shell脚本

    注意两点: 1.第一行:#!/bin/bash 2.将文档格式转换为unix,因为在windows下编写shell脚本回车符是\n\r,而linux下的回车符是\n,所以在linux下运行脚本的时候, ...

  7. 解决修改sources.list之后update NO_PUBKEY错误

    最近鼓捣一个新基于debian的服务器,修改sources.list之后update的时候报类似如下错误: W: GPG error: http://ftp.us.debian.org lenny-p ...

  8. java模拟http请求(代理ip)

    java实现动态切换上网IP (ADSL拨号上网) java动态设置IP java模拟http的Get/Post请求 自动生成IP模拟POST访问后端程序 JAVA 动态替换代理IP并模拟POST

  9. Python读取一个目录下的所有文件

    #!/usr/bin/python # -*- coding:utf8 -*- import os allFileNum = 0 def printPath(level, path): global ...

  10. J - Printer Queue 优先队列与队列

    来源poj3125 The only printer in the computer science students' union is experiencing an extremely heav ...