Инновации модели векторной коррекции ошибок (VEC)
использует дополнительные параметры, заданные одним или несколькими аргументами пары имя-значение. Например, E = infer(Mdl,Y,Name,Value)'Y0',Y0,'X',X определяет Y0 в качестве предварительных ответов и X в качестве данных экзогенного предиктора для регрессионного компонента.
Рассмотрим модель VEC для следующих семи макроэкономических рядов, а затем подберите модель к данным.
Валовой внутренний продукт (ВВП)
Имплицитный дефлятор цен ВВП
Выплаченная компенсация работникам
Нефермерное деловое время всех лиц
Эффективная ставка федеральных фондов
Расходы на личное потребление
Валовые частные внутренние инвестиции
Предположим, что подходит коинтеграционный ранг 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 with properties:
Description: "7-Dimensional Rank = 4 VEC(1) Model with Linear Time Trend"
SeriesNames: "GDP" "GDPDEF" "COE" ... and 4 more
NumSeries: 7
Rank: 4
P: 2
Constant: [7×1 vector of NaNs]
Adjustment: [7×4 matrix of NaNs]
Cointegration: [7×4 matrix of NaNs]
Impact: [7×7 matrix of NaNs]
CointegrationConstant: [4×1 vector of NaNs]
CointegrationTrend: [4×1 vector of NaNs]
ShortRun: {7×7 matrix of NaNs} at lag [1]
Trend: [7×1 vector of NaNs]
Beta: [7×0 matrix]
Covariance: [7×7 matrix of NaNs]
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 тенденцию и линейные условия тенденции из модели. Исключение параметра из оценки эквивалентно наложению ограничений равенства на ноль.
Выведите инновации из расчетной модели.
E = infer(EstMdl,FRED.Variables);
E является матрицей выводимых инноваций 238 на 7. Столбцы соответствуют именам переменных в EstMdl.SeriesNames.
Кроме того, можно вернуть остатки при вызове estimate путем подачи выходной переменной в четвертой позиции.
Постройте графики остатков на отдельных графиках. Синхронизировать остатки с датами, удалив первый EstMdl.P даты.
idx = FRED.Time((EstMdl.P + 1):end); figure; subplot(2,2,1) plot(idx,E(:,1)); title('Residuals: GDP'); ylabel('Index (scaled)'); xlabel('Date'); subplot(2,2,2) plot(idx,E(:,2)); title('Residuals: GDP Deflator'); ylabel('Index (scaled'); xlabel('Date'); subplot(2,2,3) plot(idx,E(:,3)); title('Residuals: PCE'); ylabel('Billions of $ (scaled)'); xlabel('Date'); subplot(2,2,4) plot(idx,E(:,4)); title('Residuals: NBSH'); ylabel('Index (scaled)'); xlabel('Date');

figure; subplot(2,2,1) plot(idx,E(:,5)); title('Residuals: Federal Funds Rate'); ylabel('Percent'); xlabel('Date'); subplot(2,2,2) plot(idx,E(:,6)); title('Residuals: COE'); ylabel('Billions of $ (scaled)'); xlabel('Date'); subplot(2,2,3) plot(idx,E(:,7)); title('Residuals: GPDI'); ylabel('Billions of $ (scaled)'); xlabel('Date');

Остатки, соответствующие ставке федеральных фондов, демонстрируют гетероскедастичность.
Рассмотрим модель и данные в Infer VEC Model Innovations.
Загрузить 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;
Оцените модель, используя весь образец. Укажите предиктор, определяющий, измерялось ли наблюдение во время рецессии. Возврат стандартных ошибок.
EstMdl = estimate(Mdl,FRED.Variables,'X',isrecession);Выведите инновации из расчетной модели. Введите данные предиктора. Верните значение целевой функции loglikeability.
[E,logL] = infer(EstMdl,FRED.Variables,'X',isrecession);
logLlogL = -1.4656e+03
E является матрицей выводимых инноваций 238 на 7.
Постройте графики остатков на отдельных графиках. Синхронизировать остатки с датами, удалив первый Mdl.P даты.
idx = FRED.Time((EstMdl.P + 1):end); figure; subplot(2,2,1) plot(idx,E(:,1)); title('Residuals: GDP'); ylabel('Index (scaled)'); xlabel('Date'); subplot(2,2,2) plot(idx,E(:,2)); title('Residuals: GDP Deflator'); ylabel('Index (scaled'); xlabel('Date'); subplot(2,2,3) plot(idx,E(:,3)); title('Residuals: PCE'); ylabel('Billions of $ (scaled)'); xlabel('Date'); subplot(2,2,4) plot(idx,E(:,4)); title('Residuals: NBSH'); ylabel('Index (scaled)'); xlabel('Date');

figure; subplot(2,2,1) plot(idx,E(:,5)); title('Residuals: Federal Funds Rate'); ylabel('Percent'); xlabel('Date'); subplot(2,2,2) plot(idx,E(:,6)); title('Residuals: COE'); ylabel('Billions of $ (scaled)'); xlabel('Date'); subplot(2,2,3) plot(idx,E(:,7)); title('Residuals: GPDI'); ylabel('Billions of $ (scaled)'); xlabel('Date');

Остатки, соответствующие ставке федеральных фондов, демонстрируют гетероскедастичность.
Y - Данные ответаДанные ответа, указанные как numobsоколо-numseries числовая матрица или numobsоколо-numseriesоколо-numpaths числовой массив.
numobs - размер выборки. numseries - число серий ответов (Mdl.NumSeries). numpaths - количество путей ответа.
Строки соответствуют наблюдениям, а последняя строка содержит последнее наблюдение. Y представляет продолжение последовательности ответов предварительной выборки в Y0.
Столбцы должны соответствовать именам переменных ответа в Mdl.SeriesNames.
Страницы соответствуют отдельным, независимым numseries-мерные пути. Среди всех страниц ответы в определенной строке появляются одновременно.
Типы данных: double
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Y0',Y0,'X',X использует матрицу Y0 в качестве предварительных ответов и матрицы X в качестве данных предиктора в компоненте регрессии.'Y0' - Предварительный отбор ответовПредварительный отбор ответов, обеспечивающих начальные значения для модели, указанной как пара, разделенная запятыми, состоящая из 'Y0' и numpreobsоколо-numseries числовая матрица или numpreobsоколо-numseriesоколо-numprepaths числовой массив.
numpreobs - количество предварительных наблюдений. numprepaths - количество путей предварительного отбора ответов.
Строки соответствуют предварительным наблюдениям, а последняя строка содержит последние предварительные наблюдения. Y0 должен иметь по крайней мере Mdl.P строк. Если указано больше строк, чем необходимо, infer использует только последние Mdl.P наблюдения.
Столбцы должны соответствовать столбцам Y.
Страницы соответствуют отдельным независимым путям.
Если Y0 является матрицей, то infer применяет его к каждому пути (странице) в Y. Поэтому все пути в Y вытекают из общих исходных условий.
В противном случае infer применяется Y0(:,:, кому j)Y(:,:,. j)Y0 должен иметь по крайней мере numpaths страницы, и infer использует только первый numpaths страницы.
Среди всех страниц наблюдения в конкретной строке происходят одновременно.
По умолчанию infer использование Y(1:Mdl.P,:) в качестве предварительных наблюдений. Это действие уменьшает эффективный размер выборки.
Типы данных: double
'X' - Данные предиктораДанные предиктора для регрессионного компонента в модели, указанной как пара, разделенная запятыми, состоящая из 'X' и числовую матрицу, содержащую numpreds столбцы.
numpreds - количество переменных предиктора (size(Mdl.Beta,2)).
Строки соответствуют наблюдениям, а последняя строка содержит последнее наблюдение. infer не использует компонент регрессии в предварительном периоде. Поэтому X должно иметь по крайней мере столько наблюдений, сколько используется после периода предварительного отбора.
В любом случае, если указано больше строк, чем необходимо, infer использует только последние наблюдения.
Столбцы соответствуют отдельным переменным предиктора. Все переменные предиктора присутствуют в регрессионной составляющей каждого уравнения ответа.
infer применяется X к каждому пути (странице) в Y; то есть X представляет один путь наблюдаемых предикторов.
По умолчанию infer исключает компонент регрессии, независимо от его присутствия в Mdl.
Типы данных: double
Примечание
NaN значения в Y, Y0, и X укажите отсутствующие значения. infer удаляет отсутствующие значения из данных путем удаления по списку.
Если Y является массивом 3-D, то infer горизонтально объединяет страницы Y для формирования numobsоколо-(numpaths*numseries + numpreds) матрица.
Если компонент регрессии присутствует, то infer горизонтально конкатенаты X кому Y для формирования numobsоколо-numpaths*numseries + 1 матрица. infer предполагает, что последние строки каждой серии встречаются одновременно.
infer удаляет любую строку, содержащую хотя бы одну NaN из объединенных данных.
infer применяет шаги 1 и 3 к путям предварительной выборки в Y0.
Этот процесс гарантирует, что полученные изменения выходных данных каждого тракта имеют одинаковый размер и основаны на одинаковом времени наблюдения. В случае пропущенных наблюдений результаты, полученные из нескольких путей Y может отличаться от результатов, полученных для каждого пути по отдельности.
Этот тип сокращения данных уменьшает эффективный размер выборки.
E - Предполагаемая серия многомерных инновацийlogL - Значение объективной функции LoglikeabilityЗначение целевой функции Loglikeliability, связанное с моделью VEC Mdl, возвращается в виде числового скаляра или numpaths-элементный числовой вектор. logL( соответствует пути ответа в j)Y(:,:,.j)
infer выводит инновации, оценивая модель VEC Mdl в отношении инноваций с использованием предоставленных данных Y, Y0, и X. Предполагаемые инновации:
Δyt−A^B^′yt−1−c^−d^t−β^xt.
infer использует этот процесс для определения начала времени t0 моделей, включающих линейные временные тренды.
Если не указать Y0, то t0 = 0.
В противном случае infer устанавливает t0 в значение size(Y0,1) – Mdl.P. Поэтому время в компоненте тренда равно t = t0 + 1, t0 + 2,..., t0 + numobs, где numobs является эффективным размером выборки (size(Y,1) после infer удаляет отсутствующие значения). Это соглашение согласуется с поведением по умолчанию оценки модели, в которой estimate удаляет первый Mdl.P ответы, уменьшая эффективный размер выборки. Хотя infer явно использует первый Mdl.P предварительный отбор ответов в Y0 для инициализации модели, общее количество наблюдений в Y0 и Y (исключая отсутствующие значения) определяет t0.
[1] Гамильтон, Джеймс Д. Анализ временных рядов. Принстон, Нью-Джерси: Princeton University Press, 1994.
[2] Йохансен, С. Вывод на основе правдоподобия в коинтегрированных векторных авторегрессионных моделях. Oxford: Oxford University Press, 1995.
[3] Джуселиус, К. Коинтегрированная модель VAR. Oxford: Oxford University Press, 2006.
[4] Lütkepohl, H. Новое введение в анализ множественных временных рядов. Берлин: Спрингер, 2005.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.