Этот пример показывает основную настройку для создания условного выражения и безусловных прогнозов из моделей многофакторной линейной регрессии. Это является седьмым в серии примеров на регрессии временных рядов, после представления в предыдущих примерах.
Много моделей регрессии в экономике созданы в объяснительных целях, чтобы изучить взаимосвязи среди соответствующих экономических факторов. Структура этих моделей обычно предлагается теорией. Анализ спецификации сравнивает различные расширения и ограничения модели, чтобы оценить вклады отдельных предикторов. Тесты значения особенно важны в этих исследованиях. Цель моделирования состоит в том, чтобы достигнуть хорошо заданного, точно калиброванного описания важных зависимостей. Надежная объяснительная сила модели использоваться, чтобы сообщить планированию и стратегическим решениям путем выявления факторов, которые будут рассмотрены в более качественных анализах.
Модели регрессии также используются для количественного прогнозирования. Эти модели обычно создаются от начального набора (возможно, пустой, возможно, довольно большой) потенциально соответствующих предикторов. Исследовательский анализ данных и методы выбора предиктора особенно важны в этих исследованиях. Цель моделирования, в этом случае, состоит в том, чтобы точно предсказать будущее. Надежная предсказывающая сила модели использоваться, чтобы идентифицировать факторы риска, вовлеченные в инвестиционные решения и их отношение к критическим результатам как будущие уровни по умолчанию.
Важно, на практике, отличить тип модели регрессии при исследовании. Если модель прогнозирования создана посредством исследовательского анализа, его полная прогнозирующая возможность может быть оценена, но не значение отдельных предикторов. В частности, ошибочно использовать те же данные, чтобы создать модель и затем чертить выводы о ее компонентах.
Этот пример фокусируется на методах прогнозирования для моделей многофакторной линейной регрессии (MLR). Методы по сути многомерны, предсказывая ответ в терминах прошлых и настоящих значений переменных предикторов. По сути, методы чрезвычайно отличаются от методов минимальной среднеквадратической ошибки (MMSE), используемых в одномерном моделировании, где прогнозы основаны на самоистории одного ряда.
Мы начинаем путем загрузки соответствующих данных из Регрессии Временных рядов предыдущего примера VI: Остаточная Диагностика:
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) для предикторов в модели уровня по умолчанию выглядела бы так:
Количество коэффициентов в модели является номером времен переменных номер авторегрессивных времен задержек количество уравнений плюс количество точек пересечения. Даже только с несколькими переменными, модель с хорошо заданной структурой задержки может вырасти быстро до размера, который ненадежен для оценки с помощью маленьких выборок данных.
Оценка 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
. Проблема выбора соответствующей продолжительности задержки решается в Регрессии Временных рядов в качестве примера IX: Изолируйте Выбор Порядка.
Прогноз сгенерирован forecast
является нестохастическим, в том смысле, что это использует инновации с нулевым знаком за пределами выборки. Сгенерировать стохастический прогноз, с определенной структурой в инновациях, simulate
использования или
filter
.
Независимо от того, как получены новые данные о предикторе, прогнозы из моделей MLR будут содержать ошибки. Это вызвано тем, что модели MLR, по их характеру, прогноз только ожидаемые значения ответа. Например, модель MLR
прогнозы использование
Ошибки происходят по двум причинам:
Прогноз не включает инновации .
Выборка ошибки производит a это отличается от .
Как обсуждено в Регрессии Временных рядов в качестве примера II: Коллинеарность и Отклонение Средства оценки, ошибка прогноза уменьшается если
Объем выборки больше.
Изменение предикторов больше.
ближе к его среднему значению.
Последний элемент говорит, что прогнозы улучшены, когда они ближе к центру распределения демонстрационных значений, используемых, чтобы оценить модель. Это приводит к прогнозам интервала непостоянной ширины.
При принятии нормальных, гомоскедастичных инноваций прогнозы точки могут быть преобразованы в плотность и прогнозы интервала с помощью стандартных формул (см., например, [1]). Как обсуждено в Регрессии Временных рядов в качестве примера VI: Остаточная Диагностика, однако, стандартные формулы становятся смещенными и неэффективными в присутствии автокоррелированых или 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.