日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2025/3/15 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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']))

#返回值依次為:adf, pvalue p值, usedlag, nobs, critical values臨界值 , icbest, regresults, resstore

#單位檢測統計量對應的p 值顯著大于 0.05 , 說明序列可以判定為 非平穩序列

#對數據進行差分后得到 自相關圖和 偏相關圖

D_data = data.diff().dropna()

D_data.columns = [u'流量差分']

#畫出差分后的時序圖

#D_data.plot()

#plt.show()

#畫出自相關圖

#plot_acf(D_data)

#plt.show()

#畫出偏相關圖

#plot_pacf(D_data)

#plt.show()

print(u'差分序列的ADF 檢驗結果為: ', adfuller(D_data[u'流量差分'])) #平穩性檢驗

#一階差分后的序列的時序圖在均值附近比較平穩的波動, 自相關性有很強的短期相關性, 單位根檢驗 p值小于 0.05 ,所以說一階差分后的序列是平穩序列#

print(u'差分序列的白噪聲檢驗結果:',acorr_ljungbox(D_data, lags= 1)) #返回統計量和 p 值

#對模型進行定階

print(D_data)

#一般階數不超過 length /10,但由于計算性能限制,故暫取leneth/30

pmax = int(len(D_data) / 30)

qmax = int(len(D_data) / 30)

bic_matrix = []

#計算不同p、q值對應的準確性收益

#print(bic_matrix)

for i in range(pmax+1):

temp=[]

for j in range(qmax+1):

try:

a=ARIMA(data,(i,1,j)).fit().bic

temp.append(a)

except:

temp.append(None)

finally:

bic_matrix.append(temp)

print(bic_matrix)

bic_matrix = pd.DataFrame(bic_matrix) #將其轉換成Dataframe 數據結構

p,q = bic_matrix.stack().idxmin() #使用 idxmin 找出最小值的位置

print(u'BIC 最小的p值 和 q 值:%s,%s' %(p,q)) # BIC 最小的p值 和 q 值:0,1

#建立ARIMA 模型,ARIMA(0,1,1)

model = ARIMA(data, (p,1,q)).fit()

# model.summary2() #生成一份模型報告

# model.forecast(1) #進行1個時間單位的預測, 返回預測結果, 標準誤差, 和置信區間

print('predict data:')

print((model.forecast(1)[0][0]))

通過上述的代碼,我們就建立了一個關于該樣本的ARIMA模型,其模型的p、d、q參數分別為0、1、1。通過下述的代碼,使用該模型進行100步的預測:

p=0

d=1

q=1

result1=[]

for i in range(100):

temp=[]

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

model = ARIMA(data, (p,d,q)).fit()

a = pd.read_csv(filename, index_col = 'timestamp').iloc[288+i:289+i,:].values[-1][0]

b = model.forecast(1)[0][0]

temp.append(a)

temp.append(b)

result1.append(temp)

result1=pd.DataFrame(result1)

print(result1)

得到實際觀察值和預測值如下,左側為觀察值,右側為預測值:

0 1

0 9 8.923906

1 12 8.957891

2 9 9.509028

3 6 9.455487

4 7 8.869332

.. .. ...

95 10 8.668516

96 5 8.893771

97 10 8.183186

98 15 8.506519

99 9 9.691928

[100 rows x 2 columns]

在論文《基于 ARIMA 模型的短時交通流實時自適應預測》(韓超,宋蘇 ,王成紅)中,作者根據他們的數據集求得了ARIMA(2,1,2)的模型,將其簡單挪用過來如下:

p=2

d=1

q=2

result2=[]

for i in range(100):

temp=[]

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

model = ARIMA(data, (p,d,q)).fit()

a = pd.read_csv(filename, index_col = 'timestamp').iloc[288+i:289+i,:].values[-1][0]

b = model.forecast(1)[0][0]

temp.append(a)

temp.append(b)

result2.append(temp)

result2=pd.DataFrame(result2)

print(result2)

得到實際觀察值和預測值如下,左側為觀察值,右側為預測值:

0 1

0 9 8.787160

1 12 8.915429

2 9 9.263472

3 6 9.627119

4 7 9.185042

.. .. ...

95 10 9.379399

96 5 9.061870

97 10 8.501785

98 15 8.161913

99 9 9.204021

[100 rows x 2 columns]

還可以使用剛才提到的文章定義的評價指標進行結果分析,代碼如下:

def RE(r,p):

if r>p:

return (r-p)/r

else:

return (p-r)/r

rt1=[]

for i in result1.values:

temp=[]

for j in i:

temp.append(j)

temp.append(RE(i[0],i[1]))

rt1.append(temp)

c=0

sum=0

for i in rt1:

if i[-1]!=float('inf'):

s=float(i[-1])

sum+=s

c+=1

print(c)

print(sum/c)

rt1=pd.DataFrame(rt1)

print(rt1)

rt2=[]

for i in result2.values:

temp=[]

for j in i:

temp.append(j)

temp.append(RE(i[0],i[1]))

rt2.append(temp)

c=0

sum=0

for i in rt2:

if i[-1]!=float('inf'):

s=float(i[-1])

sum+=s

c+=1

print(c)

print(sum/c)

rt2=pd.DataFrame(rt1)

print(rt2)

得到兩個模型的預測評價如下:

95

0.48252386991776014

0 1 2

0 9.0 8.923906 0.008455

1 12.0 8.957891 0.253509

2 9.0 9.509028 0.056559

3 6.0 9.455487 0.575914

4 7.0 8.869332 0.267047

.. ... ... ...

95 10.0 8.668516 0.133148

96 5.0 8.893771 0.778754

97 10.0 8.183186 0.181681

98 15.0 8.506519 0.432899

99 9.0 9.691928 0.076881

[100 rows x 3 columns]

95

0.46626540909769215

0 1 2

0 9.0 8.923906 0.008455

1 12.0 8.957891 0.253509

2 9.0 9.509028 0.056559

3 6.0 9.455487 0.575914

4 7.0 8.869332 0.267047

.. ... ... ...

95 10.0 8.668516 0.133148

96 5.0 8.893771 0.778754

97 10.0 8.183186 0.181681

98 15.0 8.506519 0.432899

99 9.0 9.691928 0.076881

[100 rows x 3 columns]

可以看到,即便是針對另外一個數據集,上述文獻構建的預測模型取得了約0.47的MAPE值,而自行計算得到的模型取得了約0.48的MAPE值,這說明文獻中構建的模型的預測結果總體上還是右于本次自行構建的模型的。

總結

以上是生活随笔為你收集整理的python交通流预测代码_使用ARIMA模型进行的短时交通流预测和结果分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧洲黄视频 | 国产视频精品一区二区三区 | 黄色国产一级片 | 国产精品第6页 | 天天拍夜夜拍 | 91精品免费 | 国产另类综合 | 久久久久久爱 | 欧美性生活一区二区三区 | 国产精品av久久久久久无 | 丰满少妇被猛烈进入高清播放 | 青青草久久爱 | 欧美日韩视频免费观看 | 精品国产www | 国产精品高潮呻吟av | 午夜aaa| 国产 中文 字幕 日韩 在线 | 欧亚毛片| 青青伊人久久 | 精品一区二区三区日韩 | 都市激情校园春色 | 狠狠爱天天干 | 激情小说一区 | 国产国语亲子伦亲子 | 亚洲午夜精品久久久 | 国产传媒中文字幕 | av成人在线免费观看 | 免费黄在线| 天天干天天操天天 | 高h免费视频| 美女性生活视频 | 少妇三级| 亚洲人在线播放 | 亚洲欧洲国产日韩 | 超薄肉色丝袜一区二区 | 日韩免费在线视频观看 | 少妇又紧又色 | 日本xxxxxxxxx| 99国产精品国产精品九九 | 亚洲熟妇一区二区 | 免费黄色一级 | 九九热精品免费视频 | 国产精品xxx在线观看 | 成人av专区 | 亚洲一区观看 | 久久久免费精品视频 | 我的邻居在线观看 | 日本不卡网站 | 午夜精品久久久久久久久久久久久 | a天堂在线 | 一本一道久久a久久精品蜜桃 | av电影在线不卡 | 亚洲av无码一区东京热久久 | 免费看国产黄色片 | 国产偷亚洲偷欧美偷精品 | 欧洲a级片 | 九热在线 | 欧美日韩高清免费 | 国产成人愉拍精品久久 | 91成人在线免费视频 | 人成在线视频 | 在线观看国产精品视频 | 欧美男女交配视频 | 国产无码日韩精品 | 97黄色片 | 69福利视频| 欧美日韩爱爱 | 波多野在线观看 | 欧美三级自拍 | 欧美激情视频一区二区三区在线播放 | 欧美天堂久久 | 日韩av男人的天堂 | 福利视频网站 | 538精品在线视频 | 国产成人av一区二区三区在线观看 | aaa国产 | 人人狠狠综合久久亚洲 | 激情播播网| 午夜国产福利 | 国产福利影院 | 日本亚洲欧洲色 | 日韩一区二区三区精品视频 | 免费日韩av | 日本泡妞xxxx免费视频软件 | 少妇高潮视频 | 国产欧美亚洲精品 | 一级爱爱片 | 亚洲国产精品成人综合色在线婷婷 | 国产成人短视频 | 国产一级免费在线观看 | 国产精品亚洲色图 | 久操伊人 | 亚洲精品在线观看视频 | 91tv国产成人福利 | 波多野结衣视频在线播放 | 第一页在线视频 | 在线观看麻豆 | 国产99免费 | 午夜国产福利在线观看 |