上下文:每日时间序列缺少测量值。我觉得尝试“链接”观察到的数据来插入这些数据是合理的,因为观察到的现象似乎具有相对规则的季节性。为此,我尝试了多个 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)
也许并不完美,但可能有助于找出更好的解决方案。全面检查和分解时间序列以弄清楚到底发生了什么可能会更好,但这可能已经有所帮助。
如果你跑步:
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()
函数更清楚地搜索当前的季节性。