99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀R語言ARIMA預測交通流量
R語言ARIMA預測交通流量
2016-10-12
收藏

R語言ARIMA預測交通流量

交通流量預測分析研究是智能運輸系統(tǒng)的核心研究內容之一,實例使用ARIMA(p,d,q)-差分自回歸移動平均模型,AR是自回歸, p為自回歸項; MA為移動平均,q為移動平均項數,d為時間序列成為平穩(wěn)時所做的差分次數。所謂ARIMA模型,是指將非平穩(wěn)時間序列轉化為平穩(wěn)時間序列,然后將因變量僅對它的滯后值以及隨機誤差項的現值和滯后值進行回歸所建立的模型。ARIMA模型根據原序列是否平穩(wěn)以及回歸中所含部分的不同,包括移動平均過程(MA)、自回歸過程(AR)、自回歸移動平均過程(ARMA)以及ARIMA過程。

具體代碼及描述如下:

  1. ##############################################ARIMA############################################
  2. ##############根據趨勢定差分,使得滿足平穩(wěn)性#########本實例里只需進行一次差分即可##############
  3.  library(tseries)
  4.  library(DBI)
  5.  library(ROracle)
  6.  drv=dbDriver('Oracle')
  7.  conn=dbConnect(drv,'AQTS_ZHZX','AQTS_ZHZX','192.168.1.1:1521/jgyw')
  8.  rs=dbSendQuery(conn,"select d.gcsjrq, sum(ZLL) zll from dw_fact_flux d
  9.  where d.gcsjrq >= 20160201 and d.gcsjrq<20160308
  10.  group by d.gcsjrq
  11.  order by d.gcsjrq asc")
  12. datad=fetch(rs)
  13. lostjobOra <- apply(datad, 2, as.numeric)
  14. graphics.off()
  15. split.screen(c(1,3))
  16. screen(1)
  17. plot(lostjobOra[,2],type="b")
  18. #如果序列有明顯的指數趨勢,故先對數列進行對數變換得到新的數列
  19. #對具有明顯線性趨勢的數列常用的平穩(wěn)化措施是差分
  20. #lostjob  <- log(lostjobOra[,2])#取對數可以消除數據波動變大趨勢,
  21. lostjob <- lostjobOra[,2]
  22. df1 = diff(lostjob)#d=1階差分,對數列進行一階差分,可以消除數據增長趨勢性和季節(jié)性
  23. screen(2)
  24. plot(df1,type = "b")
  25. # s4_df1=diff(df1,4) # 對d=1階差分結果進行k=4步(季節(jié))差分
  26. # screen(3)
  27. # plot(s4_df1,type = "b")
  28. ##############對差分結果作ADF檢驗(單位根檢驗),確定其其是否為平穩(wěn)性##################
  29. ##############p值小于默認p值(0.05),拒絕接受存在單位根的原假設######################
  30. #####所以可以接受序列是平穩(wěn)的。因為這就可以對序列進行ARMA模型分析了##################
  31. adf.test(df1)
  32. #實際上,我們是對一階差分后的序列在進行ARMA建模,
  33. #因此,建立的模型從原序列角度應該稱為ARIMA模型,其中,差分部分的參數d=1.
  34. #adfTest(df1,lag=6) #對差分結果進行平穩(wěn)性檢驗
  35. ################模型的識別與定界,ARIMA(p,d,q)中的pq定階##############################  
  36. #模型的識別與定階主要是通過對序列的自相關和偏自相關觀察得到的,可以看到自相關和偏自相
  37. #關的拖尾性并不明顯,因此考慮建立混合ARMA模型
  38. ###############模型選擇的方法
  39. #若平穩(wěn)序列的偏相關函數是截尾的,而自相關函數是拖尾的,可斷定序列適合AR模型
  40. #若平穩(wěn)序列的偏相關函數是拖尾的,而自相關函數是截尾的,則可斷定序列適合MA模型
  41. #若平穩(wěn)序列的偏相關函數和自相關函數均是拖尾的,則序列適合ARMA模型
  42. acf(df1,40)
  43. pacf(df1,40)
  44. ##############建立arima模型,ARIMA(1,0,0),即為AR(1)################## 
  45. ##模型參數的估計:ML表示參數的極大似然估計,CSS表示參數的條件最小二乘法以及混合方法CSS-ML估計
  46. ansCd=arima(df1,order=c(1,0,1),method='ML')   #ARMA(1,1)
  47. ans=arima(lostjob,order=c(1,1,1),method='ML')
  48. ##############檢驗模型殘差白噪聲,最主要是殘差序列的獨立性檢驗##################     
  49. #P值大于0.05,則接受原假設,認為殘差序列通過純隨機性檢驗
  50. ar(df1)$order#確定lag,或者通過pacf確定
  51. Box.test(df1,lag=5,type='Ljung')
  52. Box.test(ans$residuals,lag=5,type='Ljung')
  53. #Box.test(ansCd$residuals,lag=5,type='Ljung')
  54. ##############預測##################       
  55.  predict(ans,10)
  56. #######R語言中有專門的forecast包,包里的auto.arima函數可以對序列模型進行智能識別建模 


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數1:配置參數 // 參數2:回調,回調的第一個參數驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }