Выбор лагов ARMA с использованием BIC

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

Симулируйте временные ряды ARMA

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

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

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

Figure contains an axes. The axes with title Simulated ARMA(2,1) Series contains an object of type line.

Построение выборки ACF и PACF

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

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

Figure contains 2 axes. Axes 1 with title Sample Autocorrelation Function contains 4 objects of type stem, line. Axes 2 with title Sample Partial Autocorrelation Function contains 4 objects of type stem, line.

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

Подгонка моделей 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
        Mdl = arima(p,0,q);
        [EstMdl,~,logL] = estimate(Mdl,Y,'Display','off');
        LOGL(p,q) = logL;
        PQ(p,q) = p + q;
     end
end

Вычисление 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   98.3511  102.0209

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

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

См. также

Объекты

Функции

Похожие темы