exponenta event banner

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

Рассмотрите возможность преобразования следующей структурной модели 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.001] L4}

где 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-на-n числовых матриц или LagOp объект полинома оператора запаздывания.

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

    • VAR (p) - одномерный временной ряд.

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

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

    • Коэффициент yt (A0) равен 1.

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

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

    • VAR{j} должен содержать Aj, матрицу коэффициентов члена запаздывания yt-j.

    • var2vec предполагает, что коэффициент yt (A0) представляет собой идентичность n-by-n.

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

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

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

    • Для построения модели в уменьшенной форме задайте VAR.Coefficients{0} кому eye(VAR.Dimension).

Например, рассмотрите возможность преобразования

[1001] yt = [0,10,210,1] yt − 1 + [0,10,010,2 0,3] yt − 2 +

в модель 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,2 0,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-на-n числовых матриц или LagOp объект полинома оператора запаздывания. 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-на-n числовой матрицы. n - количество временных рядов в модели VAR.

Подробнее

свернуть все

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

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

То есть модель VAR (p), записанная в нотации «разность-уравнение», является

A0yt = a + A1yt 1 + A2yt 2 +... + Апыт − p + αt.

Модель VEC (q), записанная в нотации дифференциального уравнения,

B0Δyt = b + B1Δyt 1 + B2Δyt 2 +... + BqΔyt − q + Cyt − 1 + αt.

Определения переменных и параметров см. в разделах Модель VAR (p) и Модель VEC (q).

Нотация оператора задержки

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

То есть модель VAR (p), записанная в нотации lag-operator, является

A (L) yt = a + αt

где A (L) = A0 A1L A2L2 ... − ApLp и Ljyt = yt − j.

Модель VEC (q), записанная в нотации дифференциального уравнения,

B (L) Δyt = b + Cyt − 1 + αt

где B (L) = B0 B1L B2L2 ... − BqLq.

Определения переменных и параметров см. в разделах Модель VAR (p) и Модель VEC (q).

При сравнении записи оператора запаздывания с записью уравнения разности знаки членов запаздывания противоположны. Дополнительные сведения см. в разделе Нотация оператора задержки.

Модель VAR (p)

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

A0yt = a + A1yt 1 + A2yt 2 +... + Апыт − p + αt.

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

  • A0 - матрица n-на-n обратимых структурных коэффициентов. Для моделей в уменьшенном виде A0 = In, который является n-мерной единичной матрицей.

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

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

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

Модель VEC (q)

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

B0Δyt = b + B1Δyt 1 + B2Δyt 2 +... + BqΔyt − q + Cyt − 1 + αt.

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

  • Δ - первый разностный оператор, то есть Δyt = yt - yt-1.

  • B0 - матрица n-на-n обратимых структурных коэффициентов. Для моделей в уменьшенном виде B0 = 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, второй элемент - коэффициент Δyt-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около-n числовые матрицы, составляет стабильный временной ряд, введите

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

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

Ссылки

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

[2] Люткеполь, Х. «Новое введение в анализ множественных временных рядов». Спрингер-Верлаг, 2007.

Представлен в R2015b