如何调整 ARIMA 模型以考虑缺失的季节?

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

上下文:每日时间序列缺少测量值。我觉得尝试“链接”观察到的数据来插入这些数据是合理的,因为观察到的现象似乎具有相对规则的季节性。为此,我尝试了多个 ARIMA 模型,其中包括一些带有傅里叶项的模型(如此处建议)并付诸实践那里

问题:其中一个周期的插值非常糟糕,我无法扭转模型以获得预期的插值。我的问题是:“如何调整插值算法以插值该时间序列的缺失值?”

预期输出:右侧期间的预期插值对我来说应该更像这样(这里我做了一些可怕的剪切粘贴图像工作来展示预期输出:p):

这个问题也已发布在这里https://stats.stackexchange.com/q/624908/227668因为我不确定它属于最好的地方。

示例:

library(dplyr)
library(ggplot2)
library(fabletools)
library(fable)
library(feasts)
library(urca)
# create the dataset
df <- tsibble::tsibble(
  date = seq(lubridate::ymd("2010-04-01"), lubridate::ymd("2022-08-31"), by = "1 day"),
  value = value, # please find the vector required below the question
  index = "date"
) %>% 
  dplyr::mutate(origin = case_when(is.na(value) ~ "estimate", TRUE ~ "measure")) # create column to track interpolated values
# let's try to interpolate missing values
df %>% 
  fabletools::model(arima = fable::ARIMA(value)) %>% 
  fabletools::interpolate(df) %>% 
  dplyr::left_join(dplyr::select(df, date, origin)) %>% # joining the column to track interpolated values
  ggplot(data = ., aes(x = date, y = value, color = origin)) +
  geom_point() +
  scale_x_date(date_breaks = "year", labels = ~ lubridate::year(.x)) +
  theme_bw()

制作玩具数据集所需的数据:

value <- c(54, 54, 57, 58, 58, 55, 53, 52, 52, NA, NA, NA, NA, NA, NA, 
  47, 46, 46, 45, 45, 45, 44, 44, 43, 42, 42, 42, 42, 41, 40, 40, 
  40, 41, 42, 42, 41, 41, 40, 40, 39, 39, 39, 40, 39, 39, 38, 37, 
  36, 35, 34, 32, 30, 27, 25, 22, 21, 21, 20, 20, 20, 20, 20, 19, 
  19, 18, 17, 17, 19, 19, 20, 28, 31, 30, 30, 28, 26, 23, 21, 19, 
  18, 17, 16, 15, 14, 12, 11, 11, 10, 9, 9, 8, 8, 8, 7, 7, 7, 7, 
  7, 8, 8, 8, 8, 8, 9, 21, 38, 36, 35, 34, 38, 43, 42, 42, 41, 
  41, 41, 41, 41, 41, 41, 41, 40, 40, 39, 39, 39, 39, 39, 38, 38, 
  38, 38, 39, 40, 40, 40, 42, 71, 65, 66, 60, 57, 54, 53, 52, 52, 
  52, 51, 59, 59, 57, 56, 55, 54, 53, 52, 51, 51, 50, 51, 57, 68, 
  66, 63, 61, 60, 58, 57, 57, 58, 58, 58, 57, 57, 57, 56, 56, 56, 
  56, 57, 57, 57, 58, 59, 69, 66, 64, 64, 64, 64, 63, 62, 61, 61, 
  60, 60, 60, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 60, 59, 
  59, 58, 58, 58, 59, 59, 58, 58, 58, 58, 58, 60, 69, 77, 78, 76, 
  78, 77, 74, 74, 74, 73, 73, 72, 72, 72, 72, 72, 72, 72, 72, 71, 
  70, 69, 68, NA, NA, NA, NA, NA, NA, NA, NA, NA, 82, 78, 74, 73, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, 85, 82, 79, 80, 78, 81, 81, 79, 76, 76, 
  75, 75, 74, 75, 75, 74, 75, 75, 75, 75, 79, 78, 75, 74, 73, NA, 
  NA, NA, NA, 77, 74, 73, 72, 71, 71, 72, 74, 74, 74, 75, 75, 74, 
  74, 73, 73, 75, 75, 74, 75, 81, 77, 78, 79, 77, 75, 74, 73, 72, 
  71, 71, 70, 69, 68, 67, 66, 66, 65, 65, 64, 64, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 22, 21, 21, 21, 20, 20, 
  20, 19, 19, 19, 19, 19, 18, 18, 18, 18, 17, 17, 17, 17, 17, 17, 
  17, 17, 18, 18, 18, 19, 19, 18, 18, 18, 18, 19, 19, 20, 21, 22, 
  22, 21, 21, 20, 19, 19, 19, 19, 18, 18, 17, 17, 17, 17, 17, 17, 
  17, 17, 16, 16, 16, 16, 17, 17, 19, 27, 31, 33, 35, 36, 36, 36, 
  36, 36, 36, 36, 37, 38, 37, 37, 37, NA, NA, NA, NA, NA, 46, 46, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, 61, 60, 63, 61, 62, 61, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, 57, 57, 56, 57, 59, 58, 58, 57, 56, 
  56, 56, 58, 58, 60, 63, 63, 62, 62, 62, 62, 62, 61, 61, 60, 61, 
  61, 60, 60, 60, 60, 60, 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 
  60, 65, 71, 73, 76, 75, 73, 74, 73, 72, 74, 75, 74, 74, 78, 77, 
  78, 77, 77, 76, 75, 73, 74, 73, 72, 72, 72, 73, 77, 77, NA, NA, 
  NA, NA, NA, NA, 75, 74, 74, 73, 72, 72, 73, 73, 73, 73, 72, 71, 
  75, 76, 76, 75, 74, 75, 76, 76, 76, 76, 76, 75, 74, 73, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 86, NA, 
  NA, NA, 79, 77, 76, 74, 74, 74, 73, 72, 71, 71, 71, 71, 78, 78, 
  78, 77, 75, 73, 72, 72, 71, 71, 71, 69, 69, 69, 69, 68, 67, 65, 
  63, 62, 60, 59, 57, 55, 54, 53, 53, 52, 52, 50, 49, 49, 49, 48, 
  48, 48, 58, 66, 65, 65, 62, 60, 59, 58, 59, 60, 59, 61, 60, 61, 
  65, 66, NA, NA, 70, 68, 66, 65, 65, 68, 68, 69, 68, 66, 64, 64, 
  62, 60, 59, 57, 55, 54, 55, 54, 53, 51, 50, 50, 50, 50, 48, 45, 
  41, 38, 36, 34, 33, 32, 31, 31, 30, 30, 30, 31, 39, 51, 49, 47, 
  54, 55, 65, 60, 64, 66, 61, 66, 63, 60, 59, 61, 58, 61, 64, 61, 
  59, 57, 57, 56, 55, 53, 52, 52, 57, 59, 60, 65, 63, 61, 64, 69, 
  70, 70, 69, 67, 65, 64, 62, 62, 61, 60, 59, 58, 59, 61, 60, 61, 
  61, 61, 61, 60, 60, 60, 62, 61, 61, 60, 60, 59, 58, 57, 56, 55, 
  55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 
  54, 54, 54, 54, 54, 54, 53, 53, 52, 52, 51, 49, 48, 48, 47, 47, 
  47, 45, 44, 44, 42, 41, 41, 40, 39, 38, 38, 38, 38, 37, 37, 36, 
  36, 36, 36, 41, 46, 52, 65, 64, 65, 63, 62, 64, 65, 66, 67, 66, 
  67, 68, 67, 67, 67, 65, 64, 63, 63, 62, 62, 62, 62, 64, 64, 64, 
  68, 74, 73, 72, 71, 70, 69, 68, 72, 74, 73, 73, 73, 72, 72, 72, 
  77, 75, 73, 73, 73, 75, 76, 74, 73, 72, 72, 72, 73, 73, 74, 77, 
  79, 77, 77, 80, 79, 77, 77, 76, 74, 72, 77, 79, 78, 78, 78, 77, 
  81, 78, 80, 78, 76, 76, 76, 79, 78, 76, 75, 74, 78, 77, 76, 75, 
  75, 75, 74, 74, 75, 76, 75, 76, 77, 75, 76, 77, 76, 76, 76, 77, 
  77, 78, 78, 79, 79, 78, 82, 82, 80, 78, 77, 80, 79, 79, 77, 79, 
  81, 81, 79, 79, 76, 79, 81, 78, 76, 80, 80, 79, 78, 77, 77, 75, 
  74, NA, NA, NA, NA, NA, 80, 79, 78, 77, 75, 74, 72, 73, 74, 75, 
  74, 75, 77, 78, 80, 82, 82, 80, 80, 79, 78, 77, 75, 74, 74, 73, 
  71, 71, 71, 71, 71, 71, 71, 71, 71, 70, 70, 70, 70, 69, 69, 69, 
  71, 72, 71, 70, 69, 68, 67, 66, 66, 66, 66, 65, 65, 65, 64, 63, 
  63, 63, 63, 62, 62, 62, 62, 61, 61, 60, 59, 59, 67, 65, 65, 64, 
  63, 62, 62, 61, 61, 60, 68, 78, 79, 76, 74, 77, 76, 74, 71, 70, 
  71, 71, 70, 68, 66, 64, 62, 60, 57, 55, 52, 50, 50, 49, 48, 47, 
  46, 45, 44, 43, 42, 42, 49, 67, 66, 66, 64, 62, 59, 58, 57, 59, 
  57, 55, 54, 53, 53, 53, 51, 49, 46, 43, 41, 38, 37, 35, 34, 33, 
  31, 30, 29, 28, 27, 26, 26, 25, 25, 25, 32, 56, 63, 60, 61, 63, 
  61, 58, 57, 56, 55, 54, 64, 66, 63, 62, 61, 60, 59, 58, 57, 57, 
  56, 57, 60, 59, 59, 58, 58, 60, 72, 68, 65, 64, 62, 61, 61, 60, 
  59, 59, 58, 57, 56, 56, 56, 61, 69, 67, 66, 65, 70, 69, 69, 73, 
  76, 72, 70, 68, 67, 66, 65, 64, 63, 63, 62, 61, 60, 59, 58, 57, 
  57, 57, 57, 57, 56, 56, 65, 75, 73, 74, 77, 75, 75, 75, 74, 73, 
  72, 72, 71, 71, 72, 72, 71, 70, 71, 71, 70, 70, 71, 76, 75, 75, 
  77, 77, 77, 78, 77, 78, 77, 75, 76, 77, 77, 76, 75, 75, 75, 78, 
  79, 78, 76, 75, 75, 74, 74, 74, 74, 74, 73, 73, 74, 74, 74, 76, 
  75, 75, 75, 75, 75, 75, 75, 78, 77, 76, 76, 75, 80, 79, 78, 77, 
  76, 79, 80, 78, 79, 81, 79, 79, 78, 78, 79, 78, 78, 78, 77, 76, 
  75, 75, 76, 76, 76, 76, 77, 80, 81, 79, 79, 78, 77, 77, 77, 79, 
  81, 80, 81, 83, 81, 81, 80, 79, 83, 80, 79, 78, 78, 79, 80, 81, 
  81, 79, 78, 79, 82, 81, 79, 78, 77, 77, 77, 78, 80, 79, 78, 77, 
  76, 76, 79, 82, 82, 81, 82, 80, 79, 78, 77, 76, 74, 74, 73, 72, 
  72, 71, 71, 70, 70, 70, 70, 69, 68, 69, 70, 72, 72, 71, 70, 69, 
  68, 67, 66, 65, 64, 63, 63, 62, 62, 62, 65, 66, 64, 63, 63, 63, 
  63, 63, 63, 63, 63, 63, 62, 62, 62, 62, 62, 62, 62, 63, 63, 62, 
  62, 62, 62, 62, 62, 62, 62, 68, 73, 83, 83, 85, 82, 85, 86, 82, 
  80, 78, 77, 75, 74, 80, 82, 79, 79, 78, 80, 86, 83, 82, 80, 78, 
  76, 76, 75, 89, 90, 87, 85, 83, 82, 90, 85, 82, 80, 78, 76, 75, 
  74, 74, 73, 71, 70, 69, 67, 65, 63, 61, 59, 57, 64, 71, 71, 67, 
  64, 61, 61, 63, 64, 67, 70, 78, 82, 79, 79, 77, 74, 72, 69, 65, 
  63, 65, 68, 67, 65, 63, 61, 59, 59, 63, 66, 65, 63, 61, 60, 59, 
  58, 57, 57, 59, 59, 62, 63, 66, 67, 68, 67, 72, 71, 69, 68, 67, 
  66, 66, 65, 65, 64, 66, 73, 72, 70, 69, 69, 69, 68, 67, 66, 65, 
  64, 63, 63, 62, 61, 61, 60, 59, 59, 58, 57, 56, 56, 55, 55, 56, 
  61, 61, 61, 61, 61, 61, 60, 59, 59, 58, 58, 58, 57, 57, 57, 57, 
  58, 61, 66, 64, 71, 71, 71, 70, 69, 70, 74, 72, 70, 69, 71, 74, 
  72, 72, 76, 75, 75, 74, 73, 73, 73, 73, 72, 74, 78, 76, 76, 76, 
  76, 76, 75, 75, 75, 75, 78, 82, 79, 77, 77, 77, 77, 77, 76, 76, 
  76, 76, 77, 77, 76, 77, 77, 77, 77, 80, 79, 79, 78, 79, 82, 82, 
  83, 84, 83, 85, 83, 82, 81, 84, 83, 82, 82, 81, 80, 79, 78, 79, 
  81, 85, 83, 81, 81, 82, 82, 83, 85, 84, 82, 82, 82, 84, 84, 82, 
  82, 81, 79, 82, 84, 84, 84, 83, 84, 84, 83, 83, 82, 84, 85, 85, 
  84, 83, 86, 87, 86, 87, 85, 84, 83, 83, 82, NA, NA, 80, 80, 80, 
  80, 80, 79, 79, 80, 79, 80, 79, 82, 84, 83, 85, 82, 83, 84, 84, 
  82, 82, 81, 82, 82, 81, 80, 80, 79, 78, 77, 77, 77, 77, 77, 76, 
  76, 75, 74, 74, 74, 74, 74, 74, 73, 76, 78, 81, 79, 80, 79, 78, 
  78, 78, 79, 80, 79, 78, 77, 76, 75, 73, 73, 73, 72, 71, 70, 69, 
  68, 67, 66, 65, 64, 63, 62, 61, 60, 60, 60, 61, 60, 60, 60, 60, 
  60, 60, 64, 64, 64, 63, 62, 61, 59, 58, 57, 56, 57, 57, 57, 56, 
  56, 56, 55, 54, 53, 52, 51, 50, 49, 49, 48, 48, 47, 47, 47, 47, 
  46, 56, 73, 70, 67, 65, 64, 62, 60, 58, 57, 56, 55, 53, 52, 52, 
  51, 50, 50, 52, 52, 52, 51, 50, 49, 49, 48, 46, 45, 44, 43, 42, 
  41, 41, 40, 40, 40, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 
  40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 42, 
  42, 42, 42, 42, 42, 42, 49, 60, 65, 66, 64, 68, 68, 66, 65, 63, 
  61, 63, 67, 66, 71, 72, 68, 65, 64, 64, 63, 63, 62, 62, 61, 61, 
  60, 59, 58, 58, 57, 64, 73, 72, 75, 73, 71, 71, 69, 68, 68, 70, 
  69, 70, 69, 67, 66, 65, 64, 63, 63, 62, 61, 63, 74, 73, 72, 71, 
  70, 69, 69, 68, 68, 70, 75, 75, 74, 73, 72, 72, 74, 73, 72, 71, 
  71, 70, 74, 75, 74, 73, 73, 72, 72, 71, 71, 72, 73, 72, 72, 72, 
  72, 71, 71, 71, 72, 71, 78, 76, 76, 80, 81, 81, 80, 81, 82, 81, 
  79, 79, 82, 81, 79, 79, 79, 80, 80, 80, 79, 80, 81, 81, 81, 82, 
  81, 80, 81, 82, 80, 79, 79, 79, 79, 80, 79, 79, 80, 80, 80, 80, 
  80, 80, 80, 80, 81, 83, 83, 82, 81, 82, 83, 82, 83, 83, 85, 85, 
  85, 84, 83, 83, 82, 80, 79, NA, NA, NA, 85, 83, 82, 81, 83, 82, 
  83, 83, 82, 82, 83, 84, 83, 81, 83, 83, 84, 86, 84, 83, 83, 84, 
  83, 82, 82, 83, 84, 84, 83, 82, 84, 82, 82, 81, 81, 80, 80, 80, 
  81, 84, 84, 86, 84, 83, 82, 82, 82, 81, 80, 79, 79, 78, 77, 78, 
  78, 78, 78, 78, 77, 77, 77, 77, 77, 81, 82, 82, 80, 83, 82, 81, 
  80, 78, 78, 78, 77, 77, 77, 77, 76, 76, 77, 78, 77, 76, 76, 76, 
  75, 75, 74, 73, 73, 74, 74, 75, 75, 75, 74, 75, 76, 75, 73, 73, 
  72, 71, 70, 69, 68, 70, 78, 78, 77, 75, 75, 74, 74, 73, 73, 73, 
  72, 76, 79, 77, 75, 74, 72, 71, 71, 74, 80, 78, 78, 78, 78, 77, 
  75, 73, 72, 71, 70, 70, 70, 70, 70, 73, 78, 77, 77, 78, 78, 79, 
  77, 76, 76, 74, 73, 72, 72, 71, 73, 75, 76, 74, 73, 72, 71, 70, 
  69, 68, 67, 67, 66, 67, 67, 67, 66, 66, 65, 64, 63, 63, 62, 62, 
  61, 61, 61, 60, 60, 60, 60, 60, 61, 61, 71, 74, 72, 70, 69, 67, 
  67, 66, 66, 66, 65, 65, 64, 64, 63, 62, 62, 62, 61, 61, 60, 59, 
  58, 57, 57, 57, 56, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 
  58, 58, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 
  59, 59, 58, 58, 57, 57, 57, 57, 57, 56, 56, 56, 56, 55, 55, 55, 
  55, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 
  55, 55, 55, 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 58, 68, 69, 
  70, 71, 72, 73, 73, 78, 76, 75, 78, 76, 76, 76, 75, 74, 74, 74, 
  74, 74, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 72, 72, 73, 73, 
  73, 73, 73, 73, 73, 73, 73, 82, 80, 80, 79, 78, 78, 78, 78, 78, 
  77, 76, 76, 76, 78, 80, 78, 77, NA, 84, 83, 81, 81, 83, 82, 81, 
  82, 80, 79, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 84, 83, 
  81, 80, 79, 82, 84, 82, 83, 82, 81, 81, 81, 82, 81, 79, 78, 77, 
  76, 76, 76, 75, 76, 76, 76, 77, 77, 76, 78, 81, 82, 82, 80, 82, 
  83, 83, 80, 82, 82, 80, 78, 77, 75, 75, 73, 73, 72, 73, 75, 74, 
  73, 72, 71, 70, 69, 67, 66, 65, 64, 63, 61, 61, 60, 59, 58, 58, 
  57, 57, 56, 55, 54, 54, 53, 53, 52, 52, 51, 51, 51, 51, 51, 51, 
  50, 50, 49, 49, 49, 49, 48, 48, 48, 47, 47, 47, 47, 46, 46, 46, 
  46, 46, 46, 46, 45, 45, 45, 44, 44, 43, 43, 43, 44, 44, 44, 44, 
  44, 43, 43, 42, 42, 41, 41, 40, 40, 40, 40, 39, 39, 39, 39, 39, 
  39, 39, 39, 39, 39, 39, 39, 38, 38, 38, 38, 38, 38, 38, 37, 37, 
  37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 
  39, 39, 39, 40, 40, 40, 40, 41, 42, 41, 41, 41, 41, 41, 41, 41, 
  42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 
  42, 42, 43, 43, 43, 42, 42, 42, 42, 42, 42, 42, 41, 41, 40, 39, 
  38, 37, 36, 35, 34, 34, 34, 34, 33, 33, 32, 32, 32, 32, 32, 32, 
  32, 32, 32, 32, 32, 32, 32, 32, 32, 31, 32, 32, 32, 32, 32, 32, 
  33, 33, 32, 33, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 
  33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 36, 37, 37, 38, 38, 
  39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 43, 59, 73, 73, 72, 
  70, 69, 69, 73, 72, 71, 69, 68, 71, 72, 73, 74, 80, 77, 76, 79, 
  77, 76, 76, 75, 74, 74, 77, 74, 80, 82, 80, 82, 83, 82, 81, 79, 
  80, 79, 78, 78, 77, 76, 76, 76, 77, 80, 79, 80, 82, 80, 80, 80, 
  81, 81, 79, 79, 77, 77, 77, 77, 77, 77, 76, 76, 79, 82, 82, 81, 
  80, 82, 83, 83, 79, 78, 78, 78, 78, 78, 77, 77, 80, 80, 80, 81, 
  82, 79, 80, 81, 79, 78, 78, 84, 81, 79, 80, 83, 81, 79, 78, 78, 
  80, 78, 77, 76, 75, 75, NA, NA, NA, NA, NA, NA, NA, NA, 76, 78, 
  81, 82, 82, 81, 78, 77, 76, 76, 76, 76, 77, 77, 75, 75, 75, 74, 
  73, 72, 70, 73, 79, 79, 80, 78, 77, 76, 77, 76, 75, 73, 71, 69, 
  69, 70, 68, 68, 70, 69, 68, 68, 66, 64, 62, 60, 58, 56, 55, 54, 
  53, 52, 52, 50, 50, 50, 53, 54, 53, 52, 51, 49, 47, 45, NA, NA, 
  NA, NA, NA, 38, 38, 38, 38, 37, 37, 37, 36, 35, 35, 35, 36, 43, 
  44, 44, 67, 64, 61, 58, 58, 56, 53, 51, 49, 47, 45, 43, 42, 41, 
  41, 40, 40, 39, 38, 37, 37, 36, 35, 34, 33, 32, 32, 31, 31, 31, 
  30, 30, 30, 30, 29, 29, 36, 58, 57, 56, 55, 54, 53, 52, 52, 51, 
  51, 50, 49, 49, 49, 49, 49, 48, 48, 48, 48, 48, 48, 49, 57, 58, 
  57, 56, 56, 55, 55, 55, 54, 54, 53, 53, 53, 54, 54, 54, 54, 55, 
  55, 55, 57, 57, 57, 56, 56, 55, 54, 54, 53, 52, 52, 52, 51, 51, 
  50, 49, 48, 47, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 37, 
  36, 35, 35, 34, 34, 33, 33, 37, 43, 44, 45, 45, 45, 44, 44, 44, 
  44, 43, 43, 43, 42, 42, 42, 41, 41, 41, 41, 41, 40, 40, 39, 39, 
  38, 38, 38, 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, 40, 43, 44, 
  45, 45, 46, 46, 46, 47, 47, 47, 48, 57, 63, 63, 62, 62, 62, 62, 
  62, 61, 62, 62, 62, 71, 73, 72, 72, 76, 74, 72, 74, 78, 78, 77, 
  75, 75, 75, 79, 79, 77, 77, 76, 75, 74, 74, 82, 80, 78, 78, 79, 
  79, 79, 80, 79, 78, 77, 77, 77, 77, 76, 76, 75, 75, 75, 75, 74, 
  74, 74, 74, 75, 76, 76, 77, 76, 77, 76, 75, 76, 77, 76, 76, 75, 
  74, 74, 75, 76, 83, 81, 80, 78, 80, 81, 82, 84, 81, 80, 81, 80, 
  82, 80, 81, 82, 81, 79, 79, 78, 77, 77, 76, 75, 74, 74, 73, 73, 
  72, 72, 72, 71, 70, 70, 75, 75, 75, 76, 80, 79, 81, 80, 79, 80, 
  78, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 78, 79, 
  79, 80, 79, 80, 80, 81, 80, 78, 78, 77, 77, 76, 79, 78, 79, 79, 
  79, 79, 78, 80, 78, 78, 78, 78, 78, 78, 77, 77, 77, 76, 76, 76, 
  76, 78, 77, 77, 76, 76, 75, 75, 75, 75, 76, 76, 75, 75, 76, 76, 
  76, 75, 76, 79, 82, 80, 79, 81, 81, 80, 81, 80, 79, 78, 78, 78, 
  81, 81, 80, 81, 81, 79, 79, 80, 78, 81, 80, 80, 79, 79, 80, 80, 
  82, 83, 82, 81, 81, 82, 82, 82, 83, 82, 80, 80, 81, 82, 80, 78, 
  77, 77, 77, 76, 75, 74, 73, 72, 74, 73, 72, 71, 70, 70, 69, 68, 
  67, 67, 67, 66, 66, 65, 65, 64, 63, 63, 62, 61, 61, 60, 60, 60, 
  60, 60, 59, 58, 58, 58, 58, 57, 56, 55, 53, 52, 51, 51, 50, 50, 
  51, 55, 58, 57, 56, 56, 56, 55, 55, 54, 55, 55, 56, 55, 55, 56, 
  56, 56, 56, 56, 56, 56, 55, 55, 55, 56, 56, 55, 55, 55, 55, 55, 
  55, 55, 55, 54, 54, 54, 54, 54, 54, 54, 53, 53, 53, 53, 53, 52, 
  52, 52, 51, 51, 50, 50, 49, 48, 47, 45, 44, 44, 43, 42, 42, 41, 
  41, 41, 41, 41, 40, 40, 40, 39, 39, 38, 38, 38, 37, 37, 37, 37, 
  37, 37, 36, 36, 36, 35, 35, 35, 35, 35, 35, 36, 36, 36, 35, 35, 
  35, 35, 35, 34, 34, 34, 34, 33, 33, 33, 32, 32, 32, 32, 31, 31, 
  32, 32, 32, 31, 31, 31, 31, 31, 31, 32, 32, 32, 33, 33, 34, 35, 
  35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 
  35, 35, 35, 35, 34, 34, 49, 70, 72, 72, 77, 80, 79, 76, 77, 76, 
  75, 74, 77, 74, 73, 72, 74, 76, 74, 73, 72, 71, 70, 71, 75, 75, 
  77, 76, 77, 74, 71, 73, 73, 73, 73, 73, 73, 75, 75, 75, 74, 74, 
  73, 72, 73, 74, 74, 74, 73, 73, 75, 74, 74, 73, 74, 74, 73, 73, 
  73, 74, 74, 74, 74, 74, 74, 75, 75, 76, 80, 78, 77, 77, 77, 77, 
  77, 79, 79, 78, 78, 81, 79, 79, 78, 78, 77, 80, 81, 81, 80, 80, 
  80, 81, 81, 81, 81, 83, 81, 81, 80, 80, 80, 79, 79, 79, 79, 79, 
  79, 82, 83, 84, 83, 81, 84, 84, 83, 81, 83, 83, 84, 84, 85, 84, 
  84, 85, 84, 83, 83, 83, 83, 83, 82, 81, 82, 83, NA, NA, NA, NA, 
  NA, NA, NA, NA, NA, NA, 84, 82, 80, 78, 77, 76, 75, 74, 75, 74, 
  74, 73, 72, 72, 81, 79, 77, 76, 75, 75, 74, 74, 77, 81, 82, 82, 
  82, 81, 81, 80, 78, 76, 75, 74, 73, 73, 73, 75, 74, 72, 70, 69, 
  68, 67, 66, 66, 66, 66, 66, 65, 64, 71, 78, 75, 74, 72, 71, 70, 
  68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 57, 56, 56, 55, 
  55, 54, 53, 52, 52, 51, 51, 50, 49, 49, 49, 48, 48, 48, 49, 49, 
  50, 51, 51, 52, 52, 56, 67, 74, 69, 66, 64, 62, 59, 57, 55, 54, 
  54, 57, 57, 56, 55, 54, 52, 51, 50, 48, 46, 44, 42, 40, 40, 40, 
  40, 40, 65, 72, 69, 67, 68, 67, 66, 64, 66, 67, 65, 63, 62, 64, 
  66, 65, 64, 62, 62, 62, 62, 62, 66, 65, 64, 63, 62, 61, 60, 59, 
  59, 58, 58, 57, 59, 64, 64, 63, 63, 62, 62, 62, 72, 71, 69, 70, 
  71, 72, 73, 74, 72, 71, 70, 70, 69, 69, 68, 68, 68, 68, 67, 66, 
  66, 65, 65, 64, 64, 64, 64, 64, 63, 63, 63, 62, 62, 61, 61, 60, 
  60, 59, 59, 59, 58, 58, 58, 57, 57, 57, 57, 56, 56, 56, 55, 55, 
  55, 54, 54, 53, 53, 53, 53, 54, 54, 71, 73, 75, 77, 74, 73, 72, 
  71, 70, 70, 70, 69, 69, 69, 68, 68, 69, 69, 71, 73, 73, 72, 72, 
  71, 71, 71, 70, 74, 78, 79, 79, 78, 78, 78, 77, 77, 77, 76, 76, 
  76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 78, 79, 78, 78, 77, 80, 
  82, 83, 83, 81, 82, 82, 83, 84, 83, 83, 82, 82, 83, 84, 82, 82, 
  81, 80, 79, 77, 76, 76, 76, 76, 76, 77, 77, 76, 77, 79, 81, 81, 
  81, 80, 78, 78, 77, 78, 82, 81, 81, 82, 84, 83, 82, 82, 81, 81, 
  81, 80, 80, 80, 80, 80, 81, 81, 81, 80, 80, 80, 80, 79, 79, 79, 
  79, 79, 79, 78, 78, 77, 78, 80, 82, 80, 79, 80, 82, 81, 80, 78, 
  78, 81, 80, 79, 79, 78, 79, 79, 79, 78, 79, 79, 78, 77, 77, 76, 
  75, 74, 74, 74, 74, 74, 73, 73, 72, 72, 72, 72, 72, 72, 72, 70, 
  69, 69, 69, 68, 68, 68, 67, 67, 67, 67, 66, 67, 67, 67, 68, 68, 
  68, 67, 67, 67, 72, 76, 73, 72, 70, 69, 70, 69, 68, 67, 66, 65, 
  64, 63, 62, 61, 60, 59, 59, 58, 56, 55, 54, 54, 53, 52, 50, 50, 
  49, 48, 47, 46, 44, 43, 41, 40, 39, 39, 38, 37, 36, 36, 35, 35, 
  35, 35, 35, 36, 36, 36, 36, 36, 36, 35, 35, 35, 34, 34, 34, 34, 
  34, 34, 35, 35, 35, 35, 34, 33, 33, 32, 32, 31, 30, 29, 29, 29, 
  30, 31, 33, 34, 34, 34, 34, 33, 33, 33, 33, 32, 32, 32, 31, 31, 
  31, 31, 31, 30, 30, 30, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 
  28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 
  28, 29, 29, 28, 28, 28, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 
  28, 28, 28, 28, 28, 27)
r time-series interpolation arima
1个回答
1
投票

也许并不完美,但可能有助于找出更好的解决方案。全面检查和分解时间序列以弄清楚到底发生了什么可能会更好,但这可能已经有所帮助。

如果你跑步:

df %>% 
  fabletools::model(ARIMA(value, trace = T))

您将看到最终得到的模型没有考虑季节性。

如果您更明确要包含哪些内容,例如

library(dplyr)
library(ggplot2)
library(fabletools)
library(fable)
library(feasts)
library(urca)

df <- tsibble::tsibble(
  date = seq(lubridate::ymd("2010-04-01"), lubridate::ymd("2022-08-31"), by = "1 day"),
  value = value, # please find the vector required below the question
  index = "date"
) %>% 
  dplyr::mutate(origin = case_when(is.na(value) ~ "estimate", TRUE ~ "measure"))

df %>% 
  fabletools::model(ARIMA(value ~ trend() + season(), trace = T)) %>% 
  fabletools::interpolate(df) %>% 
  dplyr::left_join(dplyr::select(df, date, origin)) %>%
  ggplot(data = ., aes(x = date, y = value, color = origin)) +
  geom_point() +
  scale_x_date(date_breaks = "year", labels = ~ lubridate::year(.x)) +
  theme_bw()

您最终会得到更接近您想要的输出。

如何进一步改进这一点的想法: 在

stepwise = F
函数中使用
ARIMA()
可以获得更好的结果,但计算时间会更长。 为了获得更好的结果,人们可能需要在 tsibble 中添加键(例如一年中的周或月),以使
ARIMA()
函数更清楚地搜索当前的季节性。

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