从上图可以看出在2003年底后,911事件的影响效应才平息,航班客运量恢复了正常。
2 异常值
在时间序列中异常有两种,可加异常和新息异常,分别记AO和IO。
2.1 异常值示例 2.1.1 模拟数据
模拟一般的ARIMA(1,0,1),然后故意将第10个观测值变成异常值10.
> set.seed(12345) > y=arima.sim(model=list(ar=0.8,ma=0.5),n.start=158,n=100) > y
Time Series: Start = 1 End = 100
Frequency = 1
[1] 0.49180881 -0.22323665 -0.99151270 -0.73387818 -0.67750094 -1.14472133 -2.14844671 -2.49530794
[9] -1.50355358 -2.12615253 -0.55651713 0.41326344 0.51869129 1.86210605 2.19935472 2.60210165
[17] 0.79130003 0.26265426 2.93414857 3.99045889 3.60822678 1.17845765 -0.87682948 -1.20637799
[25] -1.39501221 -0.18832171 1.22999827 1.46814850 2.66647491 3.23417469 2.60349624 1.49513215
[33] 1.48852142 0.95739219 1.30011654 1.73444053 2.84825103 3.73214655 4.23579456 3.37049790
[41] 2.02783955 1.41218929 -0.29974176 -1.58712591 -1.34080878 0.10747609 1.44651081 1.67809487
[49] -0.34663129 -0.50291459 0.01739605 -0.01426474 0.94217204 0.39046221 -0.39883530 1.60638918
[57] 1.70668201 1.37518194 1.91824534 0.14254056 -2.88169481 -3.30372327 -1.74068408 -3.24868057
[65] -3.89415683 -3.45920240 -1.11042078 0.67959744 0.67051084 0.44394061 1.89536060 2.36063873
[73] 2.00559443 0.86443324 0.46847572 0.72338498 1.60215098 1.25922277 1.53180859 0.96289779
[81] 1.07712188 1.42386354 0.56318008 -0.46689543 -0.91861106 -1.92947085 -2.18188785 -1.02759087
[89] 2.31088272 3.13847319 3.01237881 3.43454807 2.31539494 2.44909873 2.91589141 1.12648908
[97] -0.08123871 0.44412579 0.26116418 -0.45815484 > y[10]<-10
2.1.2 模型初步判断
> acf(y)
> pacf(y)
> eacf(y) AR/MA
0 1 2 3 4 5 6 7 8 9 10 11 12 13 0 x x o o o o o o o o o o o o 1 o o o o o o o o o o o o o o 2 o o o o o o o o o o o o o o 3 o x o o o o o o o o o o o o 4 o x o o o o o o o o o o o o 5 x x o o o o o o o o o o o o 6 x o o o o o o o o o o o o o 7 o x o o o o o o o o o o o o
从三个的结果来看,可以初步分析y是AR(1)模型
2.1.3 对模型时行拟合
> m1=arima(y,order=c(1,0,0)) > m1
Call:
arima(x = y, order = c(1, 0, 0))
Coefficients:
ar1 intercept 0.5419 0.7096 s.e. 0.0831 0.3603
2.1.4 对模拟模型进行异常值探测
> detectAO(m1)
[,1] [,2] [,3] ind 9.000000 10.000000 11.000000 lambda2 -4.018412 9.068982 -4.247367
> detectAO(m1,robust=F) [,1] ind 10.000000 lambda2 7.321709 > detectIO(m1)
[,1] [,2] ind 10.000000 11.00000 lambda1 7.782013 -4.67421
AO探测结果认为第9,10,11.可能出现异常值。IO探测认为第10,11可能出现了异常值。由于检验统计量的最大取值出现在10且AO〉IO,所以更认为出现异常值在第10是AO异常
2.1.5 考虑异常值的时间序列拟合
>
m2=arima(y,order=c(1,0,0),xreg=data.frame(AO=seq(y)==10)) > m2
Call: arima(x = y, order = c(1, 0, 0), xreg = data.frame(AO = seq(y) == 10))
Coefficients:
ar1 intercept AO 0.8072 0.5698 10.9940 s.e. 0.0570 0.5129 0.8012
sigma^2 estimated as 1.059: log likelihood = -145.29, aic = 296.58
> detectAO(m2)
[1] \> detectIO(m2)
[1] \
2.1.6 比较有无异常值的两模型
再次进行异常值探测时,没有发现异常值,验证最初序列异常出现在10的猜测 对比模型1和2的拟合效果 > tsdiag(m2)
相关推荐: