Я согласен с комментарием MrFlick, это больше похоже на статистический вопрос, чем на кодирование. Кроме того, вот несколько указателей, которые могут помочь вам начать.
Давайте посмотрим на необработанные данные временных рядов.
library(forecast)
autoplot(ts) + theme_minimal()
Зная об ограничениях forecast::auto.arima
s при наличии выбросов, сдвигов уровней и других "отклонений", auto.arima
предлагает модель вида SARIMA (0,0,1) (1,0,0) 12 .
Обратите внимание, что это отличается от модели ARIMA (0,0,1), которую вы упоминаете в комментариях! Мы можем увидеть разницу, записав уравнения для SARIMA ( 0,0,1) (1,0,0) 12 модель
и ARIMA (0,0, 1) модель
Результаты подгонки:
fit <- auto.arima(ts)
fit
#Series: ts
#ARIMA(0,0,1)(1,0,0)[12] with non-zero mean
#
#Coefficients:
# ma1 sar1 mean
# 0.3644 0.2302 15.8426
#s.e. 0.1321 0.1298 0.4803
#
#sigma^2 estimated as 5.671: log likelihood=-149.78
#AIC=307.55 AICc=308.21 BIC=316.31
Посмотрим на остатки вместе с их ACF и PACF
gg1 <- autoplot(fit$residuals) + theme_minimal()
gg2 <- ggAcf(fit$residuals) + theme_minimal()
gg3 <- ggPacf(fit$residuals) + theme_minimal()
library(ggpubr)
ggarrange(gg1, ggarrange(gg2, gg3, ncol = 2), nrow = 2)
Заключение
Распределение остатков по виду " хорошо ": сами остатки выглядят более или менее стационарно, и имеется небольшая (частичная) автокорреляция на первых 9 лагах. Пики в лаге 10 в ACF и PACF могут указывать на другие процессы и требуют дальнейшего изучения.
В целом модель ARIMA (0,0,1) (1,0,0) 12 , по-видимому, соответствует данным.
PS. Поскольку вы упоминаете о различиях в своем основном посте: Знайте о последствиях (сверх) различий.
Пример данных
ts <- structure(c(15.6518870777097, 15.3322867608582, 17.6151603498542,
16.9445877027104, 14.7031828275352, 16.0412944212825, 16.861729056851,
13.452283131823, 13.2855709987104, 16.0124941065535, 16.5882352941176,
13.8099874808736, 16.9928053525937, 13.3337023302153, 15.4694135718804,
14.9111123979385, 16.1105207226355, 16.5585054080629, 13.5606661379857,
15.1856487275761, 20.4671985306778, 16.863711001642, 14.8349514563107,
16.0655394440664, 18.9172303262434, 18.9811320754717, 20.2998379254457,
15.8995316648271, 13.8971057363262, 18.3333810765132, 19.1311805257776,
16.7306443040217, 14.6418822305992, 20.1152852315643, 14.9894158704731,
13.5667766218388, 16.5179451090781, 12.3646258503401, 11.1907676167162,
16.7851016907621, 15.8961621664931, 18.853901818893, 18.216933524391,
16.4258603642395, 12.0362991336538, 14.6222482941739, 13.5002635740643,
11.3637532794897, 11.6990571483548, 17.3600605143722, 11.5196876016922,
17.7933147413488, 18.2443257676903, 16.983016983017, 22.6372784948589,
20.0215707422296, 12.2457223648902, 13.0610780897725, 13.7779017857143,
14.115336856392, 13.2063002533319, 15.7881424524484, 12.9566768310224,
16.7059081202431, 19.0690998564691, 18.4743742550656), .Dim = c(66L,
1L), .Dimnames = list(NULL, "serie"), .Tsp = c(2013.5, 2018.91666666667,
12), class = "ts")