Оценка моделей ARIMA

Этот пример показывает, как оценить авторегрессивные интегрированные модели скользящего среднего значения (ARIMA).

Иногда требуются модели временных рядов, содержащие нестационарные тренды (сезонность). Одной из категорий таких моделей являются модели ARIMA. Эти модели содержат фиксированный интегратор в источнике шума. Таким образом, если управляющее уравнение модели ARMA выражено как A (q) y (t) = Ce (t), где A (q) представляет авторегрессивный член, а C (q) - скользящий средний член, соответствующая модель модели ARIMA выражается как

A(q)y(t)=C(q)(1-q-1)e(t)

где термин 11-q-1 представляет интегратор в дискретном времени. Точно так же можно сформулировать уравнения для моделей ARI и ARIX.

Использование команд оценки модели timeseries ar, arx и armax можно ввести интеграторы в источник шума e(t). Вы делаете это при помощи IntegrateNoise параметр в команде оценки.

Подход оценки не учитывает никаких постоянных смещений в данных timeseries. Способность вводить интегратор шума не ограничивается одними только данными timeseries. Вы можете сделать это также для моделей ввода-вывода, где нарушения порядка могут быть подвержены сезонности. Одним из примеров являются полиномиальные модели структуры ARIMAX:

A(q)y(t)=B(q)u(t)+C(q)(1-q-1)e(t)

Смотрите armax страница с описанием для примеров.

Оцените модель ARI для скалярного timeseries с линейным трендом.

load iddata9 z9
Ts = z9.Ts;
y = cumsum(z9.y);
model = ar(y,4,'ls','Ts',Ts,'IntegrateNoise', true);
% 5 step ahead prediction
compare(y,model,5)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Validation data (y1), model: 78.76%.

Оцените многомерную модель timeseries таким образом, чтобы шумовое интегрирование присутствовало только в одном из двух временных рядов.

load iddata9 z9
Ts = z9.Ts;
y = z9.y;
y2 = cumsum(y);
% artificially construct a bivariate time series
data = iddata([y, y2],[],Ts); na = [4 0; 0 4];
nc = [2;1];
model1 = armax(data, [na nc], 'IntegrateNoise',[false; true]);
% Forecast the time series 100 steps into future
yf = forecast(model1,data(1:100), 100);
plot(data(1:100),yf)

Figure contains 2 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent untitled1, yf. Axes 2 with title y2 contains 2 objects of type line. These objects represent untitled1, yf.

Если выходы были связаны (na не была диагональной матрицей), ситуация будет сложнее и просто добавление интегратора во второй канал шума не сработает.