我正在尝试建立ARIMA模型,以预测办公室的入住率。数据中有一些NA,这些日期是国定假日,这意味着没有人在办公室,因此没有数据。如何处理这些NA值以建立ARIMA模型?
不适用的示例:
2019-04-19 09:00:00 12.878788
2019-04-19 10:00:00 19.848485
2019-04-19 11:00:00 21.969697
2019-04-19 12:00:00 11.212121
2019-04-19 13:00:00 14.090909
2019-04-19 14:00:00 16.363636
2019-04-19 15:00:00 22.727273
2019-04-19 16:00:00 7.727273
2019-04-22 09:00:00 NA
2019-04-22 10:00:00 NA
2019-04-22 11:00:00 NA
2019-04-22 12:00:00 NA
2019-04-22 13:00:00 NA
2019-04-22 14:00:00 NA
2019-04-22 15:00:00 NA
2019-04-22 16:00:00 NA
2019-04-23 09:00:00 23.636364
2019-04-23 10:00:00 49.545455
2019-04-23 11:00:00 57.575758
2019-04-23 12:00:00 48.030303
2019-04-23 13:00:00 45.151515
2019-04-23 14:00:00 35.606061
2019-04-23 15:00:00 25.151515
2019-04-23 16:00:00 8.333333
我尝试使用此代码:
plot(stl(ts, na.action = na.omit))
但是我得到了这个错误:
Error in na.omit.ts(as.ts(x)) : time series contains internal NAs
答案 0 :(得分:1)
R中的ARIMA模型可以毫无问题地处理NA。 STL分解不能处理NA,这是您的错误来源。
如果要执行STL,可以使用mstl
包中的forecast
来为您估计丢失的值。
library(forecast)
library(ggplot2)
USAccDeaths[20:23] <- NA
USAccDeaths %>%
mstl(s.window="periodic") %>%
autoplot()
USAccDeaths %>%
auto.arima() %>%
forecast(h=24) %>%
autoplot()
由reprex package(v0.3.0)于2019-11-30创建