В этом примере показано, как предсказать модель регрессии с ошибками 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 в ошибочной модели, и сравните PMSEs по этим моделям. Выберите модель с самым низким PMSE для данного объема выборки валидации.
estimate
| forecast
| regARIMA