笔记说明
在datacamp网站上学习“Time Series with R ”track
“Introduction to Time Series Analysis”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
如无特殊说明,笔记中所使用数据均来自datacamp课程
自回归模型部分的笔记拟分为(一)(二)两个部分发布,第一部分主要包括自回归过程简介、不同参数情况下自回归过程的特点和数据模拟;第二部分主要是自回归模型的拟合和预测。(这样我每日一更打卡的压力也能小一些。。。)
自回归模型(autoregressive(AR) model)是应用最广泛的时间序列模型之一。它和简单线性回归有着类似的解读(interpretation),不同之处在于各观测回归于前一观测。
之前介绍过的白噪声模型和随机漫步模型也可以被自回归模型所囊括,它们是自回归模型的特例。
自回归过程
(一阶)自回归的核心思想是:
在课程中用的是均值中心版本(mean centered version),即:
设(白噪声),则满足下式的
为自回归过程,式子中
为常数:
(我们这里只关注1阶的情景,最简单的自回归过程)
我个人更喜欢将上式写为下面的形式:
- μ是
过程的均值
- 若
,则
- 若
,则
过程是自相关的。
-
决定了
的量,
越大,代入量越大,自相关性越强
- 若
,则有:
- 若
,时间序列呈现出震荡(oscillatory)的特点。
- 若
,则
此时为随机漫步,是非平稳过程。
模拟自回归过程数据
用在之前章节提到过的arima.sim()函数可以生成自回归过程的模拟数据。需要指定arima.sim()函数的model参数为list(ar = phi),phi即为斜率参数,在arima.sim()函数中phi值应该在(-1,1)区间内取值。另外还需要指定序列长度n。
下面模拟不同下自回归过程的情况:
# Simulate an AR model with 0.5 slope
x <- arima.sim(model = list(ar = 0.5), n = 200)
# Simulate an AR model with 0.9 slope
y <- arima.sim(model = list(ar = 0.9), n = 200)
# Simulate an AR model with -0.75 slope
z <- arima.sim(model = list(ar = -0.75), n = 200)
# Plot your simulated data
plot.ts(cbind(x, y, z))
# Calculate the ACF for x
acf(x)
# Calculate the ACF for y
acf(y)
# Calculate the ACF for z
acf(z)




从以上的图中可以看出,x(phi=0.5)显示出中等自相关性,y(phi=0.9)显示出强自相关性,z(phi=-0.75)显示出震荡的特点。
自回归过程的持续性
不同参数的自回归过程可以有不同水平的持续性(persisitence)和反持续性(anti-persistence)表现。
持续性是指时间序列中的观测与前一个观测有强相关性(这里应该是特指正的强相关性)。
反持续性指时间序列中的观测与前一个观测间存在很大的偏差。反持续性在时间序列作图上表现为震荡。
随机漫步模型与自回归模型
随机漫步模型是自回归模型的一个特例,斜率参数为1的自回归模型即为随机漫步模型。
前面的章节提到过,随机漫步模型是非平稳的且具有很强的持续性。它的样本自相关函数衰减到0的过程很缓慢,意味着过去的数据对当前或未来的数据具有持久的影响。
平稳的自回归模型的斜率参数取值范围为(-1,1)。当斜率参数越接近1,持续性越强,但序列向均值回归的过程也较快。其样本自相关函数会以很快的速度(以几何速度)衰减至0,意味着较远过去的数据对未来数据的影响很小。
下面看一个斜率参数为0.9的自回归序列和一个随机漫步序列的相关情况作为印证:
# Simulate and plot AR model with slope 0.9
x <- arima.sim(model = list(ar = 0.9), n = 200)
ts.plot(x)
acf(x)
# Simulate and plot RW model
z <- arima.sim(model = list(order = c(0, 1, 0)), n = 200)
ts.plot(z)
acf(z)




网友评论