Я изучаю алгоритм ARIMA и столкнулся с несколькими проблемами.Пожалуйста, ответьте на следующие вопросы.Используемая реализация ARIMA взята из statesmodel.tsa.
Q1.Может ли алгоритм ARIMA быть настроен так, чтобы в любом случае делать прогнозы вместо остановки, когда он обнаруживает, что коэффициенты AR не являются стационарными.У меня есть следующий код:
history = [x for x in train]
for tt in test.index:
t=datetime.date(tt)
# fit model
model = ARIMA(history, order=(1,1,1))
model_fit = model.fit()
# one step forecast
yhat = model_fit.forecast()[0]
# store forecast and ob
predictions.append(yhat)
history.append(test[t])
Большинство наборов данных будут проходить через код, даже если они могут не дать хороших результатов.Был один набор данных, который заставил алгоритм остановиться.Я изучил этот набор данных и обнаружил, что его значения сначала увеличиваются, а затем снижаются.Сообщение об ошибке, которое я получил, выглядит следующим образом:
ValueError: The computed initial AR coefficients are not stationary. You should induce stationarity, choose a different model order, or you can pass your own start_params.
Q2: Как следует обрабатывать данные временного ряда, которые сначала имеют увеличивающиеся значения, а затем уменьшаются?
Q3: Затем я реализовалПоиск по сетке, чтобы сначала найти лучшие (p, d, q) параметры, используя данные обучения.Затем этот набор параметров используется в ARIMA для прогнозирования данных в тестовом наборе.Однако, когда данные в наборе тестов имеют разные свойства, ARIMA также останавливается.Например, с одним набором данных я получил (0, 0, 2) из данных обучения.Но, используя этот набор параметров, я получил следующее сообщение об ошибке, когда оно использовалось для прогнозирования набора тестов.
ValueError: The computed initial MA coefficients are not invertible. You should induce invertibility, choose a different model order, or you can pass your own start_params.
Каковы рекомендуемые подходы к решению проблем такого типа?