Этот пример показывает, как использовать Байесов информационный критерий (BIC), чтобы выбрать степени p и q модели ARMA. Оцените несколько моделей с различным p и q значениями. Для каждой предполагаемой модели, вывод loglikelihood значение целевой функции. Введите loglikelihood значение к aicbic
, чтобы вычислить меру по BIC подгонки (который штрафует за сложность).
Моделируйте 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')
Постройте демонстрационную автокорреляционную функцию (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 моделей). Сохраните 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
Вычислите 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), совпадая с моделью, которая сгенерировала данные.
aicbic
| arima
| autocorr
| estimate
| parcorr
| simulate