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

Постройте график функции автокорреляции образца (ACF) и функции частичной автокорреляции (PACF) для моделируемых данных.
figure subplot(2,1,1) autocorr(Y) subplot(2,1,2) parcorr(Y)

И образец ACF, и PACF распадаются относительно медленно. Это согласуется с моделью ARMA. Задержки ARMA не могут быть выбраны исключительно путем просмотра ACF и PACF, но, кажется, необходимо не более четырех терминов AR или MA.
Чтобы определить лучшие задержки, поместите несколько моделей с различными вариантами запаздывания. Здесь подходят все комбинации p = 1,..., 4 и q = 1,..., 4 (всего 16 моделей). Храните целевую функцию loglikeability и количество коэффициентов для каждой подогнанной модели.
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
Рассчитайте БИК для каждой подогнанной модели. Число параметров в модели равно 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), соответствующей модели, которая сгенерировала данные .