《992编号实验5 ARIMA模型的建立》由会员分享,可在线阅读,更多相关《992编号实验5 ARIMA模型的建立(5页珍藏版)》请在金锄头文库上搜索。
1、实验实验 5 ARIMA 模型的建立模型的建立 一、实验目的一、实验目的 了解 ARIMA 模型的特点和建模过程,了解 AR,MA 和 ARIMA 模型三者之间的区别 与联系,掌握如何利用自相关系数和偏自相关系数对 ARIMA 模型进行识别,利用最小二乘 法等方法对 ARIMA 模型进行估计,利用信息准则对估计的 ARIMA 模型进行诊断,以及如 何利用 ARIMA 模型进行预测。掌握在实证研究如何运用 R 软件进行 ARIMA 模型的识别、 诊断、估计和预测。 二、基本概念二、基本概念 所谓 ARIMA 模型,是指将非平稳时间序列转化为平稳时间序列,然后将平稳的时间序 列建立 ARMA 模型
2、。ARIMA 模型根据原序列是否平稳以及回归中所含部分的不同,包括 移动平均过程(MA) 、自回归过程(AR) 、自回归移动平均过程(ARMA)以及求和自回归 移动平均过程 ARIMA 过程。 在 ARIMA 模型的识别过程中,我们主要用到两个工具 : 自相关函数 ACF,偏自相关函 数 PACF 以及它们各自的相关图。对于一个序列而言,它的第阶自相关系数为它 t Xj j 的阶自协方差除以方差,即 ,它是关于滞后期的函数,因此我们也称之为j j j0j 自相关函数,通常记 ACF()。偏自相关函数 PACF()度量了消除中间滞后项影响后两滞jj 后变量之间的相关关系。 三、实验内容及要求三、
3、实验内容及要求 1、实验内容: (1)根据时序图的形状,采用相应的方法把非平稳序列平稳化; (2)对经过平稳化后的 1950 年到 2007 年中国进出口贸易总额数据运用经典 B-J 方法论建 立合适的 ARIMA()模型,并能够利用此模型进行进出口贸易总额的预测。, ,p d q 2、实验要求: (1)深刻理解非平稳时间序列的概念和 ARIMA 模型的建模思想; (2)如何通过观察自相关,偏自相关系数及其图形,利用最小二乘法,以及信息准则建立 合适的 ARIMA 模型;如何利用 ARIMA 模型进行预测; (3)熟练掌握相关 Eviews 操作,读懂模型参数估计结果。 四、实验指导四、实验指
4、导 1、模型识别 (1)数据录入)数据录入 egwin.graph(width=5,height=3.5,pointsize=8) #给出作图视窗尺寸 plot(eg,type=o) #作时序图 195019601970198019902000 050000100000150000 份 份 份 份 份 份 份 份 份 (3)原始数据的对数处理)原始数据的对数处理 因为数据有指数上升趋势,为了减小波动变化,对其对数化,其时序图如下,对数化后 的序列远没有原始序列波动剧烈: 命令为:命令为: win.graph(width=5,height=3.5,pointsize=8) #给出作图视窗尺寸 p
5、lot(eg,1,log(eg,2), xlab=年份,ylab=贸易总额的对数值,type=o) #作出时序图 195019601970198019902000 4681012 份 份 份 份 份 份 份 份 份 份 图 3-3 对数进出口总额时序图 从图上仍然直观看出序列不平稳,为了证实这个结论,进一步对其做 ADF 检验。 首先加载首先加载 tseries 程序包,然后执行下列命令:程序包,然后执行下列命令: adf.test(eg,2) 结果如下: Augmented Dickey-Fuller Test data: eg, 2 Dickey-Fuller = 2.4886, Lag
6、order = 3, p-value = 0.99 alternative hypothesis: stationary Warning message: In adf.test(eg, 2) : p-value greater than printed p-value ADF 检验结果表明,p 值远大于默认 p 值(0.05) ,接受存在单位根的原假设,所以验证 了序列是非平稳的。 (4)建立一阶差分序列)建立一阶差分序列 对于非平稳序列,通常做法是通过差分比如一阶差分,二阶差分甚至更高阶差分来消除 趋势, 但差分会丢失原始数据的信息。 另一种做法是将数据中较为明显的趋势用某种数学模 型拟合
7、后剔除,然后将剩余序列拟合合适的 ARMA 模型,最后将两部分序列组合起来得到 最终的混合模型。 现建立一阶差分序列 R 语言差分命令为:diff(data,lag=1 ),默认为一阶差分 命令为:命令为: y plot(y,xlab=年份,ylab=贸易额的对数差分值,type=l) 从直观上来看,序列 y 似乎是平稳的,可以通过 ADF 检验来验证其平稳性。执行命令如下: adf.test(y) 结果为: Augmented Dickey-Fuller Test data: y Dickey-Fuller = -3.7585, Lag order = 3, p-value = 0.0277
8、8 alternative hypothesis: stationary ADF 检验结果表明,p 值小于默认 p 值(0.05) ,拒绝接受存在单位根的原假设,所以可 以接受序列是平稳的。因为这就可以对 y 序列进行 ARMA 模型分析了。 实际上,我们是对一阶差分后的序列在进行 ARMA 建模,因此,建立的模型从原序列角度应 该称为 ARIMA 模型,其中,差分部分的参数 d=1. (5)模型的识别)模型的识别 为了识别模型的阶数,我们计算平稳序列 y 的自相关函数和偏自相关函数: acf(y,40) pacf(y,40) 010203040 -0.20.00.20.40.60.81.0
9、Lag ACF Series y 010203040 -0.2-0.10.00.10.20.30.4 Lag Partial ACF Series y 从 y 的自相关函数图和偏自相关函数图中我们可以看到, 自相关函数和偏自相关系数的 截尾性并不明显的,因此考虑建立混合 ARMA 模型。 2、模型的定阶和参数估计 针对序列 y 我们尝试几种不同的模型拟合, 比如 ARMA(1, 1) , ARMA(1, 2) , ARMA(1, 3) 等。 ML 表示参数的极大似然估计, CSS 表示参数的条件最小二乘法。 另外还有混合方法 CSS- ML。 命令如下:命令如下: arima(y,order=
10、c(1,0,1),method=ML) #ARMA(1,1) arima(y,order=c(1,0,1),method=CSS) #ARMA(1,1) arima(y,order=c(1,0,2),method=ML) #ARMA(1,2) arima(y,order=c(1,0,3),method=ML) #ARMA(1,3) arima(y,order=c(2,0,1),method=ML) #ARMA(2,1) 如: (1)Call: arima(x = y, order = c(1, 0, 1), method = ML) Coefficients: ar1 ma1 intercep
11、t(截矩项) 0.1943 0.3323 0.1475 s.e. 0.2475 0.2381 0.0313 sigma2 estimated as 0.02069: log likelihood = 29.5, aic = -51.01 (2)Call: arima(x = y, order = c(1, 0, 2), method = ML) Coefficients: ar1 ma1 ma2 intercept -0.4893 1.0192 0.3592 0.1470 s.e. 0.5862 0.5691 0.3033 0.0301 sigma2 estimated as 0.02058:
12、 log likelihood = 29.65, aic = -49.29 (3)Call: arima(x = y, order = c(1, 0, 3), method = ML) Coefficients: ar1 ma1 ma2 ma3 intercept -0.4551 0.9833 0.3342 -0.0141 0.1470 s.e. 0.7668 0.7677 0.4676 0.1982 0.0299 sigma2 estimated as 0.02057: log likelihood = 29.65, aic = -47.3 (4) Call: arima(x = y, order = c(2, 0, 1), method = ML) Coefficients: ar1 ar2 ma1 intercept 0.3622 -0.0957 0.1666 0.1472 s.e. 0.6433 0.3215 0.6449 0.0301 sigma2 estimated as 0.02066: log likelihood = 29.55, aic = -49.09 综合差分部分,对原序列可以选择 ARIMA(1,1,1)模型拟合较为合适。