笔记说明
在datacamp网站上学习“Time Series with R ”track
“Introduction to Time Series Analysis”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
如无特殊说明,笔记中所使用数据均来自datacamp课程
简单移动平均模型部分的笔记拟分为(一)(二)两个部分发布,第一部分主要包括简单移动平均过程简介、不同参数情况下简单移动平均过程的特点和数据模拟;第二部分主要是简单移动平均模型的拟合和预测。(这样我每日一更打卡的压力可以小一些。。。)
简单移动平均模型是一种用于解释非常短期自相关的简约的(parsimonious)时间序列模型。模型的简约是指变量数最少的最简单的合理的模型(simplest plausible model with the fewest possible number of variables)。
简单移动平均模型具有回归的形式,但是每个观测是向前一项的误差项(innovation,我查到的翻译是“新息”,我理解为误差项,不知道是否合适)回归而误差项实际是观测不到的。
白噪声模型也是简单移动平均模型的特殊情况。
简单移动平均过程
设为白噪声
,则满足下式的
为移动平均过程(MA process),
为常数:
(我们这里只关注1阶的情景,最简单的移动平均过程)
- μ是
过程的均值
- 若
,则
- 若
,则
过程是自相关的。
-
决定了
的影响强度,
越大,影响越大
- 若
,则时间序列呈现出震荡(oscillatory)的特点
-
即时,
只和
有相关性,而与
无相关性。
模拟简单移动平均过程数据
和之前介绍的模型一样,简单移动平均过程也可以用arima.sim()函数进行数据模拟,model参数设为list(ma = theta),这里theta是斜率参数(公式里的θ),取值范围(-1,1),另外还需指定模拟数据的长度n。
下面模拟不同下简单移动平均过程的情况:
# Generate MA model with slope 0.4
x <- arima.sim(model = list(ma = 0.4), n = 200)
# Generate MA model with slope 0.9
y <- arima.sim(model = list(ma = 0.9), n = 200)
# Generate MA model with slope -0.75
z <- arima.sim(model = list(ma = -0.75), n = 200)
# Plot all three models together
plot.ts(cbind(x, y, z))
# Calculate ACF for x
acf(x)
# Calculate ACF for y
acf(y)
# Calculate ACF for z
acf(z)




通过以上实践可以印证之前说的不同θ下简单移动平均模型的一些特点。从ACF图上可以看出来x、y、z都是在第1个lag时有明显的自相关,但是其他lag下自相关系数都大约为0.
网友评论