Выберите ARMA Lags Using 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(5)
Y = simulate(Mdl0,100);

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

Figure contains an axes object. The axes object 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 objects. Axes object 1 with title Sample Autocorrelation Function contains 4 objects of type stem, line. Axes object 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(p,q)] = estimate(Mdl,Y,'Display','off');
        PQ(p,q) = p + q;
     end
end

Вычислите BIC

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

logL = LogL(:);
pq = PQ(:);
[~,bic] = aicbic(logL,pq+1,100);
BIC = reshape(bic,4,4)
BIC = 4×4

  102.4215   96.2339  100.8005  100.3440
   89.1130   93.4895   97.1530   94.0615
   93.6770   93.2838  100.2190  103.4779
   98.2820  102.0442  100.3024  107.5245

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

minBIC = min(BIC,[],'all')
minBIC = 89.1130
[minP,minQ] = find(minBIC == BIC)
minP = 2
minQ = 1

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

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

Объекты

Функции

Похожие темы