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

问题描述 投票:0回答:1

我正在尝试建立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 time-series na forecasting arima
1个回答
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创建

© www.soinside.com 2019 - 2024. All rights reserved.