У меня есть список данных временных рядов, таких как:
> str(ffz2$time_series)
List of 89
$ 1_1 : Time-Series [1:47] from 2013 to 2017: 6.95 7.03 7.06 7.03 7.09 ...
$ 1_10 : Time-Series [1:47] from 2013 to 2017: 7.1 7.13 7.12 7.13 7.21 ...
$ 1_2 : Time-Series [1:47] from 2013 to 2017: 7.28 7.31 7.3 7.32 7.35 ...
$ 1_3 : Time-Series [1:47] from 2013 to 2017: 6.85 6.92 6.92 6.92 6.98 ...
Когда я отображаю на него функцию auto.arima () из пакета прогноза, она отлично работает.
ffz2_models <- ffz2 %>%
mutate(
model = time_series %>% map(auto.arima)
)
Однако, если я выполняю операцию поднабора, кажется, что либо карта, либо функция auto.arima перестают работать.
train <- dam_models$time_series %>%
map(subset, end = 36)
> str(train)
List of 89
$ 1_1 : Time-Series [1:36] from 2013 to 2016: 6.95 7.03 7.06 7.03 7.09 ...
$ 1_10 : Time-Series [1:36] from 2013 to 2016: 7.1 7.13 7.12 7.13 7.21 ...
$ 1_2 : Time-Series [1:36] from 2013 to 2016: 7.28 7.31 7.3 7.32 7.35 ...
$ 1_3 : Time-Series [1:36] from 2013 to 2016: 6.85 6.92 6.92 6.92 6.98 ...
Тогда карта (auto.arima) возвращает эту ошибку:
> trainingmodels <- train %>%
+ map(auto.arima)
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
0 (non-NA) cases
Кроме того, если я извлекаю одну временную серию из списка и сохраняю ее как отдельное значение, то выполняю auto.arima для этого значения - это работает!
> timeseries1_2 <- train$`1_2`
> modeltimeseries1_2 <- auto.arima(timeseries1_2)
> head(modeltimeseries1_2)
$coef
ma1 drift
-0.43701717 0.01173471
$sigma2
[1] 0.0004384713
$var.coef
ma1 drift
ma1 0.02429125831 -0.000025689037
drift -0.00002568904 0.000003959022
$mask
[1] TRUE TRUE
$loglik
[1] 86.63868
$aic
[1] -167.2774
Обходной путь здесь заключается в том, что я могу извлечь каждый отдельный элемент в списке к его собственному значению и запустить auto.arima для каждого из них отдельно без использования map () или lapply (), однако я89 из них.Таким образом, это 89 наборов обучающих данных, которые я пытаюсь смоделировать, и еще 89 наборов тестов, которые нужно извлечь (при условии, что я использую этот метод) и спрогнозировать.
Любая помощь с отображением auto.arima для подмножества временных рядов очень ценится!