Инновации модели коррекции ошибок вектора вывода (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) с помощью синтаксиса shorthand. Задайте имена переменных.
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 форму модели Johansen VEC путем удаления коинтегрирующего тренда и линейных терминов тренда из модели. Исключение параметра из оценки эквивалентно наложению ограничений равенства на нуль.
Выведите инновации из предполагаемой модели.
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);
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;
Оцените модель, используя целую выборку. Укажите предиктор, идентифицирующий, было ли измерено наблюдение во время рецессии. Возвращает стандартные ошибки.
EstMdl = estimate(Mdl,FRED.Variables,'X',isrecession);
Выведите инновации из предполагаемой модели. Предоставьте данные предиктора. Верните значение целевой функции логарифмической правдоподобности.
[E,logL] = infer(EstMdl,FRED.Variables,'X',isrecession);
logL
logL = -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
-by- numseries
числовая матрица или numobs
-by- numseries
-by- 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'
и a numpreobs
-by- numseries
числовая матрица или numpreobs
-by- numseries
-by- 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
является трехмерный массив, тогда infer
горизонтально конкатенирует страницы Y
для формирования numobs
-by- (numpaths*numseries + numpreds)
матрица.
Если присутствует регрессионный компонент, то infer
горизонтально конкатенирует X
на Y
для формирования numobs
-by- numpaths*numseries + 1
матрица. infer
принимает, что последние строки каждой серии происходят одновременно.
infer
удаляет все строки, содержащие по крайней мере одну NaN
из конкатенированных данных.
infer
применяет шаги 1 и 3 к предварительным образцам путей в Y0
.
Этот процесс гарантирует, что выведенные выходные нововведения каждого пути имеют одинаковый размер и основаны на одном и том же времени наблюдения. В случае отсутствующих наблюдений результаты, полученные из нескольких путей Y
может отличаться от результатов, полученных по каждому пути индивидуально.
Этот тип сокращения данных уменьшает эффективный размер выборки.
E
- Выводные многомерные инновации серииВыведенный многомерный ряд инноваций, возвращенный либо как числовая матрица, либо как числовой массив, который содержит столбцы и страницы, соответствующие Y
.
Если вы задаете Y0
, затем E
имеет numobs
строки (см. Y
).
В противном случае E
имеет numobs
– Mdl.P
строки для расчета предварительного удаления.
logL
- значение целевой функции логарифмической правдоподобностиЗначение целевой функции логарифмической правдоподобности, сопоставленное с моделью VEC Mdl
, возвращенный как числовой скаляр или numpaths
-элементный числовой вектор. logL
соответствует пути отклика в (j
)Y
.(:,:, j
)
infer
выводит инновации путем оценки модели VEC Mdl
в отношении нововведений с использованием предоставленных данных Y
, Y0
, и X
. Предполагаемые инновации
infer
использует этот процесс для определения времени источника t 0 моделей, которые включают линейные временные тренды.
Если вы не задаете Y0
, затем t 0 = 0.
В противном случае, infer
устанавливает t 0 в size(Y0,1)
– Mdl.P
. Поэтому время в компоненте тренда: t = t 0 + 1, t 0 + 2,..., t 0 + numobs
, где numobs
является эффективным размером выборки (size(Y,1)
после infer
удаляет отсутствующие значения). Это соглашение согласуется с поведением по умолчанию оценки модели, в которой estimate
удаляет первый Mdl.P
ответы, уменьшение эффективного размера выборки. Хотя infer
явно использует первое Mdl.P
примитивируйте отклики в Y0
чтобы инициализировать модель, общее количество наблюдений в Y0
и Y
(исключая отсутствующие значения) определяет 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.