python交通流预测代码_使用ARIMA模型进行的短时交通流预测和结果分析

首先要讲的是,在短时交通流预测领域,ARIMA模型是一种相当粗糙的基于时间序列的预测方法,相应地,这种预测方法的准确性也不高。同时,ARIMA方法也不在我的研究范围内,所以本次实验就直接使用网络上现成的python第三方库进行实现,不再重新造轮子。

ARIMA模型表达为ARIMA(p,d,q),是在ARMA模型的基础上新引入了'I'也就是差分的思想。ARIMA模型由三个部分组成,分别是AR(p)模型、I(d)差分方法、MA(q)模型。

AR(p)模型(AutoRegressive):p即为时间序列的长度,AR(p)模型的预测值是将过去p长度的时间序列的各真实值进行加权平均得到的。

I(d)差分:d为差分的阶数。差分的目的是将原本不平稳的时间序列经过差分,转化为更加平稳的序列。d的取值取决于原序列经过几次差分后可以转化为平稳或者弱平稳的序列。

MA(q)模型(MovingAverage):MA 模型适用于平稳的序列上,q也表示了过去的供预测的时间序列的长度,而通过MA模型进行的预测是将过去q个时间段的误差值取不同权重进行累加,再同平稳序列的均值加和得到的。

基于上述的思想,ARIMA(p,d,q)模型先经过d阶差分将原序列转化为较为平稳的时间序列,再通过计算确定效果最好的p、q的值,最后通过p、d、q的取值建立一个ARIMA模型。

实现代码如下:

import pandas as pd

from statsmodels.stats.diagnostic import acorr_ljungbox

from statsmodels.tsa.arima_model import ARIMA

from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

import matplotlib.pyplot as plt

from statsmodels.tsa.stattools import adfuller

##通过数据的前288行计算p、d、q取值

filename = r'train13720.csv'

data = pd.read_csv(filename, index_col = 'timestamp').iloc[:288,:]

#画出折线图

#data.plot()

#plt.show()

#画出自相关性图

#plot_acf(data)

#plt.show()

#原始序列的平稳性检测

print('原始序列的检验结果为:',adfuller(data['hourly_traffic_count

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值