В этом примере показано, как проверить допущения модели для критерия Чоу. Модель представляет собой валовой внутренний продукт (ВВП) США с индексом потребительских цен (ИПЦ) и выплаченной компенсацией работникам (COE) в качестве предикторов. Прогнозный горизонт - 2007 - 2009, как раз до и после начала американской рецессии 2008 года.
Загрузите набор макроэкономических данных США.
load Data_USEconModel
Временные ряды в наборе данных содержат ежеквартальные макроэкономические измерения с 1947 по 2009 год. Для получения дополнительной информации, списка переменных и описаний введите Description
в командной строке.
Извлеките предикторы и ответ из таблицы. Фокусируйте выборку на наблюдениях, взятых в 1960-2009 годах.
idx = year(DataTable.Time) >= 1960; dates = DataTable.Time(idx); y = DataTable.GDP(idx); X = DataTable{idx,{'CPIAUCSL' 'COE'}}; varNames = {'CPIAUCSL' 'COE' 'GDP'};
Идентифицируйте прогнозные индексы горизонта.
fHIdx = year(dates) >= 2007;
Постройте график всех серий индивидуально. Определить периоды спада.
figure; subplot(2,2,1); plot(dates,y) title(varNames{end}); xlabel('Year'); axis tight; datetick; recessionplot; for j = 1:size(X,2) subplot(2,2,j + 1); plot(dates,X(:,j)) title(varNames{j}); xlabel('Year'); axis tight; datetick; recessionplot; end
Все переменные, по-видимому, растут экспоненциально. Также вокруг последней рецессии появляется спад. Предположим, что линейная регрессионая модель ВВП на ИПЦ и COE является подходящей, и вы хотите проверить, есть ли структурное изменение модели в 2007 году.
Критериям Чоу полагаемся на:
Независимые, распределенные по Гауссу инновации
Постоянство отклонения инноваций в подвыборках
Постоянство инноваций на любых структурных пропусках
Если модель нарушает эти допущения, результат критерия Чоу может быть неправильным, или критерий Чоу может не иметь степени. Выясните, сохраняются ли допущения. Если таковые не выполняются, предварительно обработайте данные далее.
Подбор линейной модели ко всему ряду. Включите точку пересечения.
Mdl = fitlm(X,y);
Mdl
является LinearModel
объект модели.
Извлеките невязки из оцененной линейной модели. Нарисуйте две гистограммы графиков с помощью невязок: одну относительно подобранных значений в порядке обращения, а другую - относительно предыдущих невязок.
res = Mdl.Residuals.Raw;
figure;
plotResiduals(Mdl,'lagged');
figure;
plotResiduals(Mdl,'caseorder');
Поскольку график поля точек остатка по сравнению с отстающим остатком образует тренд, автокорреляция существует в остатках. Кроме того, невязки крайностей, по-видимому, вспыхивают, что говорит о наличии гетероскедастичности.
Проведите тест ARCH Engle на уровне 5% значимости, чтобы оценить, являются ли нововведения гетероскедастическими.
[hARCH,pValueARCH] = archtest(res)
hARCH = logical
1
pValueARCH = 0
hARCH = 1
предлагает отклонить нулевую гипотезу о том, что весь остаточный ряд не имеет условной гетероскедастичности.
Примените преобразование журнала ко всем сериям, которые, по-видимому, растут экспоненциально, чтобы уменьшить эффекты гетероскедастичности.
y = log(y); X = log(X);
Чтобы принять во внимание автокорреляцию, создайте переменные предиктора для всех экспоненциальных рядов, запаздывая их на один период.
LagMat = lagmatrix([X y],1);
X = [X(2:end,:) LagMat(2:end,:)]; % Concatenate data and remove first row
fHIdx = fHIdx(2:end);
y = y(2:end);
На основе остаточной диагностики выберите эту линейную модель для ВВП
должен быть Гауссов ряд инноваций со средним нули и постоянным отклонением .
Снова диагностируйте невязки.
Mdl = fitlm(X,y);
res = Mdl.Residuals.Raw;
figure;
plotResiduals(Mdl,'lagged');
figure;
plotResiduals(Mdl,'caseorder');
[hARCH,pValueARCH] = archtest(res)
hARCH = logical
0
pValueARCH = 0.2813
SubMdl = {fitlm(X(~fHIdx,:),y(~fHIdx)) fitlm(X(fHIdx,:),y(fHIdx))}; subRes = {SubMdl{1}.Residuals.Raw SubMdl{2}.Residuals.Raw}; [hVT2,pValueVT2] = vartest2(subRes{1},subRes{2})
hVT2 = 0
pValueVT2 = 0.1645
Остаточные графики и тесты позволяют предположить, что нововведения являются гомосцедастическими и некоррелированными.
Проведите тест Колмогорова-Смирнова, чтобы оценить, являются ли нововведения Гауссовыми.
[hKS,pValueKS] = kstest(res/std(res))
hKS = logical
0
pValueKS = 0.2347
hKS = 0
предлагает не отвергать нулевую гипотезу о том, что нововведения Гауссовы.
Для модели распределенной задержки предположения критерия Чоу кажутся допустимыми.
Рассматривая 2007 год и далее как режим после рецессии, проверяйте, является ли линейная модель стабильной. Укажите, что пропуском является последний квартал 2006 года. Поскольку дополнительный размер подмножества больше, чем количество коэффициентов, проведите тест точки пропуска.
bp = find(~fHIdx,1,'last'); chowtest(X,y,bp,'Display','summary');
RESULTS SUMMARY *************** Test 1 Sample size: 196 Breakpoint: 187 Test type: breakpoint Coefficients tested: All Statistic: 1.3741 Critical value: 2.1481 P value: 0.2272 Significance level: 0.0500 Decision: Fail to reject coefficient stability
Тест не может отклонить стабильность линейной модели. Доказательства неэффективны, чтобы сделать вывод о структурном изменении между Q4-2006
и Q1-2007
.
archtest
| chowtest
| fitlm
| LinearModel
| vartest2