В этом примере показана базовая настройка для создания условных и безусловных прогнозов из нескольких моделей линейной регрессии. Он является седьмым в серии примеров регрессии временных рядов после представления в предыдущих примерах.
Многие регрессионные модели в экономике строятся в пояснительных целях для понимания взаимосвязей между соответствующими экономическими факторами. Структура этих моделей обычно предлагается теорией. Анализ спецификаций сравнивает различные расширения и ограничения модели для оценки вклада отдельных предикторов. В этих анализах особенно важны тесты значимости. Целью моделирования является достижение четко определенного, точно откалиброванного описания важных зависимостей. Надежная объяснительная модель может использоваться для обоснования планирования и политических решений путем выявления факторов, которые должны учитываться в более качественном анализе.
Регрессионные модели также используются для количественного прогнозирования. Эти модели обычно строятся из начального набора (возможно, пустого, возможно, довольно большого) потенциально релевантных предикторов. Анализ исследовательских данных и методы выбора предикторов особенно важны в этих анализах. Цель моделирования, в данном случае, состоит в том, чтобы точно предсказать будущее. Надежная модель прогнозирования может быть использована для определения факторов риска, участвующих в инвестиционных решениях, и их связи с критическими результатами, такими как будущие ставки дефолта.
На практике важно различать тип исследуемой регрессионной модели. Если модель прогнозирования строится с помощью исследовательского анализа, ее общая прогностическая способность может быть оценена, но не значимость отдельных предикторов. В частности, ошибочно использовать те же данные для построения модели, а затем делать выводы о ее компонентах.
Этот пример посвящен методам прогнозирования для моделей множественной линейной регрессии (MLR). Способы являются по своей сути многомерными, прогнозируя ответ с точки зрения прошлых и текущих значений переменных предиктора. Как таковые, методы по существу отличаются от методов минимальной среднеквадратичной ошибки (MMSE), используемых в одномерном моделировании, где прогнозы основаны на собственной истории одного ряда.
Начнем с загрузки соответствующих данных из предыдущего примера Регрессия временного ряда VI: Остаточная диагностика:
load Data_TSReg6Регрессионные модели описывают ответ, вызванный или обусловленный связанными значениями переменных предиктора. Если модель успешно захватила существенную динамику процесса генерации данных (DGP), она может быть использована для изучения сценариев непредвиденных обстоятельств, где данные предиктора постулируются, а не наблюдаются.
Модели, рассмотренные в этой серии примеров, были откалиброваны и протестированы с использованием данных предиктора X0, измеренные в момент времени t, и данные ответа y0, измеренное в момент времени t + 1. Сдвиг во времени в данных означает, что эти модели обеспечивают прогнозы ответа на один шаг вперед, зависящие от предикторов.
Для дальнейшего прогнозирования в будущем единственной необходимой корректировкой является оценка модели с большими сдвигами в данных. Например, для прогнозирования на два шага вперед, данные ответа измерены в момент времени t + 2 (y0(2:end)) могут быть регрессированы на данных предиктора, измеренных в момент времени t (X0(1:end-1)). Конечно, к предыдущим модельным анализам необходимо будет вернуться, чтобы обеспечить надежность.
Для иллюстрации мы используем M0 модель для получения прогноза условной точки ставки по умолчанию в 2006 году, учитывая новые данные о предикторах в 2005 году, представленные в переменной X2005:
betaHat0 = M0.Coefficients.Estimate; yHat0 = [1,X2005]*betaHat0; D = dates(end); Xm = min([X0(:);X2005']); XM = max([X0(:);X2005']); figure hold on plot(dates,X0,'LineWidth',2) plot(D:D+1,[X0(end,:);X2005],'*-.','LineWidth',2) fill([D D D+1 D+1],[Xm XM XM Xm],'b','FaceAlpha',0.1) hold off legend(predNames0,'Location','NW') xlabel('Year') ylabel('Predictor Level') title('{\bf New Predictor Data}') axis tight grid on

Ym = min([y0;yHat0]); YM = max([y0;yHat0]); figure hold on plot(dates,y0,'k','LineWidth',2); plot(D:D+1,[y0(end);yHat0],'*-.k','LineWidth',2) fill([D D D+1 D+1],[Ym YM YM Ym],'b','FaceAlpha',0.1) hold off legend(respName0,'Location','NW') xlabel('Year') ylabel('Response Level') title('{\bf Forecast Response}') axis tight grid on

Мы видим, что SPR фактор риска оставался примерно постоянным с 2004 по 2005 год, в то время как умеренное снижение AGE и BBB факторы риска были компенсированы снижением CPF. CPF имеет отрицательный коэффициент модели, поэтому падение связано с повышенным риском. Чистым результатом является прогнозируемый скачок ставки по умолчанию.
В отсутствие новых данных предиктора (измеренных или постулированных) может быть желательным безусловный прогноз ответа.
Один из способов сделать это - создать динамическую одномерную модель ответа, такую как модель ARIMA, независимую от предикторов. Модели ARIMA зависят от существования автокорреляций в серии от одного периода времени до следующего, которые модель может использовать в целях прогнозирования. Модели ARIMA обсуждаются в других разделах документации.
Альтернативно, может быть построена динамическая многомерная модель предикторов. Это позволяет прогнозировать, а не наблюдать новые значения предикторов. Регрессионная модель может затем использоваться для прогнозирования ответа при условии прогноза предикторов.
Надежные многомерные прогнозы производятся векторными авторегрессионными (VAR) моделями. Модель VAR не делает структурных предположений о форме связей между переменными модели. Это указывает только на то, что каждая переменная потенциально влияет на каждую другую. Формируется система уравнений динамической регрессии, причем каждая переменная появляется на левой стороне одного уравнения, и одинаковые запаздывающие значения всех переменных, и, возможно, пересечение, появляются на правой стороне всех уравнений. Идея в том, чтобы позволить регрессии выяснить, какие термины на самом деле значимы.
Например, модель VAR (3) для предикторов в модели скорости по умолчанию будет выглядеть следующим образом:
Число коэффициентов в модели - это количество переменных, умноженное на число авторегрессионных лагов, умноженное на число уравнений, плюс число перехватов. Даже при наличии лишь нескольких переменных модель с четко определенной структурой запаздывания может быстро вырасти до размера, который непригоден для оценки с использованием небольших выборок данных.
Оценка OLS уравнения за уравнением хорошо работает с моделями VAR, поскольку каждое уравнение имеет одинаковые регрессоры. Это справедливо независимо от каких-либо ковариаций перекрестных уравнений, которые могут присутствовать в нововведениях. Более того, чисто авторегрессионная оценка численно очень стабильна.
Однако численная стабильность оценок зависит от стационарности моделируемых переменных. Разностные стационарные предикторные переменные приводят к надежным прогнозам различий. Тем не менее, для прогнозирования ответа из регрессионной модели могут потребоваться недифференцированные данные предиктора. Интеграция прогнозных разниц может привести к искажению уровней прогноза (см., например, [2]). Тем не менее, стандартная рекомендация заключается в использовании стационарных переменных в VAR, предполагая, что короткий горизонт приведет к минимальным ошибкам реинтеграции.
Оценка и прогнозирование VAR выполняются функциями estimate и forecast. Ниже приводится безусловный прогноз ставки по умолчанию в 2005 году из M0 регрессионная модель:
% Estimate a VAR(1) model for the differenced predictors (with % undifferenced |AGE|): numLags = 1; D1X0PreSample = D1X0(1:numLags,:); D1X0Sample = D1X0(numLags+1:end,:); numPreds0 = numParams0-1; VARMdl = varm(numPreds0,numLags); EstMdl = estimate(VARMdl,D1X0Sample,'Y0',D1X0PreSample); % Forecast the predictors in D1X0: horizon = 1; ForecastD1X0 = forecast(EstMdl,horizon,D1X0); % Integrate the differenced forecast to obtain the undifferenced forecast: ForecastX0(1) = ForecastD1X0(1); % AGE ForecastX0(2:4) = X0(end,2:4)+ForecastD1X0(2:4); % Other predictors Xm = min([X0(:);ForecastX0(:)]); XM = max([X0(:);ForecastX0(:)]); figure hold on plot(dates,X0,'LineWidth',2) plot(D:D+1,[X0(end,:);ForecastX0],'*-.','LineWidth',2) fill([D D D+1 D+1],[Xm XM XM Xm],'b','FaceAlpha',0.1) hold off legend(predNames0,'Location','NW') xlabel('Year') ylabel('Predictor Level') title('{\bf Forecast Predictors}') axis tight grid on

% Forecast the response from the regression model: ForecastY0 = [1,ForecastX0]*betaHat0; Ym = min([y0;ForecastY0]); YM = max([y0;ForecastY0]); figure hold on plot(dates,y0,'k','LineWidth',2); plot(D:D+1,[y0(end);ForecastY0],'*-.k','LineWidth',2) fill([D D D+1 D+1],[Ym YM YM Ym],'b','FaceAlpha',0.1) hold off legend(respName0,'Location','NW') xlabel('Year') ylabel('Response Level') title('{\bf Forecast Response}') axis tight grid on

Результатом является безусловный прогноз, аналогичный условному прогнозу, сделанному с фактическими данными за 2005 год. Прогноз зависит от количества лагов, используемых в модели VAR, numLags. Проблема выбора соответствующей длины задержки рассматривается в примере Регрессия временного ряда IX: Выбор порядка задержки.
Прогноз, созданный forecast является нестохастическим, в том смысле, что он использует нулевые инновации вне выборки. Для создания стохастического прогноза с определенной структурой инноваций используйте simulate или filter.
Независимо от того, как получены новые данные предиктора, прогнозы из моделей MLR будут содержать ошибки. Это связано с тем, что модели MLR по своей природе прогнозируют только ожидаемые значения ответа. Например, модель MLR
et,
прогнозы 1 с использованием
Ошибки возникают по двум причинам:
Прогноз не включает инновации 1.
Ошибка выборки создает , который отличается от .
Как описано в примере Регрессия временного ряда II: коллинеарность и отклонение оценщика, ошибки прогноза уменьшается, если
Размер выборки больше.
Вариация предикторов больше.
1 ближе к своему среднему значению.
Последний пункт говорит, что прогнозы улучшаются, когда они находятся ближе к центру распределения значений выборки, используемых для оценки модели. Это приводит к интервальным прогнозам непостоянной ширины.
Предполагая нормальные, гомоскедастические новшества, точечные прогнозы можно преобразовать в Xt, start2) плотность и интервальные прогнозы с помощью стандартных формул (см., например, [1]). Как обсуждалось в примере Регрессия временного ряда VI: Остаточная диагностика, однако, стандартные формулы становятся смещенными и неэффективными в присутствии автокоррелированных или гетероскедастических инноваций. В таких ситуациях прогнозы интервалов могут быть смоделированы с использованием соответствующей серии нововведений, но часто рекомендуется пересмотреть модель для максимально возможной стандартизации нововведений.
Обычно часть данных задерживается для анализа прогноза, и модель оценивается с помощью начального подпроба. Базовый тест производительности сравнивает среднеквадратическую ошибку (RMSE) прогнозов вне выборки с RMSE простого базового прогноза, который содержит последнее значение в выборке константы отклика. Если прогноз модели существенно не улучшается на базовом прогнозе, то можно предположить, что модель не абстрагировала соответствующие экономические силы в DGP.
Например, ниже проверяется производительность M0 модель:
numTest = 3; % Number of observations held out for testing % Training model: X0Train = X0(1:end-numTest,:); y0Train = y0(1:end-numTest); M0Train = fitlm(X0Train,y0Train); % Test set: X0Test = X0(end-numTest+1:end,:); y0Test = y0(end-numTest+1:end); % Forecast errors: y0Pred = predict(M0Train,X0Test); DiffPred = y0Pred-y0Test; DiffBase = y0Pred-y0(end-numTest); % Forecast comparison: RMSEPred = sqrt((DiffPred'*DiffPred)/numTest)
RMSEPred = 0.1197
RMSEBase = sqrt((DiffBase'*DiffBase)/numTest)
RMSEBase = 0.2945
Прогноз модели показывает улучшение по сравнению с базовым прогнозом. Однако полезно повторить тест с различными значениями numTest. Это осложняется влиятельным наблюдением в 2001 году, тремя наблюдениями до конца данных.
Если модель проходит базовый тест, она может быть повторно оценена с полной выборкой, как в M0. Тест помогает отличить подгонку модели от ее способности улавливать динамику ДГП.
Для генерации новых значений ответа из регрессионной модели требуются новые значения предикторов. Когда постулируются или наблюдаются новые предикторные значения, данные ответа экстраполируются с использованием уравнения регрессии. Для безусловной экстраполяции необходимо прогнозировать новые предикторные значения, как в модели VAR. Качество прогнозов зависит как от подгонки модели в выборке, так и от точности модели к DGP.
Основная посылка любой модели прогнозирования заключается в том, что модели экономических данных, описанные в модели, будут продолжаться в будущем. Это предположение о стабильности ДГУ. Однако социальные механизмы, движущие экономическими процессами, никогда не являются стабильными. Ценность модели прогнозирования, особенно модели, построенной путем анализа исследовательских данных, может быть недолгой. Прочная экономическая теория позволит повысить долговечность модели, однако необходимо признать неустойчивый характер процесса прогнозирования. Эта неопределенность в некоторой степени фиксируется в моделях ошибки прогноза.
Эконометрическая практика показала, что простые модели прогнозирования часто работают наилучшим образом.
[1] Диболд, Ф. Х. Элементы прогнозирования. Мейсон, O: Thomson Higher Education, 2007.
[2] Грейнджер, C. и P. Ньюболд. «Прогнозирование преобразованных серий». Журнал Королевского статистического общества. Серия B, т. 38, 1976, стр. 189-203.