一、收集、预处理数据
- 收集:使用R包TSA的数据集,描述数据的基本统计特征【均值、方差、原始时序图】
- 数据预处理:因为数据来源可靠,故针对数据预处理只做空缺值检查,其基本检测方法如下:
- 根据时间起点与时间终点以时间粒度确定的总的时间点数;
- 将TSA的数据co2中数据映射到刚才确定的时间轴上,空缺的地方赋值为Null;
- 针对值为Null的时间点,用该点两侧的时间点对应取值的平均值为其重新赋值;
二、平稳性检验
针对时序数据平稳性的检验,主要有简单统计方法和假设检验方法,在这里主要使用的假设检验的方法为DF检验、ADF检验、PP检验。以DF检验为例
-
提出假设
- H0:不存在单位根(即序列平稳)
- H1:存在单位根(即序列不平稳)
-
构造检验统计量
adf.test()
-
作出决策
由上式输出的信息可以知道,计算的t值为xx,大于10%的显著性水平的临界值-2.57。因此不能拒绝原假设,即有理由认为该数据是不平稳的。如果不平稳的话则采用差分的方法将不平稳的数据转换为平稳数据
三、白噪声检验【不详述】
通过Ljung-Box统计量检验是否为白噪声,R语言如下:
Box.test(y,lag=10,type='L')
算出p<a,故有理由拒绝原假设,即认为经过上面处理后的数据不是一个白噪声。
之所以要在这个位置进行白噪声检验是因为白噪声是平稳的,所以针对平稳数据一定要进行平稳性检验,同时,不平稳的序列一定不是白噪声。
四、AR、MA或ARMA
-
模型判断依据如下
ACF拖尾 ACF截尾 PACF拖尾 ARMA(p,q) MA(q) PACF截尾 AR(q) 序列本身不存在明显相关,ARMA模型可能不适用 -
步骤如下
- step1 看ACF图:
- ACF图截尾:判断为MA(q)模型,q为最后一个超过2倍标准差的阶数,即超过蓝线的纵向线数量-1;
- ACF图拖尾:可能为AR(p)模型也有可能为为ARMA(p,q)模型
- step2 看PACF图:
- PACF图截尾:AR(p)模型,p为最后一个超过2倍标准差的阶数,即超出水平蓝线的纵向线数量;
- PACF图拖尾:ARMA(p,q)模型,ACF和PACF模型看不出阶数,通过其他方法定阶。
- step1 看ACF图:
截尾:大于某个常数k后快速趋于0为k阶截尾
拖尾:始终有非0取值,不会在大于某个常数后就恒等于0或在0附近随机波动)
五、确定滞后阶数
对于纯AR(p)或MA(q)模型,可以通过PACF和ACF确定p,q。针对较为复杂的ARMA的定阶,主要是使用eacf和信息准则的方法来进行定阶:
- eacf的定阶
- 根据相关文献中提出的方法,采用迭代的来定阶,通过R语言中的TSA包下的eacf函数输出矩阵的左上角的0所在行列确定ARMA的阶。
- 信息准则的方法进行定阶
- Step1:确定最大的阶数(一般不宜过大,p<10,q<10);
- Step2:对于每一个可能的阶数组合(p=i,q=j),确定一个ARMA(i,j),然后计算该模型的AIC和SBC;
- Step3:重复Step2,计算10*10=100个ARMA(i,j)的AIC或SBC,选择其中最优者;
六、建模
使用根据上述所确定的模型来进行拟合原始序列【回归】
7、模型评价
- 参数的显著性检验
- 残差检验
在六中确定了确定的模型,如AR(1)、ARMA(1,2)等等。为了具体说明上诉模型的一个效果,在这里使用残差来具体说明该模型是否有效,一个有效的模型理论上近似于白噪声。- 残差的时序图没有趋势或季节项
- 直方图是正太分布的形态
- QQ图处于一条直线上面
- 子相关图处了lags=0的时候,95%的在置信区间之外,其他都在置信区间里面