[英]Using R - Need advice predicting next year based on irregular time-series
關於以下查詢,我需要建議:“根據您的觀察,您能說出2019年相同月份的負荷情況嗎?”
df的str()/ head()如下所示:
data.frame': 683 obs. of 10 variables:
$ Route : chr "A" "B" "A" "A" ...
$ FlightNumber: int 770 279 128 235 434 543 556 663 770 279 ...
$ Capacity : int 375 345 375 375 375 375 375 375 375 345 ...
$ Booked : int 379 314 374 379 373 377 379 378 379 294 ...
$ DDate : Date, format: "2018-05-01" "2018-05-01" "2018-05-02" "2018-05-03" ...
$ Year : num 2018 2018 2018 2018 2018 ...
$ Month : num 5 5 5 5 5 5 5 5 5 5 ...
$ Day : int 1 1 2 3 4 5 6 7 8 8 ...
$ Hour : int 12 20 12 12 12 12 12 12 12 20 ...
$ load : num 1.011 0.91 0.997 1.011 0.995 ...
Route FlightNumber Capacity Booked DDate Year Month Day Hour load(=Booked/Capacity) 1 A 770 375 379 2018-05-01 2018 5 1 12 1.0106667 2 B 279 345 314 2018-05-01 2018 5 1 20 0.9101449 3 A 128 375 374 2018-05-02 2018 5 2 12 0.9973333 4 A 235 375 379 2018-05-03 2018 5 3 12 1.0106667 5 A 434 375 373 2018-05-04 2018 5 4 12 0.9946667 6 A 543 375 377 2018-05-05 2018 5 5 12 1.0053333
如果我繪制數據,它看起來像這樣: geom_point
更新 :我最終做了以下事情:
dat_A <- test %>% select(Route, DDate, load) %>% filter(Route == "A")
ts_A <- ts(dat_A$load, start = c(2017,5), end = c(2018,11), frequency = 1*12)
forecast(ts_A, h=12) %>% plot()
#Double checking
fit <- auto.arima(ts_A)
summary(fit)
predict <- forecast(fit,n=1)
plot(predict)
plot.ts(predict$residuals)
qqnorm(predict$residuals)
acf(predict$residuals)
預測聽起來不錯嗎? 即使我也通過arima嘗試了train(1:480)/ validat(481:611),然后用0.036的RMSE進行了預測,但看起來還是比較平坦的。
要將vector
或data.frame
轉換為時間序列,可以使用:
dat <- as.ts(as.matrix(dat))
這是您可以嘗試的解決方案。 我可以指導您使用以下函數生成時間序列。 首先加載您的數據,說它是df
並且其Booked
因此您可以使用以下方法生成可以輕松擬合的時間序列。
ts_data = ts(df$Booked, start = c(2017,1), end = c(2018,12), frequency = 12)
現在,您只需在此ts_data
上應用時間序列預測即可預測2019年的價值。我將其余代碼留給您。 謝謝!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.