Проверьте робастность прогнозирующей способности модели regARIMA

В этом примере показано, как предсказать регрессионую модель с ошибками ARIMA и как проверить робастность предсказуемости модели.

Загрузите набор данных Кредитные дефолты, присвойте ответ (IGD) к y и предикторы AGE, CPF, и SPR на X. Для рисунка задайте, что серия ответов является регрессионной моделью с ошибками AR (1). Чтобы избежать отвлечения от цели этого примера, предположим, что все серии предикторов являются стационарными.

load Data_CreditDefaults
y = Data(:,5);
X = Data(:,[1 3:4]);
T = size(X,1); % Sample size
Mdl = regARIMA(1,0,0);

Измените размер выборки валидации (m) и прогнозные ответы от Mdl рекурсивно. То есть для каждого размера выборки валидации:

  1. Подбор модели к данным (EstMdlY).

  2. Прогнозные отклики от оценочной модели (yF).

  3. Вычислите две статистики эффективности, корневую среднюю квадратную ошибку (RMSE) и корневую среднюю квадратную ошибку предсказания (RPMSE).

m = 4:10;  % Validation sample lengths
rPMSE = m; % Preallocate rPMSE
rMSE = m;  % Preallocate rMSE

for k = 1:numel(m);
    yEst = y(1:(T-m(k)));    % Response data for estimation
    yVal = y((T-m(k)+1):T);  % Validation sample
    EstMdlY = estimate(Mdl,yEst,'X',X,'display','off');
    yHat = EstMdlY.Intercept + X(1:(T-m(k)),:)*EstMdlY.Beta';...
        % Estimation sample predicted values
    [e0,u0] = infer(EstMdlY,yEst,'X',X);
    yF = forecast(EstMdlY,m(k),'Y0',yEst,...
			'X0',X(1:T-m(k),:),'XF',X((T-m(k)+1):T,:));...
            % Validation sample predicted values
    rMSE(k) = sqrt(mean((yEst - yHat).^2));
    rPMSE(k) = sqrt(mean((yF - yVal).^2));
end

rMSE и rPMSE являются векторами, которые содержат RMSE и RPMSE, соответственно, для каждой выборки валидации.

Отобразите измерения эффективности.

fprintf('\n m |  rMSE  |  rPMSE\n')
 m |  rMSE  |  rPMSE
fprintf('====================\n')
====================
for k = 1:length(m)
    fprintf('%2d | %0.4f | %0.4f\n',m(k),rMSE(k),rPMSE(k))
end
 4 | 0.0947 | 0.2274
 5 | 0.0808 | 0.1902
 6 | 0.0810 | 0.2036
 7 | 0.0714 | 0.1924
 8 | 0.0809 | 0.1532
 9 | 0.0720 | 0.1557
10 | 0.0899 | 0.1300

Прогнозирующая способность этой модели довольно устойчива, потому что rPMSE незначительные изменения для увеличения m. Однако rMSE меньше rPMSE для всех m. Это означает плохую прогностическую способность.

Поиск лучшей модели путем определения, например, большего количества лагов AR или MA в модели ошибки и сравнения PMSE по этим моделям. Выберите модель с самым низким PMSE для заданного размера выборки валидации.

См. также

| |

Похожие примеры

Подробнее о