var2vec

Преобразуйте модель VAR в модель VEC

Синтаксис

Описание

Если любой из временных рядов в модели вектора авторегрессии (VAR) являются коинтегрированными, то модель VAR является нестационарной. Можно определить коэффициент коррекции ошибок путем преобразования модели VAR в модель коррекции ошибок вектора (VEC). Матрица коэффициентов коррекции ошибок определяет, в среднем, как временные ряды реагируют на отклонения от их долгосрочных средних значений. Ранг коэффициента коррекции ошибок определяет, сколько в модели существует коинтегрирующих отношений.

Поскольку estimate подходит для оценки моделей VAR в уменьшенном виде, можно преобразовать предполагаемую модель VAR в ее эквивалентную модель VEC с помощью var2vec.

пример

[VEC,C] = var2vec(VAR) возвращает матрицы коэффициентов (VEC) и матрица коэффициентов коррекции ошибок (C) вектором модели коррекции ошибок, эквивалентным вектором авторегрессионной модели с матрицами коэффициентов (VAR). Если количество лагов в вход векторной авторегрессионной модели p, то количество лагов в выход векторной модели коррекции ошибок q = p - 1.

Примеры

свернуть все

Рассмотрите преобразование следующей модели VAR (3) в модель VEC (2).

yt=[0.51-2]+[0.540.86-0.431.830.320.34-2.26-1.313.58]yt-1+[0.14-0.120.050.140.070.100.070.160.07]yt-3+εt.

Задайте матрицы коэффициентов (A1, A2, и A3) VAR (3) модели терминахyt-1, yt-2, и yt-3.

A1 = [0.54  0.86 -0.43;
      1.83  0.32  0.34;
     -2.26 -1.31  3.58];
A2 = zeros(3); 
A3 = [0.14 -0.12 0.05;
      0.14  0.07 0.10;
      0.07  0.16 0.07];

Упакуйте матрицы в отдельные камеры 3 вектора размерной камеры. Поместите A1 в первую камеру, A2 во вторую камеру, и A3 в третью камеру.

VAR = {A1 A2 A3};

Вычислите матрицы коэффициентов Δyt-1 и Δyt-2, и матрица коэффициентов коррекции ошибок эквивалентной модели VEC (2).

[VEC,C] = var2vec(VAR);
size(VEC)
ans = 1×2

     1     2

Спецификация массива ячеек из матриц для входного параметра указывает, что модель VAR (3) является моделью уменьшенной формы, выраженной в виде разностного уравнения. VAR{1} - коэффициент, yt-1, и последующие элементы соответствуют последующим лагам.

VEC является вектором камеры 1 на 2 матриц коэффициентов 3 на 3 для эквивалентного VEC (2) модели VAR (3). Поскольку модель VAR (3) находится в уменьшенной форме, эквивалентная модель VEC также. То есть VEC{1} - коэффициент, Δyt-1, и последующие элементы соответствуют последующим лагам. Ориентация VEC соответствует ориентации VAR.

Отобразите коэффициенты модели VEC (2).

B1 = VEC{1}
B1 = 3×3

   -0.1400    0.1200   -0.0500
   -0.1400   -0.0700   -0.1000
   -0.0700   -0.1600   -0.0700

B2 = VEC{2}
B2 = 3×3

   -0.1400    0.1200   -0.0500
   -0.1400   -0.0700   -0.1000
   -0.0700   -0.1600   -0.0700

C
C = 3×3

   -0.3200    0.7400   -0.3800
    1.9700   -0.6100    0.4400
   -2.1900   -1.1500    2.6500

Поскольку постоянные смещения между моделями эквивалентны, полученная модель VEC (2) является

Δyt=[0.51-2]+[-0.140.12-0.05-0.14-0.07-0.10-0.07-0.16-0.07]Δyt-1+[-0.140.12-0.05-0.14-0.07-0.10-0.07-0.16-0.07]Δyt-2+[-0.320.74-0.381.97-0.610.44-2.19-1.152.65]yt-1+εt.

Рассмотрите преобразование следующей несущей модели VAR (2) в несущую модель VEC (1).

[0.54-2.261.830.86]yt=[0.32-0.43-1.310.34]yt-1+[0.070.07-0.01-0.02]yt-2+εt.

Задайте матрицы авторегрессионных коэффициентов A0, A1, и A2.

A0 = [0.54 -2.26;
      1.83  0.86];
A1 = [0.32 -0.43
     -1.31  0.34];
A2 = [0.07  0.07
     -0.01 -0.02];

Упакуйте матрицы в отдельные камеры 3 вектора размерной камеры. Поместите A0 в первую камеру, A1 во вторую камеру, и A2 в третью камеру. Инвертируйте коэффициенты, соответствующие всем ненулевым терминам задержки.

VARCoeff = {A0; -A1; -A2};

Создайте полином оператора задержки, который охватывает авторегрессивные условия в модели VAR (2).

VAR = LagOp(VARCoeff)
VAR = 
    2-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [Lag-Indexed Cell Array with 3 Non-Zero Coefficients]
                Lags: [0 1 2]
              Degree: 2
           Dimension: 2

VAR является LagOp полином оператора задержки. VAR задает модель VAR (2) в обозначении оператора задержки, как в этом уравнении

(A0-A1L-A2L2)yt=εt.

L - оператор задержки. Если вы расширяете количество и решаете для yt, тогда результатом будет модель VAR (2) в разностном уравнении.

Вычислите матрицы коэффициентов Δyt и Δyt, и матрица коэффициентов коррекции ошибок эквивалентной модели VEC (1).

[VEC,C] = var2vec(VAR)
VEC = 
    2-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [Lag-Indexed Cell Array with 2 Non-Zero Coefficients]
                Lags: [0 1]
              Degree: 1
           Dimension: 2
C = 2×2

   -0.1500    1.9000
   -3.1500   -0.5400

VAR.Coefficients{0} является A0, матрица коэффициентов yt. Последующие элементы в VAR.Coefficients соответствуют последующим лагам в VAR.Lags.

VEC является эквивалентным VEC (1) модели VAR (2). Поскольку модель VAR (2) является структурной, эквивалентная модель VEC (1) также является. То есть VEC.Coefficients{0} - коэффициент, Δyt, а последующие элементы соответствуют последующим лагам в VEC.Lags.

Отобразите коэффициенты модели VEC в обозначении разностного уравнения.

B0 = VEC.Coefficients{0}
B0 = 2×2

    0.5400   -2.2600
    1.8300    0.8600

B1 = -VEC.Coefficients{1}
B1 = 2×2

   -0.0700   -0.0700
    0.0100    0.0200

C
C = 2×2

   -0.1500    1.9000
   -3.1500   -0.5400

Получившаяся модель VEC (1) является

[0.54-2.261.830.86]Δyt=[-0.07-0.070.010.02]Δyt-1+[-0.151.9-3.15-0.54]yt-1+εt.

В качестве альтернативы отражайте полином оператора задержки VEC около лага 0 для получения коэффициентов обозначения разностного уравнения.

DiffEqnCoeffs = reflect(VEC);
B = toCellArray(DiffEqnCoeffs);
B{1} == B0
ans = 2x2 logical array

   1   1
   1   1

B{2} == B1
ans = 2x2 logical array

   1   1
   1   1

Оба метода производят одинаковые коэффициенты.

Аппроксимируйте коэффициенты модели VEC, которая представляет эту стационарную и инвертируемую модель VARMA (8,4), которая находится в форме оператора задержки

{[10.2-0.10.031-0.150.9-0.251]+[0.5-0.2-0.1-0.3-0.10.10.4-0.2-0.05]L4+[0.05-0.02-0.01-0.1-0.01-0.0010.04-0.02-0.005]L8}yt={[100010001]+[-0.020.030.30.0030.0010.010.30.010.01]L4}εt

где yt=[y1ty2ty3t] и εt=[ε1tε2tε3t].

Создайте вектор камеры, содержащий матрицы коэффициентов VAR. Начните с коэффициента yt, а затем вводите остальное в порядке по лагу. Создайте вектор, который указывает степень запаздывания для соответствующих коэффициентов.

VAR0 = {[1 0.2 -0.1; 0.03 1 -0.15; 0.9 -0.25 1],...
    [0.5 -0.2 -0.1; -0.3 -0.1 0.1; 0.4 -0.2 -0.05],...
    [0.05 -0.02 -0.01; -0.1 -0.01 -0.001; 0.04 -0.02 -0.005]};
var0Lags = [0 4 8];

Создайте вектор камеры, содержащий матрицы коэффициентов VMA. Начните с коэффициента εt, а затем вводите остальное в порядке по лагу. Создайте вектор, который указывает степень запаздывания для соответствующих коэффициентов.

VMA0 = {eye(3),...
    [-0.02 0.03 0.3; 0.003 0.001 0.01; 0.3 0.01 0.01]};
vma0Lags = [0 4];

arma2ma требует LagOp полиномы оператора задержки для входных параметров, которые состоят из структурных VAR или VMA моделей. Создайте отдельные LagOp полиномы, которые описывают компоненты VAR (8) и VMA (4) модели VARMA (8,4).

VARLag = LagOp(VAR0,'Lags',var0Lags);
VMALag = LagOp(VMA0,'Lags',vma0Lags);

VARLag и VMALag являются LagOp полиномы оператора задержки, которые описывают компоненты VAR и VMA модели VARMA.

Преобразуйте модель VARMA (8,4) в модель VAR (p) путем получения коэффициентов усеченного приближения полинома с бесконечной задержкой. Задайте numLags чтобы вернуться самое большее к 12 задержкам.

numLags = 12;
VAR = arma2ar(VARLag,VMALag,numLags)
VAR = 
    3-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [Lag-Indexed Cell Array with 4 Non-Zero Coefficients]
                Lags: [0 4 8 12]
              Degree: 12
           Dimension: 3

VAR является LagOP полином оператора задержки. Все коэффициенты, кроме тех, которые соответствуют лагам 0, 4, 8 и 12, являются матрицами нулей 3 на 3. Коэффициенты в VAR.Coefficients содержат структурную модель VAR (12) приближения исходной модели VARMA (8,4).

Вычислите коэффициенты модели VEC (11), эквивалентные полученной модели VAR (12).

[VEC,C] = var2vec(VAR)
VEC = 
    3-D Lag Operator Polynomial:
    -----------------------------
        Coefficients: [Lag-Indexed Cell Array with 12 Non-Zero Coefficients]
                Lags: [0 1 2 3 4 5 6 7 8 9 10 11]
              Degree: 11
           Dimension: 3
C = 3×3

   -1.2998   -0.1019    0.5440
    0.3831   -0.8937    0.0603
   -0.9484    0.5068   -1.0876

VEC является LagOp полином оператора задержки, содержащий матрицы коэффициентов полученной модели VEC (11) в VEC.Coefficients. VEC.Coefficients{0} - коэффициент, Δyt, Vec{1} - коэффициент, Δyt-1и так далее.

Отобразите ненулевые коэффициенты полученной модели VEC.

lag2Idx = VEC.Lags + 1; % Lags start at 0.  Add 1 to convert to indices.
VecCoeff = toCellArray(VEC);

for j = 1:numel(lag2Idx)
    fprintf('___________Lag %d__________\n',lag2Idx(j) - 1)
    fprintf('%8.3f %8.3f %8.3f \n',VecCoeff{lag2Idx(j)})
    fprintf    ('__________________________\n')
end
___________Lag 0__________
   1.000    0.030    0.900 
   0.200    1.000   -0.250 
  -0.100   -0.150    1.000 
__________________________
___________Lag 1__________
  -0.300    0.413   -0.048 
   0.098    0.106    0.257 
   0.444   -0.090   -0.088 
__________________________
___________Lag 2__________
  -0.300    0.413   -0.048 
   0.098    0.106    0.257 
   0.444   -0.090   -0.088 
__________________________
___________Lag 3__________
  -0.300    0.413   -0.048 
   0.098    0.106    0.257 
   0.444   -0.090   -0.088 
__________________________
___________Lag 4__________
  -0.051    0.101    0.042 
  -0.053    0.007   -0.011 
   0.046    0.001   -0.116 
__________________________
___________Lag 5__________
  -0.051    0.101    0.042 
  -0.053    0.007   -0.011 
   0.046    0.001   -0.116 
__________________________
___________Lag 6__________
  -0.051    0.101    0.042 
  -0.053    0.007   -0.011 
   0.046    0.001   -0.116 
__________________________
___________Lag 7__________
  -0.051    0.101    0.042 
  -0.053    0.007   -0.011 
   0.046    0.001   -0.116 
__________________________
___________Lag 8__________
  -0.014   -0.000    0.010 
   0.007    0.000    0.018 
   0.034    0.001   -0.002 
__________________________
___________Lag 9__________
  -0.014   -0.000    0.010 
   0.007    0.000    0.018 
   0.034    0.001   -0.002 
__________________________
___________Lag 10__________
  -0.014   -0.000    0.010 
   0.007    0.000    0.018 
   0.034    0.001   -0.002 
__________________________
___________Lag 11__________
  -0.014   -0.000    0.010 
   0.007    0.000    0.018 
   0.034    0.001   -0.002 
__________________________

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

свернуть все

VAR (p) моделирует коэффициенты, заданные в виде числового вектора, вектора камеры n -by n числовых матриц или LagOp lag оператор полинома объект.

  • Для спецификации числового вектора:

    • VAR (p) является одномерными временными рядами.

    • VAR должен быть длинным p числовым вектором.

    • VAR(j) содержит скаляр Aj, коэффициент запаздывающего отклика y t - j.

    • Коэффициент yt (A 0) 1.

  • Для спецификации вектора камеры:

    • VAR должна иметь p длины, и каждая камера содержит n -by n числовую матрицу (n > 1).

    • VAR{j} должен содержать Aj, матрицу коэффициентов запаздывающего термина y t - j.

    • var2vec принимает, что коэффициент yt (A 0) является единичным n -by n.

  • Для LagOp полиномиальная спецификация оператора задержки:

    • VAR.Degree должен быть p.

    • VAR.Coefficients{0} - A 0, коэффициент yt. Все другие элементы соответствуют коэффициентам последующих терминов задержки. Для примера, VAR.Coefficients{j} - матрица коэффициентов y t - j. VAR.Lags хранит все ненулевые лаги.

    • Чтобы создать модель в уменьшенной форме, задайте VAR.Coefficients{0} на eye(VAR.Dimension).

Для примера рассмотрите преобразование

[1001]yt=[0.10.210.1]yt1+[0.10.010.20.3]yt2+εt

в модель VEC (1). Модель находится в разностно-уравнительном обозначении. Можно преобразовать модель путем ввода

VEC = var2vec({[0.1 0.2; 1 0.1], [-0.1 0.01; 0.2 -0.3]});
Модель VAR (2) в обозначении оператора задержки

([1001][0.10.210.1][0.10.010.20.3]L)yt=εt.

Матрицы коэффициентов отстающих откликов кажутся отрицательными по сравнению с соответствующими коэффициентами в обозначении разностного уравнения. Чтобы получить тот же результат, используя LagOp задержка полиномов оператора, вход

VAR = LagOp({eye(2), -[0.1 0.2; 1 0.1], -[-0.1 0.01; 0.2 -0.3]});
VEC = var2vec(VAR);

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

свернуть все

VEC (q) моделирует коэффициенты дифференциальных откликов, возвращенные как числовой вектор, вектор камеры n -by n числовых матриц или LagOp lag оператор полинома объект. n - количество временных рядов в модели VAR (p).

VAR и VEC совместно использовать один и тот совпадающий тип данных и ориентацию.

var2vec преобразует модели VAR (p) в модели VEC (p - 1). То есть:

  • Если VAR является камерой или числовым вектором, затем numel(VEC) является numel(VAR) - 1.

  • Если VAR является LagOp полином оператора задержки, затем VEC.Degree является VAR.Degree - 1.

Коэффициент коррекции ошибок, возвращенный как n -by n числовая матрица. n - количество временных рядов в модели VAR.

Подробнее о

свернуть все

Разностное уравнение Обозначения

Модель VAR (p) или VEC (q), записанная в difference-equation notation, изолирует текущее значение вектора отклика и его матрицы структурных коэффициентов в левой части уравнения. Правая сторона уравнения содержит сумму отстающих откликов, их матрицы коэффициентов, настоящий вектор инноваций и, для моделей VEC, член коррекции ошибок.

То есть модель VAR (p), записанная в обозначении разностного уравнения,

A0yt=a+A1yt1+A2yt2+...+Apytp+εt.

Модель VEC (q), записанная в разностном уравнении обозначения является

B0Δyt=b+B1Δyt1+B2Δyt2+...+BqΔytq+Cyt1+εt.

Для определений переменной и параметра смотрите Модель VAR (p) и Модель VEC (q).

Обозначение оператора задержки

Модель VAR (p) или VEC (q), записанная в lag-operator notation, позиционирует все условия отклика в левой части уравнения. Правая сторона уравнения содержит вектор постоянного смещения модели, настоящее нововведение и, для моделей VEC, член коррекции ошибок.

То есть модель VAR (p), записанная в обозначении с задержкой,

A(L)yt=a+εt

где A(L)=A0A1LA2L2...ApLp и Ljyt=ytj.

Модель VEC (q), записанная в разностном уравнении обозначения является

B(L)Δyt=b+Cyt1+εt

где B(L)=B0B1LB2L2...BqLq.

Для определений переменной и параметра смотрите Модель VAR (p) и Модель VEC (q).

При сравнении обозначения оператора задержки с обозначением разностного уравнения знаки членов задержки являются противоположными. Для получения дополнительной информации смотрите Lag Operator Notation.

Модель VAR (p)

A VAR(p) model является многомерной авторегрессивной моделью временных рядов, которая имеет эту общую форму:

A0yt=a+A1yt1+A2yt2+...+Apytp+εt.

  • yt - n -мерные временные ряды.

  • A 0 является n -by n инвертируемой структурной матрицы коэффициентов. Для моделей в reduced form A 0 = In, которая является n -мерной матрицей тождеств.

  • a является n -мерным вектором постоянных смещений.

  • Aj n n матрицей коэффициентов yt–j, j = 1..., p.

  • εt - n -мерный ряд инноваций. Нововведения являются серийно некоррелированными и имеют многомерное нормальное распределение со средними 0 и n -by n ковариационными Σ.

Модель VEC (q)

A VEC(q) model является многомерной авторегрессивной моделью временных рядов, которая имеет эту общую форму:

B0Δyt=b+B1Δyt1+B2Δyt2+...+BqΔytq+Cyt1+εt.

  • yt - n -мерные временные ряды.

  • Δ является первым оператором различий, то есть Δyt = yt - y t -1.

  • B 0 является n -by n инвертируемой структурной матрицы коэффициентов. Для моделей в reduced form B 0 = In, которая является n -мерной матрицей тождеств.

  • b является n -мерным вектором постоянных смещений.

  • Bj n n матрицей коэффициентов Δyt–j, j = 1..., q.

  • εt - n -мерный ряд инноваций. Нововведения являются серийно некоррелированными и имеют многомерное нормальное распределение со средними 0 и n -by n ковариационными Σ.

  • C - n -by n матрица коррекции ошибок или коэффициента влияния.

Совет

  • Для размещения несущих моделей VAR задайте входной параметр VAR как LagOp полином оператора задержки.

  • Для доступа к вектору камеры полиномиальных коэффициентов оператора задержки выходного аргумента VEC, введите toCellArray(VEC).

  • Чтобы преобразовать коэффициенты модели выходного аргумента из обозначения оператора задержки в коэффициенты модели в обозначении разностного уравнения, введите

    VECDEN = toCellArray(reflect(VEC));
    VECDEN - вектор камеры, содержащий коэффициенты p, соответствующие дифференцированным терминам отклика в VEC.Lags в разностном уравнении. Первый элемент является коэффициентом Δyt, второй элемент является коэффициентом Δy t -1 и так далее.

  • Рассмотрите преобразование модели VAR (p) в модель VEC (q). Если матрица коэффициентов исправления ошибок (Cимеет:

    • Оцените нуль, затем преобразованная модель VEC является стабильной моделью VAR (p - 1) с точки зрения Δyt.

    • Полный ранг, тогда модель VAR (p) стабильна (то есть не имеет единичных корней) [2].

    • Оцените r, так что 0 < r < n, тогда стабильная модель VEC имеет r коинтегрирующих отношений.

  • Постоянное смещение преобразованной модели VEC совпадает с постоянным смещением модели VAR.

Алгоритмы

  • var2vec не накладывает требования устойчивости на коэффициенты. Для проверки устойчивости используйте isStable.

    isStable требует LagOp полином оператора задержки как входной параметр. Например, чтобы проверить, VAR ли, массив ячеек n-by- n числовые матрицы, составляет стабильные временные ряды, ввод

    varLagOp = LagOp([eye(n) VAR]);
    isStable(varLagOp)

    A 0 указывает, что полином не является стабильным.

Ссылки

[1] Гамильтон, Дж. Д. Анализ временных рядов. Princeton, NJ: Princeton University Press, 1994.

[2] Lutkepohl, H. «Новое введение в анализ нескольких временных рядов». Springer-Verlag, 2007.

Введенный в R2015b