exponenta event banner

прогноз

Ответы модели коррекции ошибок вектора прогноза (VEC)

Описание

пример

Y = forecast(Mdl,numperiods,Y0) возвращает путь прогнозов минимальной среднеквадратичной ошибки (MMSE) (Y) по длине numperiods горизонт прогноза с использованием полностью заданной модели VEC (p-1)Mdl. Прогнозируемые ответы представляют продолжение данных предварительной выборки. Y0.

пример

Y = forecast(Mdl,numperiods,Y0,Name,Value) использует дополнительные параметры, заданные одним или несколькими аргументами пары имя-значение. Например, 'X',X,'YF',YF определяет X в качестве будущих данных экзогенного предиктора для регрессионного компонента и YF в качестве будущих данных ответа для условного прогнозирования.

пример

[Y,YMSE] = forecast(___) возвращает соответствующую среднеквадратичную ошибку (MSE) каждого прогнозируемого ответа, используя любой из входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Рассмотрим модель VEC для следующих семи макроэкономических серий. Затем поместите модель в данные и прогнозируйте ответы на 12 кварталов в будущем.

  • Валовой внутренний продукт (ВВП)

  • Имплицитный дефлятор цен ВВП

  • Выплаченная компенсация работникам

  • Нефермерное деловое время всех лиц

  • Эффективная ставка федеральных фондов

  • Расходы на личное потребление

  • Валовые частные внутренние инвестиции

Предположим, что подходит коинтеграционный ранг 4 и один краткосрочный срок, то есть рассмотрим модель VEC (1).

Загрузить Data_USEconVECModel набор данных.

load Data_USEconVECModel

Для получения дополнительной информации о наборе данных и переменных введите Description в командной строке.

Определите необходимость предварительной обработки данных путем печати ряда на отдельных графиках.

figure;
subplot(2,2,1)
plot(FRED.Time,FRED.GDP);
title('Gross Domestic Product');
ylabel('Index');
xlabel('Date');
subplot(2,2,2)
plot(FRED.Time,FRED.GDPDEF);
title('GDP Deflator');
ylabel('Index');
xlabel('Date');
subplot(2,2,3)
plot(FRED.Time,FRED.COE);
title('Paid Compensation of Employees');
ylabel('Billions of $');
xlabel('Date');
subplot(2,2,4)
plot(FRED.Time,FRED.HOANBS);
title('Nonfarm Business Sector Hours');
ylabel('Index');
xlabel('Date');

Figure contains 4 axes. Axes 1 with title Gross Domestic Product contains an object of type line. Axes 2 with title GDP Deflator contains an object of type line. Axes 3 with title Paid Compensation of Employees contains an object of type line. Axes 4 with title Nonfarm Business Sector Hours contains an object of type line.

figure;
subplot(2,2,1)
plot(FRED.Time,FRED.FEDFUNDS);
title('Federal Funds Rate');
ylabel('Percent');
xlabel('Date');
subplot(2,2,2)
plot(FRED.Time,FRED.PCEC);
title('Consumption Expenditures');
ylabel('Billions of $');
xlabel('Date');
subplot(2,2,3)
plot(FRED.Time,FRED.GPDI);
title('Gross Private Domestic Investment');
ylabel('Billions of $');
xlabel('Date');

Figure contains 3 axes. Axes 1 with title Federal Funds Rate contains an object of type line. Axes 2 with title Consumption Expenditures contains an object of type line. Axes 3 with title Gross Private Domestic Investment contains an object of type line.

Стабилизируйте все ряды, за исключением ставки федеральных фондов, применяя преобразование журнала. Масштабируйте результирующий ряд на 100, чтобы все ряды имели одинаковый масштаб.

FRED.GDP = 100*log(FRED.GDP);      
FRED.GDPDEF = 100*log(FRED.GDPDEF);
FRED.COE = 100*log(FRED.COE);       
FRED.HOANBS = 100*log(FRED.HOANBS); 
FRED.PCEC = 100*log(FRED.PCEC);     
FRED.GPDI = 100*log(FRED.GPDI);

Создайте модель VEC (1) с использованием краткого синтаксиса. Укажите имена переменных.

Mdl = vecm(7,4,1);
Mdl.SeriesNames = FRED.Properties.VariableNames;

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

Оцените модель, используя весь набор данных и опции по умолчанию.

EstMdl = estimate(Mdl,FRED.Variables)
EstMdl = 
  vecm with properties:

             Description: "7-Dimensional Rank = 4 VEC(1) Model"
             SeriesNames: "GDP"  "GDPDEF"  "COE"  ... and 4 more
               NumSeries: 7
                    Rank: 4
                       P: 2
                Constant: [14.1329 8.77841 -7.20359 ... and 4 more]'
              Adjustment: [7×4 matrix]
           Cointegration: [7×4 matrix]
                  Impact: [7×7 matrix]
   CointegrationConstant: [-28.6082 109.555 -77.0912 ... and 1 more]'
      CointegrationTrend: [4×1 vector of zeros]
                ShortRun: {7×7 matrix} at lag [1]
                   Trend: [7×1 vector of zeros]
                    Beta: [7×0 matrix]
              Covariance: [7×7 matrix]

EstMdl является оценочным vecm объект модели. Он полностью указан, поскольку все параметры имеют известные значения. По умолчанию estimate налагает ограничения H1 форма модели Йохансена VEC, удаляя cointegrating тенденцию и линейные условия тенденции из модели. Исключение параметра из оценки эквивалентно наложению ограничений равенства на ноль.

Прогнозные ответы из расчетной модели на трехлетний горизонт. Укажите весь набор данных в качестве предварительных наблюдений.

numperiods = 12;
Y0 = FRED.Variables;
Y = forecast(EstMdl,numperiods,Y0);

Y является матрицей прогнозируемых ответов 12 на 7. Строки соответствуют горизонту прогноза, а столбцы - переменным в EstMdl.SeriesNames.

Постройте график прогнозируемых ответов и последних 50 истинных ответов.

fh = dateshift(FRED.Time(end),'end','quarter',1:12);

figure;
subplot(2,2,1)
h1 = plot(FRED.Time((end-49):end),FRED.GDP((end-49):end));
hold on
h2 = plot(fh,Y(:,1));
title('Gross Domestic Product');
ylabel('Index (scaled)');
xlabel('Date');
h = gca;
fill([FRED.Time(end) fh([end end]) FRED.Time(end)],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off
subplot(2,2,2)
h1 = plot(FRED.Time((end-49):end),FRED.GDPDEF((end-49):end));
hold on
h2 = plot(fh,Y(:,2));
title('GDP Deflator');
ylabel('Index (scaled)');
xlabel('Date');
h = gca;
fill([FRED.Time(end) fh([end end]) FRED.Time(end)],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off
subplot(2,2,3)
h1 = plot(FRED.Time((end-49):end),FRED.COE((end-49):end));
hold on
h2 = plot(fh,Y(:,3));
title('Paid Compensation of Employees');
ylabel('Billions of $ (scaled)');
xlabel('Date');
h = gca;
fill([FRED.Time(end) fh([end end]) FRED.Time(end)],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off
subplot(2,2,4)
h1 = plot(FRED.Time((end-49):end),FRED.HOANBS((end-49):end));
hold on
h2 = plot(fh,Y(:,4));
title('Nonfarm Business Sector Hours');
ylabel('Index (scaled)');
xlabel('Date');
h = gca;
fill([FRED.Time(end) fh([end end]) FRED.Time(end)],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off

Figure contains 4 axes. Axes 1 with title Gross Domestic Product contains 3 objects of type line, patch. These objects represent True, Forecast. Axes 2 with title GDP Deflator contains 3 objects of type line, patch. These objects represent True, Forecast. Axes 3 with title Paid Compensation of Employees contains 3 objects of type line, patch. These objects represent True, Forecast. Axes 4 with title Nonfarm Business Sector Hours contains 3 objects of type line, patch. These objects represent True, Forecast.

figure;
subplot(2,2,1)
h1 = plot(FRED.Time((end-49):end),FRED.FEDFUNDS((end-49):end));
hold on
h2 = plot(fh,Y(:,5));
title('Federal Funds Rate');
ylabel('Percent');
xlabel('Date');
h = gca;
fill([FRED.Time(end) fh([end end]) FRED.Time(end)],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off
subplot(2,2,2)
h1 = plot(FRED.Time((end-49):end),FRED.PCEC((end-49):end));
hold on
h2 = plot(fh,Y(:,6));
title('Consumption Expenditures');
ylabel('Billions of $ (scaled)');
xlabel('Date');
h = gca;
fill([FRED.Time(end) fh([end end]) FRED.Time(end)],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off
subplot(2,2,3)
h1 = plot(FRED.Time((end-49):end),FRED.GPDI((end-49):end));
hold on
h2 = plot(fh,Y(:,7));
title('Gross Private Domestic Investment');
ylabel('Billions of $ (scaled)');
xlabel('Date');
h = gca;
fill([FRED.Time(end) fh([end end]) FRED.Time(end)],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off

Figure contains 3 axes. Axes 1 with title Federal Funds Rate contains 3 objects of type line, patch. These objects represent True, Forecast. Axes 2 with title Consumption Expenditures contains 3 objects of type line, patch. These objects represent True, Forecast. Axes 3 with title Gross Private Domestic Investment contains 3 objects of type line, patch. These objects represent True, Forecast.

Рассмотрим модель и данные в серии безусловных ответов прогноза из модели VEC.

Загрузить Data_USEconVECModel набор данных и предварительная обработка данных.

load Data_USEconVECModel
FRED.GDP = 100*log(FRED.GDP);      
FRED.GDPDEF = 100*log(FRED.GDPDEF);
FRED.COE = 100*log(FRED.COE);       
FRED.HOANBS = 100*log(FRED.HOANBS); 
FRED.PCEC = 100*log(FRED.PCEC);     
FRED.GPDI = 100*log(FRED.GPDI);

Data_Recessions набор данных содержит начальные и конечные серийные даты спадов. Загрузите набор данных. Преобразование матрицы серийных номеров дат в массив datetime.

load Data_Recessions
dtrec = datetime(Recessions,'ConvertFrom','datenum');

Создайте фиктивную переменную, определяющую периоды, в которых США находились в состоянии рецессии или хуже. В частности, переменная должна быть 1 если FRED.Time происходит во время рецессии, и 0 в противном случае.

isin = @(x)(any(dtrec(:,1) <= x & x <= dtrec(:,2)));
isrecession = double(arrayfun(isin,FRED.Time));

Создайте модель VEC (1) с использованием краткого синтаксиса. Предположим, что соответствующий ранг коинтеграции равен 4. При создании модели не требуется указывать наличие регрессионного компонента. Укажите имена переменных.

Mdl = vecm(7,4,1);
Mdl.SeriesNames = FRED.Properties.VariableNames;

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

bfh = FRED.Time(end) - years(3);
estIdx = FRED.Time < bfh;
EstMdl = estimate(Mdl,FRED{estIdx,:},'X',isrecession(estIdx));

Прогнозирование пути ежеквартальных ответов на три года в будущем.

Y0 = FRED{estIdx,:};
Y = forecast(EstMdl,12,Y0,'X',isrecession(~estIdx));

Y является матрицей 12 на 7 смоделированных откликов. Строки соответствуют горизонту прогноза, а столбцы - переменным в EstMdl.SeriesNames.

Постройте график прогнозируемых ответов и последних 40 истинных ответов.

figure;
subplot(2,2,1)
h1 = plot(FRED.Time((end-39):end),FRED.GDP((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,1));
title('Gross Domestic Product');
ylabel('Index (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off
subplot(2,2,2)
h1 = plot(FRED.Time((end-39):end),FRED.GDPDEF((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,2));
title('GDP Deflator');
ylabel('Index (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off
subplot(2,2,3)
h1 = plot(FRED.Time((end-39):end),FRED.COE((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,3));
title('Paid Compensation of Employees');
ylabel('Billions of $ (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off
subplot(2,2,4)
h1 = plot(FRED.Time((end-39):end),FRED.HOANBS((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,4));
title('Nonfarm Business Sector Hours');
ylabel('Index (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off

Figure contains 4 axes. Axes 1 with title Gross Domestic Product contains 3 objects of type line, patch. These objects represent True, Forecast. Axes 2 with title GDP Deflator contains 3 objects of type line, patch. These objects represent True, Forecast. Axes 3 with title Paid Compensation of Employees contains 3 objects of type line, patch. These objects represent True, Forecast. Axes 4 with title Nonfarm Business Sector Hours contains 3 objects of type line, patch. These objects represent True, Forecast.

figure;
subplot(2,2,1)
h1 = plot(FRED.Time((end-39):end),FRED.FEDFUNDS((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,5));
title('Federal Funds Rate');
ylabel('Percent');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off
subplot(2,2,2)
h1 = plot(FRED.Time((end-39):end),FRED.PCEC((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,6));
title('Consumption Expenditures');
ylabel('Billions of $ (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off
subplot(2,2,3)
h1 = plot(FRED.Time((end-39):end),FRED.GPDI((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,7));
title('Gross Private Domestic Investment');
ylabel('Billions of $ (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2],'True','Forecast','Location','Best')
hold off

Figure contains 3 axes. Axes 1 with title Federal Funds Rate contains 3 objects of type line, patch. These objects represent True, Forecast. Axes 2 with title Consumption Expenditures contains 3 objects of type line, patch. These objects represent True, Forecast. Axes 3 with title Gross Private Domestic Investment contains 3 objects of type line, patch. These objects represent True, Forecast.

Анализ точности прогноза с использованием интервалов прогноза на трехлетнем горизонте. Этот пример следует из серии безусловных ответов прогноза из модели VEC.

Загрузить Data_USEconVECModel набор данных и предварительная обработка данных.

load Data_USEconVECModel
FRED.GDP = 100*log(FRED.GDP);      
FRED.GDPDEF = 100*log(FRED.GDPDEF);
FRED.COE = 100*log(FRED.COE);       
FRED.HOANBS = 100*log(FRED.HOANBS); 
FRED.PCEC = 100*log(FRED.PCEC);     
FRED.GPDI = 100*log(FRED.GPDI);

Оценка модели VEC (1). Зарезервируйте последние три года данных для оценки точности прогноза. Предположите, что соответствующий разряд коинтеграции равняется 4 и H1, форма Йохансена подходит для модели .

bfh = FRED.Time(end) - years(3);
estIdx = FRED.Time < bfh;
Mdl = vecm(7,4,1);
Mdl.SeriesNames = FRED.Properties.VariableNames;
EstMdl = estimate(Mdl,FRED{estIdx,:});

Прогнозные ответы из расчетной модели на трехлетний горизонт. Укажите все наблюдения в образце в качестве предварительного примера. Верните MSE прогнозов.

numperiods = 12;
Y0 = FRED{estIdx,:};
[Y,YMSE] = forecast(EstMdl,numperiods,Y0);

Y является матрицей прогнозируемых ответов 12 на 7. YMSE является вектором ячейки 12 на 1 из матриц 7 на 7, соответствующих MSE.

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

extractMSE = @(x)diag(x)';
MSE = cellfun(extractMSE,YMSE,'UniformOutput',false);
SE = sqrt(cell2mat(MSE));

Оценка приблизительно 95% интервалов прогноза для каждой серии ответов.

YFI = zeros(numperiods,Mdl.NumSeries,2);

YFI(:,:,1) = Y - 2*SE;
YFI(:,:,2) = Y + 2*SE;

Постройте график прогнозируемых ответов и последних 40 истинных ответов.

figure;
subplot(2,2,1)
h1 = plot(FRED.Time((end-39):end),FRED.GDP((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,1));
h3 = plot(FRED.Time(~estIdx),YFI(:,1,1),'k--');
plot(FRED.Time(~estIdx),YFI(:,1,2),'k--');
title('Gross Domestic Product');
ylabel('Index (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2 h3],'True','Forecast','95% Forecast interval',...
    'Location','best');
hold off
subplot(2,2,2)
h1 = plot(FRED.Time((end-39):end),FRED.GDPDEF((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,2));
h3 = plot(FRED.Time(~estIdx),YFI(:,2,1),'k--');
plot(FRED.Time(~estIdx),YFI(:,2,2),'k--');
title('GDP Deflator');
ylabel('Index (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2 h3],'True','Forecast','95% Forecast interval',...
    'Location','best');
hold off
subplot(2,2,3)
h1 = plot(FRED.Time((end-39):end),FRED.COE((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,3));
h3 = plot(FRED.Time(~estIdx),YFI(:,3,1),'k--');
plot(FRED.Time(~estIdx),YFI(:,3,2),'k--');
title('Paid Compensation of Employees');
ylabel('Billions of $ (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2 h3],'True','Forecast','95% Forecast interval',...
    'Location','best');
hold off
subplot(2,2,4)
h1 = plot(FRED.Time((end-39):end),FRED.HOANBS((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,4));
h3 = plot(FRED.Time(~estIdx),YFI(:,4,1),'k--');
plot(FRED.Time(~estIdx),YFI(:,4,2),'k--');
title('Nonfarm Business Sector Hours');
ylabel('Index (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2 h3],'True','Forecast','95% Forecast interval',...
    'Location','best');
hold off

Figure contains 4 axes. Axes 1 with title Gross Domestic Product contains 5 objects of type line, patch. These objects represent True, Forecast, 95% Forecast interval. Axes 2 with title GDP Deflator contains 5 objects of type line, patch. These objects represent True, Forecast, 95% Forecast interval. Axes 3 with title Paid Compensation of Employees contains 5 objects of type line, patch. These objects represent True, Forecast, 95% Forecast interval. Axes 4 with title Nonfarm Business Sector Hours contains 5 objects of type line, patch. These objects represent True, Forecast, 95% Forecast interval.

figure;
subplot(2,2,1)
h1 = plot(FRED.Time((end-39):end),FRED.FEDFUNDS((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,5));
h3 = plot(FRED.Time(~estIdx),YFI(:,5,1),'k--');
plot(FRED.Time(~estIdx),YFI(:,5,2),'k--');
title('Federal Funds Rate');
ylabel('Percent');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2 h3],'True','Forecast','95% Forecast interval',...
    'Location','best');
hold off
subplot(2,2,2)
h1 = plot(FRED.Time((end-39):end),FRED.PCEC((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,6));
h3 = plot(FRED.Time(~estIdx),YFI(:,6,1),'k--');
plot(FRED.Time(~estIdx),YFI(:,6,2),'k--');
title('Consumption Expenditures');
ylabel('Billions of $ (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2 h3],'True','Forecast','95% Forecast interval',...
    'Location','best');
hold off
subplot(2,2,3)
h1 = plot(FRED.Time((end-39):end),FRED.GPDI((end-39):end));
hold on
h2 = plot(FRED.Time(~estIdx),Y(:,7));
h3 = plot(FRED.Time(~estIdx),YFI(:,7,1),'k--');
plot(FRED.Time(~estIdx),YFI(:,7,2),'k--');
title('Gross Private Domestic Investment');
ylabel('Billions of $ (scaled)');
xlabel('Date');
h = gca;
fill([bfh h.XLim([2 2]) bfh],h.YLim([1 1 2 2]),'k',...
    'FaceAlpha',0.1,'EdgeColor','none');
legend([h1 h2 h3],'True','Forecast','95% Forecast interval',...
    'Location','best');
hold off

Figure contains 3 axes. Axes 1 with title Federal Funds Rate contains 5 objects of type line, patch. These objects represent True, Forecast, 95% Forecast interval. Axes 2 with title Consumption Expenditures contains 5 objects of type line, patch. These objects represent True, Forecast, 95% Forecast interval. Axes 3 with title Gross Private Domestic Investment contains 5 objects of type line, patch. These objects represent True, Forecast, 95% Forecast interval.

Входные аргументы

свернуть все

Модель VEC, заданная как vecm объект модели, созданный vecm или estimate. Mdl должен быть полностью указан.

Горизонт прогноза или количество моментов времени в периоде прогноза, указанное как положительное целое число.

Типы данных: double

Предварительный пример ответов, которые предоставляют начальные значения для прогнозов, указанные как numpreobsоколо-numseries числовая матрица или numpreobsоколо-numseriesоколо-numprepaths числовой массив.

numpreobs - количество предварительных наблюдений. numseries - число серий ответов (Mdl.NumSeries). numprepaths - количество путей предварительного отбора ответов.

Строки соответствуют предварительным наблюдениям, а последняя строка содержит последнее наблюдение. Y0 должен содержать не менее Mdl.P строк. Если указано больше строк, чем необходимо, forecast использует только последние Mdl.P наблюдения.

Столбцы должны соответствовать именам серий ответов в Mdl.SeriesNames.

Страницы соответствуют отдельным независимым путям.

  • Если не указать YF аргумент пары имя-значение, затем forecast инициализирует каждый прогнозируемый путь (страницу) с помощью соответствующей страницы Y0. Поэтому выходной аргумент Y имеет numprepaths страницы.

  • При указании YF аргумент пары имя-значение, затем forecast выполняет одно из этих действий.

    • Если Y0 является матрицей, то forecast инициализирует каждый путь прогноза (страница) в YF использование Y0. Поэтому все пути в выходном аргументе Y вытекают из общих исходных условий.

    • В противном случае forecast применяется Y0(:,:,j) для инициализации пути прогнозирования j. Y0 должен иметь по крайней мере numpaths страницы, и forecast использует только первый numpaths страницы.

    Среди всех страниц наблюдения в конкретной строке происходят одновременно.

Типы данных: double

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'X',X,'YF',YF использует матрицу X в качестве данных предиктора в компоненте регрессии и матрице YF как частично известные будущие ответы для условного прогнозирования.

Прогнозируемый временной ряд предикторов для включения в компонент регрессии модели, указанный как пара, разделенная запятыми, состоящая из 'X' и числовую матрицу, содержащую numpreds столбцы.

numpreds - количество переменных предиктора (size(Mdl.Beta,2)).

Строки соответствуют наблюдениям. Ряд j содержит j-прогноз шага. X должен иметь по крайней мере numperiods строк. Если указано больше строк, чем необходимо, forecast использует только самый ранний numperiods наблюдения. Первая строка содержит самое раннее наблюдение.

Столбцы соответствуют отдельным переменным предиктора. Все переменные предиктора присутствуют в регрессионной составляющей каждого уравнения ответа.

forecast применяется X к каждому пути (странице); то есть X представляет один путь наблюдаемых предикторов.

Для обеспечения непротиворечивости модели в горизонте прогноза рекомендуется указывать прогнозируемые предикторы при Mdl имеет регрессионный компонент.

По умолчанию forecast исключает компонент регрессии, независимо от его присутствия в Mdl.

Типы данных: double

Будущий многомерный ряд ответов для условного прогнозирования, указанный как пара, разделенная запятыми, состоящая из 'YF' и числовую матрицу или 3-D массив, содержащий numseries столбцы.

Строки соответствуют наблюдениям в горизонте прогноза, и первая строка является самым ранним наблюдением. В частности, строка j в пути образца k (YF(j,:,k)) содержит ответы j периоды в будущее. YF должен иметь по крайней мере numperiods для охвата горизонта прогноза. Если указано больше строк, чем необходимо, forecast использует только первый numperiods строк.

Столбцы соответствуют переменным ответа в Y0.

Страницы соответствуют типовым путям. В частности, путь k (YF(:,:,k)) фиксирует состояние или знание ряда ответов по мере того, как они эволюционируют из прошлого предварительной выборки (Y0) в будущее.

  • Если YF является матрицей, то forecast применяется YF каждому из numpaths пути вывода (см. Y0).

  • В противном случае YF должен иметь по крайней мере numpaths страницы. Если вы предоставите больше страниц, чем необходимо, forecast использует только первый numpaths страницы.

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

По умолчанию YF представляет собой массив, состоящий из NaN значения, указывающие на полное отсутствие информации о будущем состоянии всех ответов в горизонте прогноза. В этом случае forecast оценивает традиционные прогнозы MMSE.

Дополнительные сведения см. в разделе Алгоритмы.

Пример: Рассмотрим возможность прогнозирования одного пути модели VEC, состоящей из четырех откликов серии три периода в будущем. Предположим, что у вас есть предыдущие знания о некоторых будущих значениях ответов, и вы хотите прогнозировать неизвестные ответы в зависимости от ваших знаний. Определить YF как матрица, содержащая известные значения и использующая NaN для значений, которые вы не знаете, но хотите прогнозировать. Например, 'YF',[NaN 2 5 NaN; NaN NaN 0.1 NaN; NaN NaN NaN NaN] указывает, что вы не знаете будущих значений первой и четвертой серий ответов; Вы знаете значение периода 1 во втором ряду ответов, но никакого другого значения; и вы знаете значения для периодов 1 и 2 в третьем ряду ответов, но не значение для периода 3.

Типы данных: double

Примечание

NaN значения в Y0 и X укажите отсутствующие значения. forecast удаляет отсутствующие значения из данных путем удаления по списку. Если Y0 является массивом 3-D, то forecast выполняет эти шаги.

  1. Горизонтально объединять страницы для формирования numpreobsоколо-numpaths*numseries матрица.

  2. Удалить любую строку, содержащую хотя бы одну NaN из объединенных данных.

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

Для отсутствующих значений в X, forecast удаляет соответствующую строку с каждой страницы YF. После удаления строки из X и YF, если число строк меньше numperiods, то forecast выдает ошибку.

Выходные аргументы

свернуть все

Прогнозы MMSE серии многомерных ответов, возвращенные как numobsоколо-numseries числовая матрица или numobsоколо-numseriesоколо-numpaths числовой массив. Y представляет продолжение предварительных ответов в Y0. Строки соответствуют наблюдениям, столбцы соответствуют переменным ответа, а страницы соответствуют пути выборки. Ряд j является j-прогноз на период.

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

Матрицы MSE прогнозируемых ответов в Y, возвращено как numperiods-по-1 клеточный вектор numseriesоколо-numseries числовые матрицы. Ячейки YMSE составляют временной ряд ковариационных матриц ошибок прогноза. Клетка j содержит j-периодная матрица MSE.

YMSE идентичен для всех путей.

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

Алгоритмы

  • forecast оценивает безусловные прогнозы с помощью уравнения

    Δy^t=A^B^′y^t−1+Φ^1Δy^t−1+... + Start^ pΔy ^ t p + c ^ + d ^ t + xtβ ^,

    где t = 1,...,numperiods. forecast фильтрует a numperiodsоколо-numseries матрица нулевых инноваций через Mdl. forecast использует указанные инновации предварительного образца (Y0) при необходимости.

  • forecast оценивает условные прогнозы с помощью фильтра Калмана.

    1. forecast представляет модель VEC Mdl как модель состояния-пространства (ssm объект модели) без ошибки наблюдения.

    2. forecast фильтрация данных прогноза YF через модель состояния-пространства. В периоде t в горизонте прогноза любой неизвестный ответ

      Δy^t=A^B^′y^t−1+Φ^1Δy^t−1+... + Start^ pΔy ^ t p + c ^ + d ^ t + xtβ ^,

      где y ^ s , s < t - отфильтрованная оценка y из периода s в горизонте прогноза. forecast использует указанные значения предварительной выборки в Y0 для периодов до горизонта прогноза.

    Дополнительные сведения см. в разделе filter и [4], стр. 612 и 615.

  • Путь forecast определяет numpaths, количество страниц в выходном аргументе Y, зависит от типа прогноза.

    • Если вы оцениваете безусловные прогнозы, это означает, что вы не указываете аргумент пары имя-значение YF, то numpaths - количество страниц во входном аргументе Y0.

    • При оценке условных прогнозов и Y0 и YF иметь более одной страницы, то numpaths - количество страниц в массиве с меньшим количеством страниц. Если количество страниц в Y0 или YF превышает numpaths, то forecast использует только первый numpaths страницы.

    • При оценке условных прогнозов и Y0 или YF имеет одну страницу, затем numpaths - количество страниц в массиве с наибольшим количеством страниц. forecast использует массив с одной страницей для каждого пути.

  • forecast устанавливает начало времени моделей, которые включают линейные временные тренды (t0) в size(Y0,1)Mdl.P (после удаления отсутствующих значений). Поэтому время в компоненте тренда равно t = t0 + 1, t0 + 2,..., t0 + numobs. Это соглашение согласуется с поведением по умолчанию оценки модели, в которой estimate удаляет первый Mdl.P ответы, уменьшая эффективный размер выборки. Хотя forecast явно использует первый Mdl.P предварительный отбор ответов в Y0 для инициализации модели общее количество наблюдений (исключая отсутствующие значения) определяет t0.

Ссылки

[1] Гамильтон, Джеймс Д. Анализ временных рядов. Принстон, Нью-Джерси: Princeton University Press, 1994.

[2] Йохансен, С. Вывод на основе правдоподобия в коинтегрированных векторных авторегрессионных моделях. Oxford: Oxford University Press, 1995.

[3] Джуселиус, К. Коинтегрированная модель VAR. Oxford: Oxford University Press, 2006.

[4] Lütkepohl, H. Новое введение в анализ множественных временных рядов. Берлин: Спрингер, 2005.

См. также

Объекты

Функции

Представлен в R2017b