Прогнозные ответы модели коррекции ошибок вектора (VEC)
возвращает путь прогнозов минимальной квадратичной невязки (MMSE) (Y
= forecast(Mdl
,numperiods
,Y0
)Y
) по длине numperiods
прогнозный горизонт с использованием полностью заданной модели VEC (p - 1) Mdl
. Прогнозируемые отклики представляют продолжение предварительных образцов данных Y0
.
использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Для примера, Y
= forecast(Mdl
,numperiods
,Y0
,Name,Value
)'X',X,'YF',YF
задает X
как будущие экзогенные данные предиктора для регрессионного компонента и YF
как будущие данные отклика для условного прогнозирования.
Рассмотрим модель 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; 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');
Стабилизируйте все ряды, кроме ставки федеральных фондов, используя преобразование журнала. Масштабируйте полученную серию на 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) с помощью синтаксиса shorthand. Задайте имена переменных.
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 форму модели Johansen VEC путем удаления коинтегрирующего тренда и линейных терминов тренда из модели. Исключение параметра из оценки эквивалентно наложению ограничений равенства на нуль.
Прогнозные отклики от предполагаемой модели на трехлетний горизонт. Задайте весь набор данных как предварительные наблюдения.
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; 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
Рассмотрим модель и данные в серии прогнозов безусловного отклика из модели 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);
The 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) с помощью синтаксиса shorthand. Предположим, что соответствующий ранг коинтеграции равен 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; 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
Анализ точности прогноза с помощью интервалов прогноза на трехлетнем горизонте. Этот пример следует из Прогнозирования Безусловного Ряда Отклика из Модели 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; 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
numperiods
- Прогнозный горизонтГоризонт прогноза или количество временных точек в прогнозном периоде, заданное в виде положительного целого числа.
Типы данных: double
Y0
- Примитивные откликиПримитивируйте отклики, которые обеспечивают начальные значения для прогнозов, заданные как numpreobs
-by- numseries
числовая матрица или numpreobs
-by- numseries
-by- 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'
- Прогнозируемые временные ряды предикторовПредсказанные временные ряды предикторов для включения в компонент регрессии модели, заданные как разделенная разделенными запятой парами, состоящая из 'X'
и числовую матрицу, содержащую numpreds
столбцы.
numpreds
- количество переменных предиктора (size(Mdl.Beta,2)
).
Строки соответствуют наблюдениям. Строка j
содержит j
-теплового прогноза. X
должно иметь по крайней мере numperiods
строки. Если вы поставляете больше строк, чем нужно, forecast
использует только самую раннюю numperiods
наблюдения. Первая строка содержит самое раннее наблюдение.
Столбцы соответствуют отдельным переменным предиктора. Все переменные предиктора присутствуют в регрессионном компоненте каждого уравнения отклика.
forecast
применяется X
на каждый путь (страницу); то есть X
представляет один путь наблюдаемых предикторов.
Чтобы сохранить согласованность модели в прогнозном горизонте, рекомендуется задать прогнозные предикторы при Mdl
имеет регрессионный компонент.
По умолчанию, forecast
исключает регрессионный компонент, независимо от его присутствия в Mdl
.
Типы данных: double
'YF'
- Будущие многомерные ряды откликовБудущий многомерный ряд отклика для условного прогнозирования, заданный как разделенная разделенными запятой парами, состоящая из 'YF'
и числовую матрицу или трехмерный массив, содержащую 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
является трехмерный массив, тогда forecast
выполняет эти шаги.
Горизонтальная конкатенация страниц для формирования numpreobs
-by- numpaths*numseries
матрица.
Удалите любую строку, содержащую по крайней мере одну NaN
из конкатенированных данных.
В случае отсутствующих наблюдений результаты, полученные из нескольких путей Y0
может отличаться от результатов, полученных по каждому пути индивидуально.
Для отсутствующих значений в X
, forecast
удаляет соответствующую строку с каждой страницы YF
. После удаления строки из X
и YF
, если количество строк меньше numperiods
, затем forecast
выдает ошибку.
Y
- Прогнозы MMSE многомерных рядов откликовПрогнозы MMSE многомерной серии ответов, возвращенные как numobs
-by- numseries
числовая матрица или numobs
-by- numseries
-by- numpaths
числовой массив. Y
представляет продолжение настроек presample в Y0
. Строки соответствуют наблюдениям, столбцы соответствуют переменным отклика, а страницы соответствуют путям расчета. Строка j
является j
-период-опережающий прогноз.
Если вы задаете будущие отклики для условного прогнозирования с помощью YF
аргумент пары "имя-значение", затем известные значения в YF
появляются на тех же позициях в Y
. Однако Y
содержит прогнозные значения для отсутствующих наблюдений в YF
.
YMSE
- Матрицы MSE прогнозируемых ответовМатрицы MSE прогнозируемых ответов в Y
, возвращается как numperiods
-by-1 вектор камеры numseries
-by- numseries
числовые матрицы. Камеры YMSE
составьте временные ряды ковариационных матриц прогнозной ошибки. Камеры j
содержит j
-period-award MSE матрица.
YMSE
идентичен для всех путей.
Поскольку forecast
обрабатывает переменные предиктора в X
как экзогенный и нестохастический, YMSE
отражает ковариацию ошибки, связанную с авторегрессивным компонентом модели входа Mdl
только.
forecast
оценивает безусловные прогнозы используя уравнение
где t = 1,..., numperiods
. forecast
фильтрует numperiods
-by- numseries
матрица нулевых инноваций посредством Mdl
. forecast
использует указанные нововведения presample (Y0
) при необходимости.
forecast
оценивает условные прогнозы с помощью фильтра Калмана.
forecast
представляет модель VEC Mdl
как модель пространства состояний (ssm
объект модели) без ошибки наблюдения.
forecast
фильтрует прогнозные данные YF
через модель пространства состояний. В период t в прогнозном горизонте, любой неизвестный ответ
где
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
устанавливает временный источник моделей, которые включают линейные временные тренды (t 0) в size(Y0,1)
– Mdl.P
(после удаления отсутствующих значений). Поэтому время в компоненте тренда: t = t 0 + 1, t 0 + 2,..., t 0 + numobs
. Это соглашение согласуется с поведением по умолчанию оценки модели, в которой estimate
удаляет первый Mdl.P
ответы, уменьшение эффективного размера выборки. Хотя forecast
явно использует первое Mdl.P
примитивируйте отклики в Y0
чтобы инициализировать модель, общее количество наблюдений (исключая отсутствующие значения) определяет t 0.
[1] Гамильтон, Джеймс Д. Анализ временных рядов. Princeton, NJ: Princeton University Press, 1994.
[2] Йохансен, С. Основанный на вероятностях вывод в коинтегрированных векторных авторегрессивных моделях. Oxford: Oxford University Press, 1995.
[3] Juselius, K. Cointegrated VAR Model. Oxford: Oxford University Press, 2006.
[4] Lütkepohl, H. Новое введение в анализ нескольких временных рядов. Берлин: Спрингер, 2005.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.