В этом примере показано, как проверить предположения модели для теста Chow. Модель представляет собой валовой внутренний продукт (ВВП) США с индексом потребительских цен (ИПЦ) и выплачиваемой компенсацией работникам (ИПЦ) в качестве предикторов. Горизонт прогноза 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
Все переменные растут экспоненциально. Также вокруг последней рецессии появляется спад. Предположим, что модель линейной регрессии ВВП на ИПЦ и ИПЦ является подходящей, и вы хотите проверить, произошло ли структурное изменение в модели в 2007 году.
Тесты Chow основаны на:
Независимые гауссово-распределенные инновации
Постоянство дисперсии инноваций в подмножествах
Постоянство инноваций в любых структурных разрывах
Если модель нарушает эти предположения, то результат теста Chow может быть неверным, или тест Chow может не иметь мощности. Выясните, сохраняются ли предположения. Если таковые отсутствуют, выполните предварительную обработку данных.
Поместите линейную модель во весь ряд. Включить перехват.
Mdl = fitlm(X,y);
Mdl является LinearModel объект модели.
Извлеките остатки из расчетной линейной модели. Нарисуйте два графика гистограммы с использованием остатков: один по отношению к установленным значениям в порядке обращения, а другой по отношению к предыдущему остатку.
res = Mdl.Residuals.Raw;
figure;
plotResiduals(Mdl,'lagged');
figure;
plotResiduals(Mdl,'caseorder');
Поскольку график рассеяния остаточного и запаздывающего остатков образует тенденцию, автокорреляция существует в остатках. Кроме того, остатки на крайностях, по-видимому, вспыхивают, что предполагает наличие гетероскедастичности.
Проведите тест Engle ARCH на уровне значимости 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);На основе остаточной диагностики выберите эту линейную модель для ВВП.
β5GDPt-1 + αt.
должен быть гауссовой серией нововведений со средним нулем и постоянной дисперсией .
Снова диагностируйте остатки.
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 предлагает не отвергать нулевую гипотезу о том, что нововведения являются гауссовыми.
Для модели распределенного запаздывания допустимы допущения теста Chow.
Рассматривая 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