繁体   English   中英

如何处理 R 中时间序列中的 NA?

[英]How to deal with NA's in timeseries in R?

我正在尝试建立一个 ARIMA 模型,以预测办公室的入住率。 数据中有一些 NA,那些日期是国定假日,这意味着没有人在办公室,因此没有数据。 我如何处理这些 NA 值来构建 ARIMA 模型?

NA 示例:

    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

R 中的 ARIMA 模型可以毫无问题地处理 NA。 STL 分解不处理 NA,这是您的错误来源。

如果你想做一个 STL,你可以使用forecast包中的mstl来为你估计缺失值。

library(forecast)
library(ggplot2)
USAccDeaths[20:23] <- NA
USAccDeaths %>%
  mstl(s.window="periodic") %>%
  autoplot()


USAccDeaths %>%
  auto.arima() %>%
  forecast(h=24) %>%
  autoplot()

reprex 包(v0.3.0) 创建于 2019-11-30

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM