Регрессия временных рядов VII: прогнозирование

Этот пример показывает базовую настройку для создания условных и безусловных прогнозов из нескольких линейных регрессионых моделей. Это седьмой в серии примеров по регрессии временных рядов, после представления в предыдущих примерах.

Введение

Многие регрессионные модели в экономике построены для объяснительных целей, чтобы понять взаимосвязи между соответствующими экономическими факторами. Структура этих моделей обычно предлагается теорией. Анализ спецификаций сравнивает различные расширения и ограничения модели, чтобы оценить вклад отдельных предикторов. Тесты значимости особенно важны в этих анализах. Цель моделирования состоит в том, чтобы достичь четко заданного, точно калиброванного описания важных зависимостей. Надежная пояснительная модель может использоваться для информирования о планировании и политических решениях путем определения факторов, которые должны учитываться в более качественном анализе.

Регрессионные модели также используются для количественного прогнозирования. Эти модели обычно строятся из начального набора (возможно, пустого, возможно, довольно большого) потенциально значимых предикторов. Исследовательский анализ данных и методы выбора предикторов особенно важны в этих анализах. Цель моделирования в этом случае состоит в том, чтобы точно предсказать будущее. Надежная модель прогнозирования может использоваться для выявления факторов риска, участвующих в инвестиционных решениях, и их связи с критическими результатами, такими как будущие ставки дефолта.

На практике важно различать тип исследуемой регрессионой модели. Если прогнозная модель построена посредством исследовательского анализа, ее общая прогнозирующая способность может быть оценена, но не значимость отдельных предикторов. В частности, вводит в заблуждение использование тех же данных для создания модели, а затем для получения выводов о ее компонентах.

Этот пример фокусируется на методах прогнозирования для многофакторных линейных регрессий (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

Figure contains an axes. The axes with title {\bf New Predictor Data} contains 9 objects of type line, patch. These objects represent AGE, BBB, CPF, SPR.

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

Figure contains an axes. The axes with title {\bf Forecast Response} contains 3 objects of type line, patch. This object represents IGD.

Мы видим, что SPR коэффициент риска оставался приблизительно постоянным с 2004 по 2005 год, в то время как скромное снижение в AGE и BBB факторы риска были компенсированы падением CPF. CPF имеет отрицательный коэффициент модели, поэтому падение связано с повышенным риском. Чистым результатом является прогноз, переход в ставке по умолчанию.

Безусловное прогнозирование

В отсутствие новых данных предиктора (измеренных или постулированных) может быть желателен безусловный прогноз отклика.

Один из способов сделать это - создать динамическую, одномерную модель отклика, такую как модель ARIMA, независимую от предикторов. Модели ARIMA зависят от существования автокорреляций в серии от одного временного периода до следующего, которые модель может использовать в прогнозных целях. Модели ARIMA обсуждаются в другом месте документации.

В качестве альтернативы может быть построена динамическая многомерная модель предикторов. Это позволяет прогнозировать, а не наблюдать новые значения предикторов. Регрессионная модель может затем использоваться, чтобы предсказать ответ, обусловленный прогнозом предикторов.

Устойчивые многомерные прогнозы получаются с помощью векторных авторегрессивных (VAR) моделей. Модель VAR не делает структурных предположений о форме отношений между переменными модели. Он лишь утверждает, что каждая переменная потенциально влияет на друг друга. Формируется система динамических регрессионных уравнений, при этом каждая переменная появляется на левой стороне одного уравнения, и те же отстающие значения всех переменных, и, возможно, точка пересечения, появляются на правой стороне всех уравнений. Идея состоит в том, чтобы позволить регрессии разобраться, какие термины на самом деле значимы.

Например, модель VAR (3) для предикторов в модели скорости по умолчанию будет выглядеть следующим образом:

AGEt=a1+i=13b11iAGEt-i+i=13b12iBBBt-i+i=13b13iCPFt-i+i=13b14iSPRt-i+ϵ1t

BBBt=a2+i=13b21iAGEt-i+i=13b22iBBBt-i+i=13b23iCPFt-i+i=13b24iSPRt-i+ϵ2t

CPFt=a3+i=13b31iAGEt-i+i=13b32iBBBt-i+i=13b33iCPFt-i+i=13b34iSPRt-i+ϵ3t

SPRt=a4+i=13b41iAGEt-i+i=13b42iBBBt-i+i=13b43iCPFt-i+i=13b44iSPRt-i+ϵ4t

Количество коэффициентов в модели является количеством переменных, умноженным на количество авторегрессивных лагов, умноженных на количество уравнений, плюс количество точек пересечения. Даже с несколькими переменными модель с четко заданной структурой задержки может быстро вырасти до размера, который несостоятельен для оценки с использованием небольших выборок данных.

Оценка 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

Figure contains an axes. The axes with title {\bf Forecast Predictors} contains 9 objects of type line, patch. These objects represent AGE, BBB, CPF, SPR.

% 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

Figure contains an axes. The axes with title {\bf Forecast Response} contains 3 objects of type line, patch. This object represents IGD.

Результатом является безусловный прогноз, аналогичный условному прогнозу, сделанному с фактическими данными 2005 года. Прогноз зависит от количества лагов, используемых в модели VAR, numLags. Вопрос выбора подходящей длины задержки рассматривается в примере Регрессия временных рядов IX: Выбор порядка задержки.

Прогноз, сгенерированный forecast не является стохастическим, в том смысле, что использует нулевые инновации вне выборки. Чтобы сгенерировать стохастический прогноз с определенной структурой в инновациях, используйте simulate или filter.

Ошибка прогноза

Независимо от того, как будут получены новые данные предиктора, прогнозы из моделей MLR будут содержать ошибки. Это связано с тем, что модели MLR по своему характеру прогнозируют только ожидаемые значения отклика. Для примера, модель MLR

yt=Xtβ+et,

прогнозы yt+1 использование

yˆt+1=E[yt+1]=Xt+1βˆ.

Ошибки возникают по двум причинам:

Прогноз не включает нововведение et+1.

Ошибка дискретизации приводит к βˆ что отличается от β.

Как обсуждалось в примере Регрессия временных рядов II: Коллинеарность и отклонение оценщика, ошибка прогноза yˆt+1-yt+1 уменьшается, если

Размер выборки больше.

Изменение предикторов больше.

Xt+1 ближе к среднему значению.

В последнем элементе говорится, что прогнозы улучшаются, когда они ближе к центру распределения выборочных значений, используемых для оценки модели. Это приводит к интервалным прогнозам неконстантной ширины.

Принимая нормальные, гомосцедастические инновации, точечные прогнозы могут быть преобразованы в N(yt+1|Xt,σ2) прогнозы плотности и интервалов с использованием стандартных формул (см., например, [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. Тест помогает отличить подгонку модели от ее способности захватывать динамику DGP.

Сводные данные

Чтобы сгенерировать новые значения отклика из регрессионой модели, требуются новые значения предикторов. Когда новые значения предиктора постулируются или наблюдаются, данные отклика экстраполируются с помощью уравнения регрессии. Для безусловной экстраполяции должны быть предсказаны новые значения предиктора, как и в модели VAR. Качество предсказаний зависит как от подгонки в выборке модели, так и от верности модели DGP.

Основное допущение любой модели прогнозирования заключается в том, что шаблоны экономических данных, описанные моделью, продолжатся в будущем. Это предположение об устойчивости DGP. Однако социальные механизмы, способствующие экономическим процессам, никогда не являются стабильными. Значение модели прогнозирования, особенно построенной путем исследовательского анализа данных, может быть недолгой. Базис в разумной экономической теории улучшит долговечность модели, но изменчивость процесса прогнозирования должна быть признана. Эта неопределенность в некоторой степени получена в моделях ошибки прогноза.

Эконометрическая практика показала, что простые модели прогнозирования часто работают лучше всего.

Ссылки

[1] Diebold, F. X. Элементы прогнозирования. Мэйсон, OH: Thomson Higher Education, 2007.

[2] Грейнджер, К. и П. Ньюболд. Прогнозирование трансформированной серии. Журнал Королевского статистического общества. Серия B, том 38, 1976, стр. 189-203.