python实现时间序列预测_【时间序列分析】ARMA预测GDP的python实现

最近看时间序列,由于统计学知识的薄弱,略感吃力。

作为码农,自然有“纸上得来终觉浅,绝知此事要coding“的思想。因此做了一个ARMA的例子,将建模流程过一遍,旨在加深理解,预测准确性并不是主要目的。

一.数据获取与加工

1.引入所用到的库

2.获取GDP数据并重新排序

3.转为Series

二.数据平稳化

1.定义单位根检验的函数

拿到时间序列数据后,要进行平稳性检验,主要有两种方法:肉眼检验法和单位根检验法。

肉眼优点是简单省事,但是缺点是不准确,不通用。肉眼检验主要看看序列图、ACF、PACF。

ARMA公式其实是一个随机差分方程,序列要平稳,那方程的解应该在单位圆内,或者对应的逆特征方程的特征根在单位圆外。

根据时间序列的一般特性,方程的解不太可能落在单位元外。因为如果在单位圆外,意味着历史数据的影响随着时间的增加而变大。现实中基本不会有这样的情况。因此,不在圆上,就在圆内,只需要检验是否落在单位圆上即可,这就是单位根检验。

落在单位圆上,是单位根,序列不平稳(H0);否则序列平稳。单位根检验常用Augmented Dickey-Fuller test来做,本例也是用这个方法。另外,下函数还绘制了滑动的均值和方差。

2.原序列检验

p-value很大,不能拒绝原假设。但是我们能看出序列应该是指数函数,因此取log后再检验。

3.进行log后的序列检验

p-value也

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值