fevd

Сгенерируйте векторное разложение отклонения ошибки прогноза (FEVD) модели (VAR) авторегрессии

Функция fevd возвращает разложение ошибки прогноза (FEVD) переменных в модели VAR (p), относящейся к шокам для каждой переменной отклика в системе. Полностью заданный объект модели varm характеризует модель VAR.

Чтобы оценить или построить FEVD динамической линейной модели, охарактеризованной структурным, авторегрессия или содействующие матрицы скользящего среднего значения, видит armafevd.

FEVD предоставляет информацию об относительной важности каждых инноваций во влиянии на отклонение ошибки прогноза всех переменных отклика в системе. Напротив, импульсная функция отклика (IRF) прослеживает эффекты инновационного шока для одной переменной на ответе всех переменных в системе. Чтобы оценить IRF модели VAR, охарактеризованной объектом модели varm, смотрите irf.

Синтаксис

Decomposition = fevd(Mdl)
Decomposition = fevd(Mdl,Name,Value)
[Decomposition,Lower,Upper] = fevd(___)

Описание

пример

Decomposition = fevd(Mdl) возвращает ортогонализируемый FEVDs переменных отклика, которые составляют модель VAR (p) Mdl, охарактеризованный полностью заданным объектом модели varm. fevd потрясает переменные во время 0 и возвращает FEVD в течение многих времен 1 - 20.

пример

Decomposition = fevd(Mdl,Name,Value) дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение". Например, 'NumObs',10,'Method',"generalized" задает оценку обобщенного FEVD в течение периодов 1 - 10.

пример

[Decomposition,Lower,Upper] = fevd(___) использование любая из комбинаций входных аргументов в предыдущих синтаксисах и возвращает более низкие и верхние 95% доверительных границ в течение каждого периода и переменной в FEVD.

  • Если вы задаете серию невязок при помощи аргумента пары "имя-значение" E, то fevd оценивает доверительные границы путем начальной загрузки заданных невязок.

  • В противном случае fevd оценивает доверительные границы путем проведения симуляции Монте-Карло.

Если Mdl является пользовательским объектом модели varm (объект, не возвращенный estimate или измененный после оценки), fevd может потребовать объема выборки для симуляции SampleSize или преддемонстрационные ответы Y0.

Примеры

свернуть все

Соответствуйте 4-D модели VAR (2) к датским деньгам и поступите ряд уровня. Затем оценка и график ортогонализируемый FEVD из предполагаемой модели.

Загрузите датские деньги и поступите набор данных.

load Data_JDanish

Набор данных включает четыре временных ряда в таблицу DataTable. Для получения дополнительной информации на наборе данных, введите Description в командной строке.

При предположении, что ряды являются стационарными, создайте объект модели varm, который представляет 4-D модель VAR (2). Задайте имена переменных.

Mdl = varm(4,2);
Mdl.SeriesNames = DataTable.Properties.VariableNames;

Mdl является объектом модели varm, задающим структуру 4-D модели VAR (2); это - шаблон для оценки.

Соответствуйте модели VAR (2) к набору данных.

Mdl = estimate(Mdl,DataTable.Series);

Mdl является полностью заданным объектом модели varm, представляющим предполагаемую 4-D модель VAR (2).

Оцените ортогонализируемый FEVD из предполагаемой модели VAR (2).

Decomposition = fevd(Mdl);

Decomposition является 20 массивом 4 на 4, представляющим FEVD Mdl. Строки соответствуют последовательным моментам времени со времени 1 - 20, столбцы соответствуют переменным, получающим инновационный шок с одним стандартным отклонением во время 0, и страницы соответствуют переменным, отклонение ошибки прогноза которых fevd анализирует. Mdl.SeriesNames задает переменный порядок.

Поскольку Decomposition представляет ортогонализируемый FEVD, строки должны суммировать к 1. Эта характеристика иллюстрирует, что ортогонализируемые FEVDs представляют пропорции вкладов отклонения. Подтвердите, что все строки Decomposition суммируют к 1.

rowsums = sum(Decomposition,2);
sum((rowsums - 1).^2 > eps)
ans = 
ans(:,:,1) =

     0


ans(:,:,2) =

     0


ans(:,:,3) =

     0


ans(:,:,4) =

     0

Суммы строки среди страниц близко к 1.

Отобразите вклады в отклонение ошибки прогноза курса облигаций, когда реальный доход будет потрясен во время 0.

Decomposition(:,2,3)
ans = 20×1

    0.0499
    0.1389
    0.1700
    0.1807
    0.1777
    0.1694
    0.1601
    0.1516
    0.1446
    0.1390
      ⋮

Постройте FEVDs всего ряда на отдельных графиках путем передачи предполагаемой содействующей ковариационной матрицы матриц и инноваций AR Mdl к armafevd.

armafevd(Mdl.AR,[],"InnovCov",Mdl.Covariance);

Каждый график показывает четыре FEVDs переменной, когда все другие переменные потрясены во время 0. Mdl.SeriesNames задает переменный порядок.

Считайте 4-D модель VAR (2) в Модели VAR Оценки и Графика FEVD. Оцените обобщенный FEVD системы в течение 100 периодов.

Загрузите датские деньги и поступите набор данных, затем оцените модель VAR (2).

load Data_JDanish

Mdl = varm(4,2);
Mdl.SeriesNames = DataTable.Properties.VariableNames;
Mdl = estimate(Mdl,DataTable.Series);

Оцените обобщенный FEVD из предполагаемой модели VAR (2) по горизонту прогноза с длиной 100.

Decomposition = fevd(Mdl,"Method","generalized","NumObs",100);

Decomposition является 100 массивом 4 на 4, представляющим обобщенный FEVD Mdl.

Постройте обобщенный FEVD курса облигаций, когда реальный доход будет потрясен во время 0.

figure;
plot(1:100,Decomposition(:,2,3))
title("FEVD of IB When Y Is Shocked")
xlabel("Forecast Horizon")
ylabel("Variance Contribution")
grid on

Когда реальный доход потрясен, вклад курса облигаций к отклонению ошибки прогноза обосновывается приблизительно в 0,061.

Считайте 4-D модель VAR (2) в Модели VAR Оценки и Графика FEVD. Оцените и постройте его ортогонализируемый FEVD и 95% доверительных интервалов Монте-Карло на истинном FEVD.

Загрузите датские деньги и поступите набор данных, затем оцените модель VAR (2).

load Data_JDanish

Mdl = varm(4,2);
Mdl.SeriesNames = DataTable.Properties.VariableNames;
Mdl = estimate(Mdl,DataTable.Series);

Оцените FEVD и соответствующие 95% доверительных интервалов Монте-Карло из предполагаемой модели VAR (2).

rng(1); % For reproducibility
[Decomposition,Lower,Upper] = fevd(Mdl);

Decomposition, Lower и Upper 20 массивами 4 на 4, представляющими ортогонализируемый FEVD Mdl и соответствующие нижние и верхние границы доверительных интервалов. Для всех массивов строки соответствуют последовательным моментам времени со времени 1 - 20, столбцы соответствуют переменным, получающим инновационный шок с одним стандартным отклонением во время 0, и страницы соответствуют переменным, отклонение ошибки прогноза которых fevd анализирует. Mdl.SeriesNames задает переменный порядок.

Постройте ортогонализируемый FEVD с его доверительными границами курса облигаций, когда реальный доход будет потрясен во время 0.

fevdshock2resp3 = Decomposition(:,2,3);
FEVDCIShock2Resp3 = [Lower(:,2,3) Upper(:,2,3)];

figure;
h1 = plot(1:20,fevdshock2resp3);
hold on
h2 = plot(1:20,FEVDCIShock2Resp3,'r--');
legend([h1 h2(1)],["FEVD" "95% Confidence Interval"],...
    'Location',"best")
xlabel("Forecast Horizon");
ylabel("Variance Contribution");
title("FEVD of IB When Y Is Shocked");
grid on
hold off

В конечном счете, и когда реальный доход потрясен, пропорция отклонения ошибки прогноза курса облигаций обосновывается между приблизительно 0 и 0.5 с 95%-й уверенностью.

Считайте 4-D модель VAR (2) в Модели VAR Оценки и Графика FEVD. Оцените и постройте его ортогонализируемый FEVD и 90%-е доверительные интервалы начальной загрузки на истинном FEVD.

Загрузите датские деньги и поступите набор данных, затем оцените модель VAR (2). Возвратите невязки в образцовую оценку.

load Data_JDanish

Mdl = varm(4,2);
Mdl.SeriesNames = DataTable.Properties.VariableNames;
[Mdl,~,~,E] = estimate(Mdl,DataTable.Series);
T = size(DataTable,1) % Total sample size
T = 55
n = size(E,1)         % Effective sample size
n = 53

E 53 4 массив невязок. Столбцы соответствуют переменным в Mdl.SeriesNames. Функция estimate требует, чтобы Mdl.P = 2 наблюдения инициализировал модель VAR (2) для оценки. Поскольку преддемонстрационные данные (Y0) не заданы, estimate берет первые два наблюдения в заданных данных об ответе, чтобы инициализировать модель. Поэтому получившимся эффективным объемом выборки является TMdl.P = 53, и строки E соответствуют индексам наблюдения 3 через T.

Оцените ортогонализируемый FEVD и соответствующие 90%-е доверительные интервалы начальной загрузки из предполагаемой модели VAR (2). Чертите 500 путей длины n от серии невязок.

rng(1); % For reproducibility
[Decomposition,Lower,Upper] = fevd(Mdl,"E",E,"NumPaths",500,...
    "Confidence",0.9);

Постройте ортогонализируемый FEVD с его доверительными границами курса облигаций, когда реальный доход будет потрясен во время 0.

fevdshock2resp3 = Decomposition(:,2,3);
FEVDCIShock2Resp3 = [Lower(:,2,3) Upper(:,2,3)];

figure;
h1 = plot(0:19,fevdshock2resp3);
hold on
h2 = plot(0:19,FEVDCIShock2Resp3,'r--');
legend([h1 h2(1)],["FEVD" "90% Confidence Interval"],...
    'Location',"best")
xlabel("Time Index");
ylabel("Response");
title("FEVD of IB When Y Is Shocked");
grid on
hold off

В конечном счете, и когда реальный доход потрясен, пропорция отклонения ошибки прогноза курса облигаций обосновывается между приблизительно 0,05 и 0.4 с 90%-й уверенностью.

Входные параметры

свернуть все

Модель VAR, заданная как объект модели varm, созданный varm или estimate. Mdl должен быть полностью задан.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'NumObs',10,'Method',"generalized" задает оценку обобщенного FEVD в течение периодов 1 - 10.

Опции для всего FEVDs

свернуть все

Количество периодов, в течение которых fevd вычисляет FEVD (горизонт прогноза), заданный как пара, разделенная запятой, состоящая из 'NumObs' и положительного целого числа. NumObs задает количество наблюдений, чтобы включать в FEVD (количество строк в Decomposition).

Пример: 'NumObs',10 задает оценку FEVD в течение многих времен 1 - 10.

Типы данных: double

Метод вычисления FEVD, заданный как пара, разделенная запятой, состоящая из 'Method' и значения в этой таблице.

ЗначениеОписание
"orthogonalized"Вычислите разложения отклонения с помощью ортогонализируемых, инновационных шоков с одним стандартным отклонением. fevd использует факторизацию Холесского Mdl.Covariance для ортогонализации.
"generalized"Вычислите разложения отклонения с помощью инновационных шоков с одним стандартным отклонением.

Пример: 'Method',"generalized"

Типы данных: char | string

Опции для оценки доверительной границы

свернуть все

Количество демонстрационных путей (испытания), чтобы сгенерировать, заданный как пара, разделенная запятой, состоящая из 'NumPaths' и положительного целого числа.

Пример: 'NumPaths',1000 генерирует демонстрационные пути 1000, от которых программное обеспечение выводит доверительные границы.

Типы данных: double

Количество наблюдений для симуляции Монте-Карло или начальной загрузки на демонстрационный путь, заданный как пара, разделенная запятой, состоящая из 'SampleSize' и положительного целого числа.

  • Если Mdl является предполагаемым объектом модели varm (объект, возвращенный estimate и неизмененный после этого), то значением по умолчанию является объем выборки данных, к которым модель является подходящей (см. summarize).

  • Если оценочные доверительные границы fevd путем проведения симуляции Монте-Карло (для получения дополнительной информации смотрите E), необходимо задать SampleSize.

  • Если fevd оценивает доверительные границы путем начальной загрузки невязок, значением по умолчанию является длина заданной серии невязок (size(E,1)).

Пример: Если вы задаете 'SampleSize',100 и не задаете аргумент пары "имя-значение" 'E', программное обеспечение оценивает доверительные границы от NumPaths случайные пути длины 100 от Mdl.

Пример: Если вы задаете 'SampleSize',100,'E',E, программное обеспечение передискретизирует, с заменой, наблюдения 100 (строки) от E, чтобы сформировать демонстрационный путь инноваций, чтобы проникнуть в Mdl. Программное обеспечение формирует пути к случайной выборке NumPaths, от которых оно выводит доверительные границы.

Типы данных: double

Преддемонстрационные данные об ответе, которые обеспечивают начальные значения для образцовой оценки во время симуляции, заданной как пара, разделенная запятой, состоящая из 'Y0' и numpreobs-by-numseries числовая матрица.

Строки Y0 соответствуют периодам в предварительной выборке, и последняя строка содержит последний преддемонстрационный ответ. numpreobs является количеством заданных преддемонстрационных ответов, и это должен быть, по крайней мере, Mdl.P. Если numpreobs превышает Mdl.P, то fevd использует только последние строки Mdl.P.

numseries является размерностью модели Mdl.NumSeries входа VAR. Столбцы должны соответствовать переменным отклика в Mdl.SeriesNames.

  • Если Mdl является предполагаемым объектом модели varm (объект, возвращенный estimate и неизмененный после этого), fevd устанавливает Y0 на преддемонстрационные данные об ответе, используемые для оценки по умолчанию (см. 'Y0').

  • В противном случае необходимо задать Y0.

Типы данных: double

Данные о предикторе для оценки образцового компонента регрессии во время симуляции, заданной как пара, разделенная запятой, состоящая из 'X' и числовой матрицы, содержащей столбцы numpreds.

numpreds является количеством переменных прогноза (size(Mdl.Beta,2)).

Строки соответствуют наблюдениям. X должен иметь, по крайней мере, строки SampleSize. Если вы предоставляете больше строк, чем необходимый, fevd использует только последние наблюдения SampleSize. Последняя строка содержит последнее наблюдение.

Столбцы соответствуют отдельным переменным прогноза. Все переменные прогноза присутствуют в компоненте регрессии каждого уравнения ответа.

Чтобы поддержать образцовую непротиворечивость, когда fevd оценивает доверительные границы, хорошая практика должна задать X, когда Mdl имеет компонент регрессии. Если Mdl является предполагаемой моделью, задайте данные о предикторе, используемые во время образцовой оценки (см. 'X').

По умолчанию fevd исключает компонент регрессии из оценки доверительной границы, независимо от ее присутствия в Mdl.

Типы данных: double

Серия невязок, от которых можно чертить выборки начальной загрузки, заданные как пара, разделенная запятой, состоящая из 'E' и числовой матрицы, содержащей столбцы numseries. fevd принимает, что E свободен от последовательной корреляции.

Столбцы содержат остаточный ряд, соответствующий серийным именам ответа в Mdl.SeriesNames.

Если Mdl является предполагаемым объектом модели varm (объект, возвращенный estimate), можно задать E как выведенные невязки от оценки (см. E или infer).

По умолчанию fevd выводит доверительные границы путем проведения симуляции Монте-Карло.

Типы данных: double

Доверительный уровень для доверительных границ, заданных как пара, разделенная запятой, состоящая из 'Confidence' и числового скаляра в [0,1].

Предположим Confidence = c. Затем 100 (1 – c)/2 процент импульсных ответов лежат вне доверительных границ.

Значением по умолчанию является 0.95, который подразумевает, что доверительные границы представляют 95% доверительных интервалов.

Типы данных: double

Выходные аргументы

свернуть все

FEVD каждой переменной отклика, возвращенной как numobs-by-numseries-by-numseries числовой массив. numobs является значением NumObs. Столбцы и страницы соответствуют переменным отклика в Mdl.SeriesNames.

Decomposition(t,j,k) является вкладом в разложение отклонения переменной k, относящейся к инновационному шоку с одним стандартным отклонением для переменной j во время t, для t = 1,2, …, numobs, j = 1,2..., numseries и k = 1,2..., numseries.

Более низкие доверительные границы, возвращенные как numobs-by-numseries-by-numseries числовой массив. Элементы Lower соответствуют элементам Decomposition.

Lower(t,j,k) является нижней границей интервала процентили % 100*Confidence на истинном вкладе в разложение отклонения переменной k, относящейся к инновационному шоку с одним стандартным отклонением для переменной j во время 0.

Верхние доверительные границы, возвращенные как numobs-by-numseries-by-numseries числовой массив. Элементы Upper соответствуют элементам Decomposition.

Upper(t,j,k) является верхней границей интервала процентили % 100*Confidence на истинном вкладе в разложение отклонения переменной k, относящейся к инновационному шоку с одним стандартным отклонением для переменной j во время 0.

Больше о

свернуть все

Разложение отклонения ошибки прогноза

forecast error variance decomposition (FEVD) многомерной, динамической системы показывает относительную важность шока для каждых инноваций во влиянии на отклонение ошибки прогноза всех переменных в системе.

Считайте numseries-D моделью VAR (p) для многомерной переменной отклика yt. В обозначении оператора задержки бесконечное представление MA задержки yt:

yt=Φ1(L)(c+βxt+δt)+Φ1(L)εt=Ω(L)(c+βxt+δt)+Ω(L)εt.

Общая форма FEVD ykt (переменная k) периоды m в будущее, относящееся к инновационному шоку с одним стандартным отклонением для yjt,

γmjk=t=0m1(ekCtej)2t=0m1ekΩtΣΩtek.

  • ej является вектором выбора длины numseries, содержащий 1 в элементе j и нули в другом месте.

  • Для ортогонализируемого FEVDs, Cm=ΩmP, где P является нижним треугольным фактором в факторизации Холесского Σ.

  • Для обобщенного FEVDs, Cm=σj1ΩmΣ, где σj является стандартным отклонением инноваций j.

  • Числитель является вкладом инновационного шока для переменной j к отклонению ошибки прогноза m - неродной вперед прогноз переменной k. Знаменатель является среднеквадратичной погрешностью (MSE) m - неродной вперед прогноз переменной k [3].

Векторная модель авторегрессии

vector autoregression (VAR) model является стационарной многомерной моделью временных рядов, состоящей из системы уравнений m m отличные переменные отклика как линейные функции изолированных ответов и других условий.

Модель VAR (p) в difference-equation notation и в reduced form

yt=c+Φ1yt1+Φ2yt2+...+Φpytp+βxt+δt+εt.

  • yt является numseries-by-1 вектор значений, соответствующих переменным отклика numseries во время t, где t = 1..., T. Структурный коэффициент является единичной матрицей.

  • c является numseries-by-1 вектор констант.

  • Φj является numseries-by-numseries матрица авторегрессивных коэффициентов, где j = 1..., p и Φp не является матрицей, содержащей только нули.

  • xt является numpreds-by-1 вектор значений, соответствующих numpreds внешние переменные прогноза.

  • β является numseries-by-numpreds матрица коэффициентов регрессии.

  • δ является numseries-by-1 вектор линейных значений тренда времени.

  • εt является numseries-by-1 вектор случайных Гауссовых инноваций, каждого со средним значением 0 и коллективно numseries-by-numseries ковариационная матрица Σ. Для ts, εt и εs независимы.

Сжатый и в обозначении оператора задержки, система

Φ(L)yt=c+βxt+δt+εt,

где Φ(L)=IΦ1LΦ2L2...ΦpLp, Φ (L), yt является многомерным авторегрессивным полиномом и I, является numseries-by-numseries единичная матрица.

Алгоритмы

  • Если Method является "orthogonalized", то fevd ортогонализирует инновационные шоки путем применения факторизации Холесского образцовой ковариационной матрицы Mdl.Covariance. Ковариация ортогонализируемых инновационных шоков является единичной матрицей и FEVD каждой переменной суммы к одной (то есть, сумма вдоль любой строки Decomposition - одна). Поэтому ортогонализируемый FEVD представляет пропорцию отклонения ошибки прогноза, относящегося к различным шокам в системе. Однако ортогонализируемый FEVD обычно зависит от порядка переменных.

    Если Method является "generalized", то получившийся FEVD является инвариантным к порядку переменных и не является основанным на ортогональном преобразовании. Кроме того, получившийся FEVD суммирует одному для конкретной переменной только, когда Mdl.Covariance диагональный [4]. Поэтому обобщенный FEVD представляет вклад в отклонение ошибки прогноза мудрых уравнением шоков для переменных отклика в модели.

  • Если Mdl.Covariance является диагональной матрицей, то получившиеся обобщенные и ортогонализируемые FEVDs идентичны. В противном случае получившиеся обобщенные и ортогонализируемые FEVDs идентичны только, когда первая переменная потрясает все переменные (то есть, все остальное являющееся тем же самым, оба метода приводят к тому же значению Decomposition(:,1,:)).

  • Значения NaN в Y0, X и E указывают на недостающие данные. fevd удаляет недостающие данные из этих аргументов мудрым списком удалением. Каждый аргумент, если строка содержит по крайней мере один NaN, то fevd удаляет целую строку.

    Мудрое списком удаление уменьшает объем выборки, может создать неправильные временные ряды и может заставить E и X не синхронизироваться.

  • Данные о предикторе X представляют один путь внешних многомерных временных рядов. Если вы задаете X и модель VAR, Mdl имеет компонент регрессии (Mdl.Beta не является пустым массивом), fevd применяет те же внешние данные ко всем путям, используемым для оценки доверительного интервала.

  • fevd проводит симуляцию, чтобы оценить доверительные границы Lower и Upper.

    • Если вы не задаете невязки E, то fevd проводит симуляцию Монте-Карло путем выполнения этой процедуры:

      1. Моделируйте пути к ответу NumPaths длины SampleSize от Mdl.

      2. Подходящие модели NumPaths, которые имеют ту же структуру как Mdl к моделируемым путям к ответу. Если Mdl содержит компонент регрессии, и вы задаете X, fevd соответствует моделям NumPaths к моделируемым путям к ответу и X (те же данные о предикторе для всех путей).

      3. Оцените NumPaths, FEVDs от NumPaths оценил модели.

      4. Для каждого момента времени t = 0, …, NumObs, оценивают доверительные интервалы путем вычисления 1 – Confidence и квантили Confidence (верхние и нижние границы, соответственно).

    • Если вы задаете невязки E, то fevd проводит непараметрическую начальную загрузку путем выполнения этой процедуры:

      1. Передискретизируйте, с заменой, невязками SampleSize от E. Выполните этот шаг времена NumPaths, чтобы получить пути NumPaths.

      2. Сосредоточьте каждый путь загруженных невязок.

      3. Отфильтруйте каждый путь загруженных невязок в центре через Mdl, чтобы получить загруженные пути к ответу NumPaths длины SampleSize.

      4. Полные шаги 2 - 4 симуляции Монте-Карло, но замена моделируемые пути к ответу с загруженными путями к ответу.

Ссылки

[1] Гамильтон, J. D. Анализ timeseries. Принстон, NJ: Издательство Принстонского университета, 1994.

[2] Lütkepohl, H. "Асимптотические Дистрибутивы Импульсных Функций отклика и Разложения Отклонения Ошибки прогноза Векторных Авторегрессивных Моделей". Анализ Экономики и Статистики. Издание 72, 1990, стр 116–125.

[3] Lütkepohl, H. Новое введение в несколько анализ временных рядов. Нью-Йорк, Нью-Йорк: Springer-Verlag, 2007.

[4] Pesaran, H. H. и И. Шин. "Обобщенный Импульсный Анализ Ответа в Линейных Многомерных Моделях". Экономические Буквы. Издание 58, 1998, стр 17–29.

Смотрите также

Объекты

Функции

Введенный в R2019a