自回归模型(AR )
2017/7/2 19:24:15
自回归模型(Autoregressive Model,简称 AR 模型)是最常见的平稳时间序列模型之一。接下将介绍 AR 模型的定义、统计性质、建模过程、预测及应用。
一、AR 模型的引入
考虑如图所示的单摆系统。设 xt 为第 t 次摆动过程中的摆幅。根据物理原理,第 t 次的摆幅 xt 由前一次的摆幅 xt-1 决定,即有 xt=a1xt-1。考虑到空气振动的影响,我们往往假设
(1)
其中,随机干扰 εt ~ N(0, σ2)。
设初始时刻 x0=1,现在取不同的 a1 和 σ 值进行实验。实验结果如下图。

我们可以看出,参数 a1 对序列的稳定性起到决定性的作用,而噪声强度 σ2 决定了序列的波动程度。
在这里,我们称模型 (1) 为一阶自回归模型。更一般地,可以考虑序列值 xt 可由前 p 个时刻的序列值及当前的噪声表出,即
(2)
其中,aj 为参数,{εt} 为白噪声。为了显示序列值为随机变量,这里使用 Xt 而不是 xt。
二、AR 模型的定义
定义 1
如果 {εt} 为白噪声,服从 N(0,σ2),a0,a1,...,ap(ap≠0) 为实数,就称 p 阶差分方程
(3)
是一个 p 阶自回归模型,简称 AR(p) 模型,称 a=(a0,a1,...,ap)T 是 AR(p) 模型中的自回归系数。满足 AR(p) 模型 (3) 的时间序列 {Xt} 称为 AR(p) 序列。当 a0=0 时,称为零均值 AR(p) 序列,即
(4)
需要指出的是,对于 a0≠0 的情况,我们可以通过零均值化的手段把一般的 AR(p) 序列变为零均值 AR(p) 序列。
三、AR 序列的建模
对于给定的时间序列 {Xt},我们最关注的是如何对其进行建模。一般地,平稳序列的建模过程可以用下图中的流程图表示。

步骤 1 对序列作白噪声检验,若经检验判定序列为白噪声,建模结束;否则转步骤 2.
步骤 2 对序列作平稳性检验,若经检验判定为非平稳,则进行序列的平稳化处理,转步骤 1;否则转步骤 3.
步骤 3 对模型进行识别,估计其参数,转步骤 4.
步骤 4 检验模型的适用性,若检验通过,则得到拟合模型并可对序列做预测;否则转步骤 3.
在这里,对白噪声检验、平稳性检验和平稳化处理不进行介绍。有时间写两篇这方面的博文。
(一) AR 模型的判定
对于观测到的时间序列,若通过白噪声检验确定为非白噪声,且经平稳性检验确定为平稳后,我们常根据相关系数和偏相关系数来识别模型。
这一部分的主要任务是,判断该问题是否适用 AR 模型建模,以及大致确定阶数 p。
可通过下面的代码,计算自相关系数(Autocorrelation Function, SAF)和偏自相关系数(Partial Autocorrelation Function, PACF)。
from statsmodels.tsa.stattools import acf, pacf
# pacf 计算偏自相关系数
# acf 计算自相关系数
如果一个时间序列满足以下两个条件
- ACF 具有拖尾性,即 ACF(k) 不会在 k 大于某个常数之后就恒等于 0。
- PACF 具有截尾性,即 PACF(k) 在 k>p 时变为 0。
第 2 个条件还可以用来确定阶数 p。考虑到存在随机误差的存在,因此 PACF 在 p 阶延迟后未必严格为 0 ,而是在 0 附近的小范围内波动。具体来说
设 k 阶偏自相关系数为 ak,若阶数大于 p 大部分的偏自相关系数满足下式,则 AR 模型的阶数取 p。
(5)
其中 N 表示样本序列长度。
例如,对于模型 Xt=0.9Xt-1-0.3Xt-2+εt,它的 ACF 和 PACF 如下。

我们可以看出自相关系数呈现一定的周期性,故判定为拖尾;偏自相关系数 2 步后截尾。因此,我们可以尝试使用 AR(2) 模型来建模。
(二) AR 模型的参数估计
AR 模型的参数估计主要有三种方法:矩估计、最小二乘估计和最大似然估计。
这里仅介绍最小二乘估计。(实际上最大似然估计与最小二乘估计的结果一样)
对于样本序列 {xt},当 j≥p+1时,记白噪声 εj 的估计为
(6)
通常称 为残差。我们的优化目标是使得残差平方和
(7)
达到最小。我们称使上式达到最小的 为 AR(p) 模型中自回归系数
的估计。
记
得到如下线性方程组
(8)
于是式 (7) 的目标函数可表示为
(9)
上式对参数 求导并令其为 0,可得
(10)
因此,参数 的最小二乘估计为
(11)
此时,误差方差的最小二乘估计
(12)
(三) AR 模型的定阶
在对 AR 模型识别时,根据其样本偏自相关系数的截尾步数,可初步得到 AR 模型的阶数 p。然而,此时建立的 AR(p) 未必是最优的。一个好的模型通常要求残差序列方差较小,同时模型页相对简单,即要求阶数较低。因此我们需要一些准则来比较不同阶数的模型之间的优劣,从而确定最合适的阶数。下面给出两种常用的定阶准则。
1. FPE 准则
最终预报误差(Final Prediction Error)准则,简称为 FPE 准则,其判据就是最终预报误差最小。设 AR(p) 为拟合模型, 是序列的各阶样本自协方差函数,其最终预报误差可表示为
(13)
在具体应用时,通常是分别建立从低阶到高阶的 AR 模型,并计算出相应的 FPE
的值,由此确定使 FPE 达到最小的 p 值。
2. 贝叶斯信息准则
定义
(14)
使得 BIC 达到最小值的 p 即为该准则下的最优 AR 模型的阶数。
(四) AR 模型的检验
在模型拟合之后需要进行模型的检验,主要分为两部分
- 有效性检验:检验拟合模型对序列中信息的提取是否充分
- 显著性检验:检验模型中的个参数是否显著为 0,从而判断拟合魔心是否可以进一步简化。
1. 模型的有效性检验
一个好的拟合模型应该能够提取观测值序列中几乎所有的样本相关信息,即残差序列应该为白噪声序列。因此,模型的有效性检验即为残差序列的白噪声检验。如果残差序列是白噪声,那么理论赏其延迟任意阶的自相关系数为 0,考虑数据的偏差,那么绝大多数应该在 0 附近的范围内,通常在 95% 的置信水平(2倍标准差)以内。
2. 参数的显著性检验
这一部分的目标是,删除那些不显著参数使模型结构最为精简。对于模型参数 aj(j=1,...,p) 的检验,其原假设和备择假设分别为
(15)
检验统计量为 t 统计量:
(16)
在给定的显著水平 α 下,当检验统计量 T 大部分位于分点 t1-α/2,或该统计量的 P 值小于 α 时,则可以以 1-α 的置信水平拒绝原假设,
认为模型参数显著。反之,则不能显著拒绝参数为 0 的假设。
参考文献
[1] 周永道,王会琦,吕王勇. 时间序列分析及应用. 高等教育出版社. 2015.
自回归模型(AR )的更多相关文章
- 时间序列算法(平稳时间序列模型,AR(p),MA(q),ARMA(p,q)模型和非平稳时间序列模型,ARIMA(p,d,q)模型)的模型以及需要的概念基础学习笔记梳理
在做很多与时间序列有关的预测时,比如股票预测,餐厅菜品销量预测时常常会用到时间序列算法,之前在学习这方面的知识时发现这方面的知识讲解不多,所以自己对时间序列算法中的常用概念和模型进行梳理总结(但是为了 ...
- ARIMA模型原理
一.时间序列分析 北京每年每个月旅客的人数,上海飞往北京每年的游客人数等类似这种顾客数.访问量.股价等都是时间序列数据.这些数据会随着时间变化而变化.时间序列数据的特点是数据会随时间的变化而变化. 随 ...
- ARIMA模型总结
时间序列建模基本步骤 获取被观测系统时间序列数据: 对数据绘图,观测是否为平稳时间序列:对于非平稳时间序列要先进行d阶差分运算,化为平稳时间序列: 经过第二步处理,已经得到平稳时间序列.要对平稳时间序 ...
- 时间序列算法理论及python实现(1-算法理论部分)
如果你在寻找时间序列是什么?如何实现时间序列?那么请看这篇博客,将以通俗易懂的语言,全面的阐述时间序列及其python实现. 就餐饮企业而言,经常会碰到如下问题. 由于餐饮行业是胜场和销售同时进行的, ...
- 向量自回归模型VS风险价值模型(VAR&VaR)
单从外观上看,VAR&VaR两个模型很容易混淆,但就模型方法和用处两者截然不同,R语言作为数据分析的有力工具,其函数包库中包含各种各样的统计模型.通过vars包可以调用向量自回归模型,通过Pe ...
- 现代数字信号处理——AR模型
1. AR模型概念观 AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值,其目的都是为了增加有效数据,只是AR模型是由N点递推, ...
- VAR向量自回归模型学习笔记2
向量自回归模型 今天的你 和昨天的你 和前天的你,是否具有相关性. 1. 定义 向量自回归(VAR,Vector Auto regression)分析联合内生变量间的动态关系 联合:n个变量间的相互影 ...
- 【AR实验室】mulberryAR : ORBSLAM2+VVSION
本文转载请注明出处 —— polobymulberry-博客园 0x00 - 前言 mulberryAR是我业余时间弄的一个AR引擎,目前主要支持单目视觉SLAM+3D渲染,并且支持iOS端,但是该引 ...
- 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)
0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...
随机推荐
- LeetCode第[88]题(Java):Merge Sorted Array(合并已排序数组)
题目:合并已排序数组 难度:Easy 题目内容: Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as ...
- RotateCard(自定义旋转view)
使用方法Demo package com.example.displaydemo; import java.util.ArrayList; import com.example.displaydemo ...
- [PostgreSql]PostgreSql创建函数及函数的执行
1.准备好创建函数的脚本 -- FUNCTION: public.dynamic_placelist_select(integer, timestamp without time zone) -- D ...
- Learning R笔记(一)
基本操作 帮助文档:?函数.演示:demo(函数).参数列表:formals(函数),返回为成对列表pairlist. 用all.equal函数检查浮点数是否相等,容忍度默认为1.5e-8,如果相等返 ...
- android面试准备一之Activity相关
1.Activity生命周期 1.1 Activity的4种状态 running/paused/stopped/killed running:当前Activity正处于运行状态,指的是当前Ac ...
- Highcharts 标示区曲线图;Highcharts 对数图表;Highcharts 时间间隔图表
Highcharts 标示区曲线图 配置 使用 yAxis.plotBands 属性来配置标示区.区间范围使用 'from' 和 'to' 属性.颜色设置使用 'color' 属性.标签样式使用 'l ...
- 将封装了envi功能的IDL类导出成java类,方便java调用
目的: 用IDL将ENVI的功能封装成为IDL的类,并使用IDL的对象导出功能把这些功能类导出为java类,方便java调用.(本来想直接通过GP工具调用的,但是没有授权文件) 操作步骤: ...
- JTable的应用
最近项目中使用到一个table表格,表格的样子如下: 可以修改数量,以及折扣,对应的最终价会相应的变化. 随手写了份插件,命名为JTable,可以给热爱jquery 的友友们一个参考: 代码如下: / ...
- LeetCode OJ:Isomorphic Strings(同构字符串)
Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the chara ...
- 第9课:备份mysql数据库、重写父类、unittest框架、多线程
1. 写代码备份mysql数据库: 1)Linux下,备份mysql数据库,在shell下执行命令:mysqldump -uroot -p123456 -A >db_bak.sql即可 impo ...