iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 19
0
AI & Data

機器學習_資料採礦_透過數據協助決策_R語言系列 第 19

[Day 19] 政府開放資料_每日各站點進出站人數_R語言實現時間序列分析-1

  • 分享至 

  • xImage
  •  

ARMIA模型,全名為自回歸積分滑動平均模型,又稱為box-jenkins模型,由自回歸、移動平均、差分次數,將非平穩時間序列轉化為平穩時間序列,然後將因變量僅對它的滯後值以及隨機誤差項的現值和滯後值進行回歸所建立的模型。
(感謝百度百科)

我們從眾多資料當中用which的方式僅挑出站名為"關山"的資料並且命名為a

a = data[which(data$STOP_NAME == "關山"),]

因為這資料記錄每一天的進出站狀況,其實是有些過詳盡了,我想要先進行每一個月的預測,因此我用substr(資料,開始,結束)把日期"天數"的部分處理掉。

a$BOARD_DATE = substr(a$BOARD_DATE,1,6) 

並且將每一天的資料全部sum起來變成了每一個月的資料。

newdata = (a %>% group_by(BOARD_DATE) %>% summarise(sum(進站)))[,2] %>% unlist()

https://ithelp.ithome.com.tw/upload/images/20181031/20111603ZmCZxCu3TG.png

library(tseries)
plot.ts(newdata)
#用tsdisplay()可以進行資料的觀測
tsdisplay(newdata)

https://ithelp.ithome.com.tw/upload/images/20181031/201116037AcnJcP3dH.png
然後我們將資料的最後一年來檢測資料準不準,因此我們看調最後一年的資料。

length(newdata)-12# = 150
newdata_t<-ts(as.vector(newdata[1:150]),frequency=12,start=c(2005,1))
#再看一下訓練資料集的圖形
tsdisplay(newdata_t)

https://ithelp.ithome.com.tw/upload/images/20181031/20111603vTZpd75YLC.png
我們發現資料有明顯向上的趨勢,因此我們進行一次分差(減上一個數)
https://ithelp.ithome.com.tw/upload/images/20181031/201116030jUznzwayg.png

s2<-diff(newdata_t,1)
#看起來都在0附近了,很平穩,有個adf檢定,可以看資料是否平穩(是否存在單位根)
adf.test(s2)
tsdisplay(s2)

#檢驗通過(p < 0.05,顯著拒絕存在單位根),資料穩定之後進行預測會更加準確。

參考出處:https://blog.csdn.net/gdyflxw/article/details/55509656


上一篇
[Day 18] 政府開放資料_每日各站點進出站人數_R語言_初談時間序列分析
下一篇
[Day 20] 政府開放資料_每日各站點進出站人數_R語言_時間序列分析-2
系列文
機器學習_資料採礦_透過數據協助決策_R語言30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言