Предскажите ответы модели векторного исправления ошибок (VEC)
Y = forecast(Mdl,numperiods,Y0)
Y = forecast(Mdl,numperiods,Y0,Name,Value)
[Y,YMSE]
= forecast(___)
возвращается путь минимальной среднеквадратической ошибки (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 четвертей в будущее.
Валовой внутренний продукт (ВВП)
GDP неявный ценовой дефлятор
Заплаченная компенсация сотрудников
Несельскохозяйственные часы делового сектора всех людей
Эффективная ставка по федеральным фондам
Частные потребительские расходы
Грубые частные внутренние инвестиции
Предположим, что cointegrating ранг 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) с помощью краткого синтаксиса. Задайте имена переменных.
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; 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);
Набор данных 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; 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 матриц, соответствующих MSEs.
Извлеките основные диагональные элементы из матриц в каждой ячейке 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
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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
представляет продолжение преддемонстрационных ответов в Y0
. Строки соответствуют наблюдениям, столбцы соответствуют переменным отклика, и страницы соответствуют демонстрационным путям. Строкой j
является j
- прогноз периода вперед.
Если вы задаете будущие ответы для условного прогнозирования с помощью аргумента пары "имя-значение" YF
, то известные значения в YF
появляются в тех же положениях в Y
. Однако Y
содержит предсказанные значения для недостающих наблюдений в YF
.
YMSE
— Матрицы MSE предсказанных ответовМатрицы MSE предсказанных ответов в Y
, возвращенном как numperiods
-by-1 вектор ячейки numseries
-by-numseries
числовые матрицы. Ячейки YMSE
составляют временные ряды ковариационных матриц ошибки прогноза. Ячейка j
содержит j
- период вперед матрица MSE.
YMSE
идентичен для всех путей.
Поскольку forecast
обрабатывает переменные прогноза в X
как внешние и нестохастические, YMSE
отражает ошибочную ковариацию, сопоставленную с авторегрессивным компонентом входной модели Mdl
только.
forecast
оценивает безусловные прогнозы с помощью уравнения
где t = 1..., numperiods
. forecast
фильтрует numperiods
-by-numseries
матрица инноваций с нулевым знаком через Mdl
. использование forecast
заданные преддемонстрационные инновации (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] Гамильтон, J. D. Анализ timeseries. Принстон, NJ: Издательство Принстонского университета, 1994.
[2] Йохансен, S. Основанный на вероятности вывод в векторных авторегрессивных моделях Cointegrated. Оксфорд: Издательство Оксфордского университета, 1995.
[3] Juselius, K. Модель VAR Cointegrated. Оксфорд: Издательство Оксфордского университета, 2006.
[4] Lütkepohl, H. Новое введение в несколько анализ временных рядов. Берлин: Спрингер, 2005.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.