Выберите ARMA Lags Using BIC

Этот пример показывает, как использовать Байесов информационный критерий (BIC), чтобы выбрать степени p и q модели ARMA. Оцените несколько моделей с различным p и q значениями. Для каждой предполагаемой модели, вывод loglikelihood значение целевой функции. Введите loglikelihood значение к aicbic, чтобы вычислить меру по BIC подгонки (который штрафует за сложность).

Шаг 1. Моделируйте временные ряды ARMA.

Моделируйте ARMA (2,1) временные ряды с 100 наблюдениями.

modSim = arima('Constant',0.2,'AR',{0.75,-0.4},...
               'MA',0.7,'Variance',0.1);
rng('default')
Y = simulate(modSim,100);

figure
plot(Y)
xlim([0,100])
title('Simulated ARMA(2,1) Series')

Шаг 2: Постройте демонстрационный ACF и PACF.

Постройте демонстрационную автокорреляционную функцию (ACF) и частичная автокорреляционная функция (PACF) для моделируемых данных.

figure
subplot(2,1,1)
autocorr(Y)
subplot(2,1,2)
parcorr(Y)

И демонстрационный ACF и PACF затухают относительно медленно. Это сопоставимо с моделью ARMA. Задержки ARMA не могут быть выбраны только путем рассмотрения ACF и PACF, но это кажется не больше, чем четырьмя AR, или условия MA необходимы.

Шаг 3. Соответствуйте ARMA (p, q) модели.

Чтобы идентифицировать лучшие задержки, соответствуйте нескольким моделям различным выбором задержки. Здесь, соответствуйте всем комбинациям p = 1..., 4 и q = 1..., 4 (в общей сложности 16 моделей). Сохраните loglikelihood целевую функцию и количество коэффициентов для каждой подобранной модели.

LOGL = zeros(4,4); % Initialize
PQ = zeros(4,4);
for p = 1:4
    for q = 1:4
        mod = arima(p,0,q);
        [fit,~,logL] = estimate(mod,Y,'Display','off');
        LOGL(p,q) = logL;
        PQ(p,q) = p+q;
     end
end

Шаг 4: вычислите BIC.

Вычислите BIC для каждой подобранной модели. Количество параметров в модели является p + q + 1 (для AR и коэффициентов MA и постоянного термина). Количество наблюдений в наборе данных равняется 100.

LOGL = reshape(LOGL,16,1);
PQ = reshape(PQ,16,1);
[~,bic] = aicbic(LOGL,PQ+1,100);
reshape(bic,4,4)
ans = 4×4

  108.6241  105.9489  109.4164  113.8443
   99.1639  101.5886  105.5203  109.4348
  102.9094  106.0305  107.6489   99.6794
  107.4045  100.7072  102.5746  102.0209

В матрице вывода BIC строки соответствуют степени AR (p), и столбцы соответствуют степени магистра (q). Наименьшее значение является лучшим.

Наименьшим значением BIC является 99.1639 в (2,1) положение. Это соответствует модели ARMA(2,1), совпадая с моделью, которая сгенерировала данные.

Смотрите также

| | | | |

Связанные примеры

Больше о