R语言时间序列2

利用R语言进行时间序列的预测,本节采用的模型为(ARIMA)自回归移动平均模型,它包含一个确定的统计模型用于处理时间序列中的不规则部分,当然,对于不规则部分也是允许自相关的。

一、模型参数d的确定
由于ARIMA模型为平稳时间序列的,对于很对序列来说,是非平稳的,因此,首先需要做时间序列差分,知道得到一个平稳的时间序列。如果你必须对时间序列做d阶差分才能得到一个平稳序列,那么就使用ARIMA(p,d,q)模型,其中d是差分的阶数。
diff()函数进行差分得到平稳序列,这里所谓的平稳序列,是指时间序列的水平和方差大致保持不变。
*****--------*******
对于平稳性正式的检验称作“单位根测试”。可以在fUnitRoots包中得到
*****--------*******
通过差分,去除了时间序列中的趋势部分,剩下了不规则部分,下面,检验不规则部分中邻项数值是否具有相关性,如果有的话,就可以建立一个模型进行预测了。

二、模型参数p、q的确定

经过第一节,得到一个平稳时间序列后,意味着需要寻找ARIMA(p,d,q)中合适的p值和q值。为了得到这些,通常需要检查【平稳时间序列的自相关图和偏自相关图】
使用R中的acf()和pacf()函数来分别求自相关图和偏自相关图。在acf和pacf设定plot=F来得到自相关和偏自相关的真实值。

通过绘制的图看出,自相关值在滞后1阶(lag1)之后为0,且偏自相关值在滞后3阶(lag3)之后缩小至0,那么意味着接下来的ARIMA(自回归移动平均)模型对于一阶时间序列有如下性质:

ARMA(3,0)模型:即偏自相关值在滞后3阶(lag3)之后缩小至0且自相关缩小至0(即使此模型中说自相关值缩小至0有些不太合适),则是一个阶层p=3的自回归模型。
ARMA(0,1)模型:即自相关图在滞后1阶(lag1)之后为0且偏自相关图缩小至0,则是一个阶数q=1的移动平均模型。
ARMA(p,q)模型:即自相关图和偏自相关图都缩小至0,则是一个具有p和q大于0的混合模型。

我们利用简单的原则确定哪个模型最好:即认为具有最少参数的模型是最好的。
ARMA(3,0)有3个参数,ARMA(0,1)有一个参数,而ARMA(p,q)至少有2个变量。因此认为ARMA(0,1)模型是最好的模型。
当选择:ARMA(0,1)模型是一阶的移动平均模型,或者可以称为MA(1)模型。移动平均模型通常用于建模一个时间序列,此序列具有邻项观察值之间短期相关的特征。
当选择:ARMA(2,0)模型是2阶的自回归模型,或者可以称为RA(2)模型。自回归模型通常用于建立一个时间序列模型,此序列在邻项观测值上具有长期相关性。

三、使用ARIMA模型进行预测
一旦为你的时间序列数据选择好了最好的ARIMA(p,d,q)模型,可以

估计ARIMA模型的参数,并使用它们做出预测模型来对时间序列中的未来值做预测。
使用R总的arima()函数来估计ARIMA(p,d,q)模型的参数。对于arima()函数中的order,order=c(p,d,q)

在构建完模型之后,可以进行预测,预测函数有两个,一个为predict()函数,另一个为forecast包中的forecast()函数。

四、模型评价

对于构建的模型及预测值,我们需要进行预测值误差的评价,通常绘制误差的acf和进行Ljung-Box 检验,最后绘制正太分布曲线,看预测误差是否满足方差不变,均值为0的正太分布










相关主题
相关文档
最新文档