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

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

Введение

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

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

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

Этот пример фокусируется на методах прогнозирования для моделей нескольких линейных регрессий (MLR). Методы по сути многомерны, предсказывая ответ с точки зрения прошлых и настоящих значений переменных прогноза. По сути, методы чрезвычайно отличаются от методов минимальной среднеквадратической ошибки (MMSE), используемых в одномерном моделировании, где прогнозы основаны на самоистории одного ряда.

Мы начинаем путем загрузки соответствующих данных из предыдущего примера на "Остаточной Диагностике":

load Data_TSReg6

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

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

Модели, рассмотренные в этой серии примеров, были калиброваны и протестировали данные о предикторе использования X0, измеренный во время t и данные об ответе y0, измеренный во время t + 1. Временной сдвиг в данных означает, что эти модели обеспечивают прогнозы точки "один шаг вперед" ответа, условного выражения на предикторах.

Чтобы предсказать далее в будущее, единственная необходимая корректировка должна оценить модель с большими сдвигами в данных. Например, чтобы предсказать два шага вперед, данные об ответе, измеренные во время t + 2 (y0(2:end)), могли регрессироваться на данных о предикторе, измеренных во время t (X0(1:end-1)). Конечно, предыдущие анализы модели должны были бы быть пересмотрены, чтобы гарантировать надежность.

Чтобы проиллюстрировать, мы используем модель M0, чтобы произвести условный прогноз точки уровня по умолчанию в 2 006, учитывая новые данные по предикторам в 2 005 обеспеченных в переменной 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 содержал приблизительно постоянный от 2 004 до 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

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

Оценка Equation-by-equation OLS выполняет хорошо с моделями VAR, поскольку каждое уравнение имеет те же регрессоры. Это верно независимо от любых ковариаций перекрестного уравнения, которые могут присутствовать в инновациях. Кроме того, чисто авторегрессивная оценка численно очень стабильна.

Числовая устойчивость оценок, однако, полагается на стационарность смоделированных переменных. Differenced, стационарные переменные прогноза приводят к надежным прогнозам различий. Однако данные о предикторе undifferenced могут требоваться предсказать ответ из модели регрессии. Интеграция различий в прогнозе имеет потенциал, чтобы произвести искаженные уровни прогноза (см., например, [2]). Тем не менее, стандартная рекомендация состоит в том, чтобы использовать стационарные переменные в VAR, принимая, что короткий горизонт произведет минимальные ошибки реинтеграции.

Оценка VAR и прогнозирование выполняются функциями estimate и forecast. Следующее производит безусловный прогноз точки уровня по умолчанию в 2 005 из модели регрессии 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

Результатом является безусловный прогноз, который подобен условному прогнозу, сделанному с фактическими 2 005 данными. Прогноз зависит от количества задержек, используемых в модели VAR, numLags. Проблема выбора соответствующей продолжительности задержки решается в примере на "Выборе Порядка Задержки".

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

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

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

yt=Xtβ+et,

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

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

Ошибки происходят по двум причинам:

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

Выборка ошибки производит a βˆ это отличается от β.

Как обсуждено в примере на "Collinearity & Estimator Variance", ошибке прогноза yˆt+1-yt+1 уменьшается если

Объем выборки больше.

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

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

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

При принятии нормальных, гомоскедастичных инноваций прогнозы точки могут быть преобразованы в N(yt+1|Xt,σ2) плотность и прогнозы интервала с помощью стандартных формул (см., например, [1]). Как обсуждено в примере на "Диагностике Регрессии", однако, стандартные формулы становятся смещенными и неэффективными в присутствии автокоррелированых или heteroscedastic инноваций. В таких ситуациях прогнозы интервала могут быть моделированы с помощью соответствующей серии инноваций, но часто рекомендуется, чтобы модель была повторно задана, чтобы стандартизировать инновации как можно больше.

Распространено сдержать фрагмент данных для оценки прогноза и оценить модель с начальной подвыборкой. Основной тест производительности сравнивает среднеквадратичную ошибку (RMSE) прогнозов out-of-subsample к 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. Это осложнено влиятельным наблюдением в 2 001, тремя наблюдениями перед концом данных.

Если модель проходит базовый тест, она может быть повторно оценена с полной выборкой, как в M0. Тест помогает отличить припадок модели от ее способности получить динамику DGP.

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

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

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

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

Ссылки

[1] Diebold, F. X. Элементы прогнозирования. Масон, OH: томсоновское высшее образование, 2007.

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

Для просмотра документации необходимо авторизоваться на сайте