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

В этом примере показано, как использовать Байесов информационный критерий (BIC), чтобы выбрать степени p и q модели ARMA. Оцените несколько моделей с различным p и q значениями. Для каждой предполагаемой модели, выход значение целевой функции логарифмической правдоподобности. Введите значение логарифмической правдоподобности к 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 моделей). Сохраните целевую функцию логарифмической правдоподобности и количество коэффициентов для каждой подобранной модели.

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), совпадая с моделью, которая сгенерировала данные.

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

| | | | |

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

Больше о

Для просмотра документации необходимо авторизоваться на сайте