python时间序列平稳性_时间序列d的平稳性

我正在尝试使用python中的ARIMA建模来建模时间序列数据。我对默认数据序列使用函数statsmodels.tsa.stattools.arma_order_select_ic,得到p和q的值分别为2,2。代码如下dates=pd.date_range('2010-11-1','2011-01-30')

dataseries=Series([22,624,634,774,726,752,38,534,722,678,750,690,686,26,708,606,632,632,632,584,28,576,474,536,512,464,436,24,448,408,528,

602,638,640,26,658,548,620,534,422,482,26,616,612,622,598,614,614,24,644,506,522,622,526,26,22,738,582,592,408,466,568,

44,680,652,598,642,714,562,38,778,796,742,460,610,42,38,732,650,670,618,574,42,22,610,456,22,630,408,390,24],index=dates)

df=pd.DataFrame({'Consumption':dataseries})

df

sm.tsa.arma_order_select_ic(df, max_ar=4, max_ma=2, ic='aic')

结果如下:{'aic': 0 1 2

0 1262.244974 1264.052640 1264.601342

1 1264.098325 1261.705513 1265.604662

2 1264.743786 1265.015529 1246.347400

3 1265.427440 1266.378709 1266.430373

4 1266.358895 1267.674168 NaN, 'aic_min_order': (2, 2)}

但当我使用奥古斯丁-迪基-富勒检验时,检验结果表明该序列不是平稳的。d_order0=sm.tsa.adfuller(dataseries)

print 'adf: ', d_order0[0]

print 'p-value: ', d_order0[1]

print'Critical values: ', d_order0[4]

if d_order0[0]> d_order0[4]['5%']:

print 'Time Series is nonstationary'

print d

else:

print 'Time Series is stationary'

print d

输出如下:adf: -1.96448506629

p-value: 0.302358888762

Critical values: {'5%': -2.8970475206326833, '1%': -3.5117123057187376, '10%': -2.5857126912469153}

Time Series is nonstationary

1

当我用R交叉验证结果时,它表明默认序列是平稳的。那么为什么奥古斯丁-迪基-富勒检验会产生非平稳序列呢?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值