Оцените модели ARIMA

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

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