拓端數據tecdat|R語言ARIMA,SARIMA預測道路交通流量時間序列:季節性、周期性


原文鏈接:http://tecdat.cn/?p=20434

 

本文從實踐角度討論了季節性單位根。我們考慮一些時間序列 ,例如道路上的交通流量,

  1.  
     
  2.  
    > plot(T,X,type="l")
  3.  
    > reg=lm(X~T)
  4.  
    > abline(reg,col="red")

 

如果存在趨勢,我們應該將其刪除,然后處理殘差 

  1.  
    > Y=residuals(reg)
  2.  
    > acf(Y,lag=36,lwd=3)

我們可以看到這里有一些季節性。第一個策略可能是假設存在季節性單位根,因此我們考慮 ,我們嘗試找到ARMA模型。考慮時間序列的自相關函數,

  1.  
    > Z=diff(Y,12)
  2.  
    > acf(Z,lag=36,lwd=3)

 

或偏自相關函數

 

第一個圖可能建議MA(1),而第二個圖可能建議AR(1)時間序列。我們都嘗試。

  1.  
     
  2.  
    arima
  3.  
    Coefficients:
  4.  
    ma1 intercept
  5.  
    -0.2367 -583.7761
  6.  
    s.e. 0.0916 254.8805
  7.  
     
  8.  
    sigma^2 estimated as 8071255: log likelihood = -684.1, aic = 1374.2

可以認為是白噪聲(如果您不確定,請嘗試 Box-Pierce或Ljung-Box 測試)。

  1.  
     
  2.  
    arima
  3.  
    Coefficients:
  4.  
    ar1 intercept
  5.  
    -0.3214 -583.0943
  6.  
    s.e. 0.1112 248.8735
  7.  
     
  8.  
    sigma^2 estimated as 7842043: log likelihood = -683.07, aic = 1372.15

也可以視為白噪聲。到目前為止,我們有

對於一些白噪聲 。這表明以下的SARIMA結構 

  1.  
     
  2.  
    arima
  3.  
    Coefficients:
  4.  
    ar1
  5.  
    -0.2715
  6.  
    s.e. 0.1130
  7.  
     
  8.  
    sigma^2 estimated as 8412999: log likelihood = -685.62, aic = 1375.25

現在,如果我們認為我們沒有季節性單位根,而在AR結構中只是一個大的自回歸系數。讓我們嘗試類似

自然而然的猜測是該系數應該(可能)接近於1。讓我們嘗試一下

  1.  
     
  2.  
    arima
  3.  
    Coefficients:
  4.  
    ar1 sar1 intercept
  5.  
    -0.1629 0.9741 -684.9455
  6.  
    s.e. 0.1170 0.0115 3064.4040
  7.  
     
  8.  
    sigma^2 estimated as 8406080: log likelihood = -816.11, aic = 1640.21

這與我們先前(以某種方式)獲得的結果具有可比性,因此我們可以假設該模型是一個有趣的模型。我們將進一步討論:第一個系數可能是不重要的。

這兩個模型有什么區別?

從(非常)長期的角度來看,模型是完全不同的:一個模型是平穩的,因此預測將趨向於平均值,而另一個模型則是按季節的,因此置信區間將增加。我們得到

> pre(model2,600,b=60000)

 

對於平穩的

> prev(model3,600,b=60000)

 

但是,使用這些模型進行的預測僅適用於短期范圍。在這種情況下,這里的預測幾乎相同,

> pre(model2,36,b=60000)

 

> pre(model3,36,b=60000)

 

現在,如果我們回到第二個模型,自回歸系數可能被認為是不重要的。如果我們將其刪除怎么樣?

  1.  
     
  2.  
    Call:
  3.  
    seasonal = list(order = c(1, 0, 0)
  4.  
    Coefficients:
  5.  
    sar1 intercept
  6.  
    0.9662 -696.5661
  7.  
    s.e. 0.0134 3182.3017
  8.  
     
  9.  
    sigma^2 estimated as 8918630: log likelihood = -817.03, aic = 1640.07

如果我們看一下(短期)預測,我們得到

> pre(model,36,b=32000)

 

有什么區別嗎?如果我們看一下預測結果數字,我們會得到

數字不同,但差異不大(請注意置信區間的大小)。這可以解釋為什么在R中,當我們在自回歸過程時 ,得到一個模型要估計的參數https://latex.codecogs.com/gif.latex?p,即使其中不重要,我們通常也會保留它們來預測。


最受歡迎的見解

1.用於NLP的Python:使用Keras的多標簽文本LSTM神經網絡分類

2.Python中利用長短期記憶模型LSTM進行時間序列預測分析 – 預測電力消耗數據

3.python在Keras中使用LSTM解決序列問題

4.Python中用PyTorch機器學習分類預測銀行客戶流失模型

5.R語言多元Copula GARCH 模型時間序列預測

6.在r語言中使用GAM(廣義相加模型)進行電力負荷時間序列分析

7.R語言中ARMA,ARIMA(Box-Jenkins),SARIMA和ARIMAX模型用於預測時間序列數

8.R語言估計時變VAR模型時間序列的實證研究分析案例

9.用廣義加性模型GAM進行時間序列分析


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM