8时间序列回归模型 - R实现

loading 分享 2026-7-24 下载文档

从上图可以看出在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)


8时间序列回归模型 - R实现.doc 将本文的Word文档下载到电脑
搜索更多关于: 8时间序列回归模型 - R实现 的文档
相关推荐
相关阅读