В этом примере показано, как предсказать регрессионую модель с ошибками 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
рекурсивно. То есть для каждого размера выборки валидации:
Подбор модели к данным (EstMdlY
).
Прогнозные отклики от оценочной модели (yF
).
Вычислите две статистики эффективности, корневую среднюю квадратную ошибку (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 для заданного размера выборки валидации.
estimate
| forecast
| regARIMA