第10章时间序列分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.5 5.7 7.6
BIC
9.3 12 13 15 17
一阶差分后序列的BIC图 显示BIC值从下往上,依次递减。模型选用变量的单元格用阴影表示。较好的模型 (具有较低的BIC值)处于较高的行中。第一行中,test-lag1被选入模型,error-lag1到 error-lag5均未被选取,取零阶。即在test-lag1,error-lag0处,取得最小BIC值。因此p值 为1、q值为0时,BIC值最小。p、q定阶完成,,即对原始序列建立ARIMA(1,1,0)模型。
> plot(forecast)
Forecasts from ARIMA(1,1,0)
3000
4000
使用函数plot()可以查看原始值 和预测值的图形效果,例如从 图中可以直观地看到营业额的 发展趋势。
5000
0
10
20
30
40
第10章 时间序列分析
2019/4/13
常用时间序列模型
模型名称 ARIMA模型 函数 Arima() 描述 可以实现 AR 模型、 MA 模型、 ARMA 模型及 ARIMA模型 也称为条件异方差模型,适用于金融时间 序列。
GARCH模型
garch()
时间序列分解
decompose() stl()
ARIMA模型
acf(difsales,lag.max=30)
Series difsales
pacf(difsales,lag.max=30)
Series difsales
0.4
Partial ACF
0.2
ACF
0.0
-0.2
0
5
10
15 Lag
20
25
30
-0.2
0.0
0.2
0.4
0
5
10
15 Lag
ARIMA模型
(3)ARIMA模型
R软件中,Arima()函数设置时序模式的建模参数,创建ARIMA时序模型或者把一 个回归时序模型转换为ARIMA模型。 使用格式: Arima(Series, order, seasonal, period,method, ...) 其中,Series为观测值序列,order为构建的ARIMA(p,d,q)模型的参数,seasonal为 模型的季节性参数,period为观测值序列的周期,method为估计模型参数所使 用的方法。
ARIMA模型
300 销量残差 / 元 -200 -100 0 100 200
5
10
15
20 时间
25
30
35
一阶差分之后序列的时序图
Series difsales
-0.2
结果显示,一阶差分之后的序列的时序 图在均值附近比较平稳的波动、自相关 图有很强的短期相关性、单位根检验p 值小于0.05,所以一阶差分之后的序列 是平稳序列。
观测值序列的自相关系数图。
pacf()函数中的输入参数与输出参数的含义同acf()函数的类似。在acf()和pacf()中设定 plot=FALSE可以得到自相关和偏自相关的真实值。
ARIMA模型
原始序列时序图
原始序列的自相关图
时序图显示该序列具有明显的单调递增趋势,可以判断为是非平稳序列;自相关图显示自相 关系数长期大于零,说明序列间具有很强的长期相关性,可以判断为非平稳序列;
销量 / 元
3000
0
4000
5
10
15
20 时间
25
30
35
ARIMA模型
时间序列检验分析
(1)自相关性检验 自相关图中的两条虚线标示置信界限是自相关系数的上下界。如果自相关系迅速衰减落 入置信区间内,就可能是白噪声;如果自相关系数超出置信区间,那么表示存在相关关系, 而且从哪一阶落在置信区间内,就表示自相关的阶数是几阶。 使用格式: acf(x, lag.max = NULL,type = c(correlation, covariance, partial), plot = TRUE, na.action = na.fail, demean = TRUE, …) pacf(x, lag.max, plot, na.action, …) acf()函数中,参数x为观测值序列,acf()为观测值序列自相关函数,lag.max为与acf对应 的最大延迟,type为计算acf的形式,默认为correlation。当没有输出,即为acf(Series)时,画
20
25
30
一阶差分之后序列的自相关图
一阶差分后序列的偏自相关图
一阶差分后自相关图中,ACF值在一阶后迅速跌入置信区间,并且数值徘徊在置信区间 ,没有收敛趋势,显示出拖尾性。偏自相关图 中,PACF值在一阶后迅速跌入置信区间, 并且有向零收敛的趋势,显示出截尾性,所以可以考虑用AR模型拟合1阶差分后的序列,
ARIMA模型
时间序列检验分析
(2)单位根检验 对时间序列的平稳性检验通常使用单位根检验的方法。在R软件中,单位 根检验使用fUnitRoots包中的unitrootTest()函数可以实现 使用格式: unitrootTest(x, lags = 1, type = c("nc", "c", "ct"), title = NULL, description = NULL) 其中,输入参数x为观测值序列,lags为用于校正误差项的最大滞后项, type为单位根的回归类型,返回的参数p值,p值小于0.05表示满足单位根检验。
单位根检验统计量对应的p值显著大于0.05,判断该序 列为非平稳序列(非平稳序列一定不是白噪声序列)。
ARIMA模型
ARBiblioteka BaiduMA建模分析
(1)非平稳时间序列差分 对于非平稳时间序列,首先需要对其进行差分直到得到一个平稳时间 序列。在R软件中,可以使用diff()函数对时间序列进行差分运算。 diff()函数的使用格式:diff(x, lag = 1, differences = 1, ...) 其中,输入参数"x"代表观测值序列;"lag"代表差分运算的步数,缺省值代表一 步差分;" differences"代表差分运算的阶数,缺省值代表一阶差分。 对一阶差分后的序列再次做平稳性判断过程同上。
还可以通过函数as.ts()可以将对象转换成时间序列;通过函数is.ts()可以判断对
象是否为时间序列对象。
ARIMA模型
绘制时间序列图
R软件中,可以使用plot.ts()函数来画出时间序列的时序图。plot.ts()用法同 plot。 根据平稳时间序列的均值和方差都为常数的性质,平稳序列的时序图显示 该序列值始终在一个常数附近随机波动,而且波动的范围有界;如果有明显的 趋势性或者周期性那它通常不是平稳序列。
0 5 10 15 Lag 20 25 30
ACF
0.0
0.2
0.4
一阶差分之后序列的自相关图
ARIMA模型
(2)时间序列模型识别定阶
使用 R软件中的acf()和pacf()函数来分别给出时间序列的自相关图和偏自 相关图。可根据自相关图和偏自相关图对时间序列模型进行定阶。
根据自相关图和偏自相关图对时间序列模型进行定阶: 若平稳序列的偏相关系数是截尾的,而自相关系数是拖尾的,则序列适合AR模 型; 若平稳序列的偏相关系数是拖尾的,而自相关系数是截尾的,则序列适合MA 模型; 若平稳序列的偏相关系数与自相关系数都是拖尾的,则序列适合ARMA模型;
即对原始序列建立ARIMA(1,1,0)模型。
ARIMA模型
另外,模型还可以通过BIC进行定阶。此处计算ARMA(p,q)当p和q均小于等于5的所有 组合的BIC信息量,取其中BIC信息量达到最小的模型阶数。
(Intercept) error-lag1 error-lag2 error-lag3 error-lag4 error-lag5 test-lag1 test-lag2 test-lag3 test-lag4 test-lag5
p-value >0.05,说明残差为白噪声序列,通过白噪声检验。
ARIMA模型预测
(1)模型预测
根据参数估计得到的时间序列模型对未来的序列值进行预测,通过forecast 包中的函数forecast()来完成。 使用格式: forecast(object, h=10, level=c(80,95),…) object 是函数arima()返回的对象;h指定预测的时间点;level指定预测区间 的置信水平,默认情况为80%和95%置信水平下的预测区间。
时间序列的变化主要受到长期趋势、季节 变动、周期变动和不规则变动这四个因素 的影响。根据序列的特点,可以构建加法 模型和乘法模型。
指数平滑法
HoltWinters()
可以实现简单指数平滑法、Holt双参数线性 指数平滑法和 Winters 线性和季节性指数平 滑法
ARIMA模型
时间序列对象
在R软件中,使用时间序列建模前需要先将数据存储到一个时间序列对象中。 我们可以使用函数ts()将数值类型的观测对象存储为时间序列对象。 使用格式: ts(data = NA, start = 1, end = numeric(), frequency = 1,… ) 其中,data是时间序列观测值对象,必须为数值类型的向量、矩阵或数据框; start是用来指定时间序列观测值对象的第一个时间点,比如2000年1月,则设置 start=c(2000,1);end用来指定时间序列的终止时间点;frequency用来指定数据在 一年中的频数。
Forecast的输入结果是指:通过arima模型,置信水平为80%和95%时,预测出未来五天的营
业额及营业额区间。
ARIMA模型预测
(2)绘制原始值与预测值图形
为查看原始值与预测值的图形效果,可以使用plot()函数绘制原始值与预测 值的图形。 使用格式: plot(x,…) 其中,x为forecast()函数返回的结果对象。
ARIMA模型
(4)白噪声检验
在使用ARIMA模型定阶完成后,还要对模型进行假设检验,检验残差序列 是否为白噪声序列。R软件中,Box.test()函数用于检测序列是否符合白噪声检验。 使用格式: Box.test(x, lag = 1, type = c("Box-Pierce", "Ljung-Box"), fitdf = 0) 其中,x为Arima()函数返回的结果对象的residuals残差。