Выведите инновации модели векторного исправления ошибок (VEC)
дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение". Например, E
= infer(Mdl
,Y
,Name,Value
)'Y0',Y0,'X',X
задает Y0
как преддемонстрационные ответы и X
как внешние данные о предикторе для компонента регрессии.
Рассмотрите модель VEC для следующих семи макроэкономических рядов, и затем подбирайте модель к данным.
Валовой внутренний продукт (ВВП)
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 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');
Остаточные значения, соответствующие ставке по федеральным фондам, показывают heteroscedasticity.
Рассмотрите модель, и данные в Выводят Инновации Модели 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;
Оцените модель с помощью целой выборки. Задайте предиктор, идентифицирующий, было ли наблюдение измерено во время рецессии. Возвратите стандартные погрешности.
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');
Остаточные значения, соответствующие ставке по федеральным фондам, показывают heteroscedasticity.
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
трехмерный массив, затем infer
горизонтально конкатенирует страницы Y
сформировать numobs
- (numpaths*numseries + numpreds)
матрица.
Если компонент регрессии присутствует, то infer
горизонтально конкатенирует X
к Y
сформировать numobs
- 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] Гамильтон, J. D. Анализ Временных Рядов. Принстон, NJ: Издательство Принстонского университета, 1994.
[2] Йохансен, S. Основанный на вероятности вывод в векторных авторегрессивных моделях Cointegrated. Оксфорд: Издательство Оксфордского университета, 1995.
[3] Juselius, K. Модель VAR Cointegrated. Оксфорд: Издательство Оксфордского университета, 2006.
[4] Lütkepohl, H. Новое введение в несколько анализ временных рядов. Берлин: Спрингер, 2005.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.