Economica: Историческая декомпозиция в структурных векторных авторегрессиях (SVAR)

Нервная ситуация на валютном рынке и обилие пресс-релизов Банка России заслонили публикацию нового Доклада о ДКП. Между тем, он опубликован и традиционно содержит немало интересного. И, да – в части аналитических инструментов тоже. 
Сегодня хочу обратить внимание на определенный один прием использования SVAR – историческую декомпозицию. 
Историческая декомпозиция позволяет понять, каким образом сложился уровень интересующей нас переменной – из вкладов шоков каких переменных, их текущих, так и случившихся в некотором прошлом значений.

Прямо скажем, публикация исторических декомпозиций не слишком распространена в работах, посвященных оценке векторных авторегрессий (VAR). Презентация результатов заключается по большей части в демонстрации полученных функций ипульсного отклика и обсуждению их согласованности с теоретическим соображениями. Тем не менее, такие работы встречаются, скажем в [1] сотрудники Банка Новой Зеландии таким образом пытаются идентифицировать вклады различных факторов в уровень доходности государственных ценных бумаг.

А мы сегодня используем историческую декомпозицию для идентификации потенциального выпуска.

Алгоритм

Некоторые элементы введения в историческую декомпозицию есть в [2], однако куда более последовательно алгоритм представлен в [3, Algorithm 5]. Для получения итогового результата следует:

  1. Выбрать данные и оценить модель $VAR(p)$ в приведенной форме.
  2. Идентифицировать структурную форму модели $VAR(p)$, например, по Холецкому или Бланшару-Куа
  3. На основе идентифицированной модели получить матрицы функций отклика $C in R^{n times n times  tau}$, где $tau$ – количество периодов.
  4. Вклад шока  $i$ в уровень переменной $j$ с учетом функции отклика равен бесконечной (в прошлое) сумме $tilde{y}_t^{(i,j)}=sum_{i=0}^{infty}(c_i^{ij}epsilon^{j}_{t-i})$. К сожалению, в нашем распоряжении никогда нет бесконечно набора исторических данных,  и мы вынуждены начинать с некоторого первого периода. Таким образом, в нашей декомпозиции появится конечная сумма $tilde{y}_t^{(i,j)}=sum_{i=0}^{t-1}(c_i^{ij}epsilon^{j}_{t-i})$, а вклад начальных условий $K_t=y_t-tilde{y}_t$.

Пример 

Для наглядности предлагаю разобрать пример. Попробуем расчитать альтернативную меру потенциального выпуска, как это сделано в работе [4]. Просьба взглянуть на нее для всех подробностей. Для этого используем набор данных
$ x_t= begin{bmatrix} Delta y_t \ g_t \ r_t \ end{bmatrix} $

где $Delta y_t$ – прирост реального выпуска, $g_t$ – некоторая мера фискального стимулирования (в работе используется размер расходов бюджета по отношению к совокупному выпуску), $r_t$ – реальная процентная ставка.

Идентификация модели SVAR проводится с использованием альгоритма Бланшара-Куа, который предполагает отсутствие долгосрочных связей между некоторыми переменными. Так, мы предполагаем, что фискальная политика и денежная политика не имеют долгосрочного влияиния на выпуск, тогда как денежная политика в свою очередь не оказывает долгосрочного влияния на фискальную политику.

Все расчеты в отдельных файлах доступны ниже, а здесь оставлю лишь иллюстрации.

Историческая декомпозиция шоков:

Собственный вклад шоков выпуска интерпретируется как разрыв выпуска. Мы можем сравнить его с оценками традиционного фильтра Ходрика-Прескотта:

Я не буду расписывать детально здесь расчеты, а для любопытсвующих:

  1. Расчеты в Wolfram Mathematica: PDF, NB и данные.
  2. Необходимый для расчетов пакет Economica.

Предупреждаю, что все расчеты сделаны на скорую руку, а скорая рука делает много ошибок! Найдете – буду рад услышать. 🙂

Источники

1. Osborn, D., & Vehbi, T. (2013). Empirical Evidence on Growth Spillovers from China to New Zealand (No. 13/17). New Zealand Treasury. (здесь)
2. Enders, Applied Time Series Analysis, ed. 2, pp 307-310 (своей копией обязан  Гамбарову Г.М.)
3. Ocampo, Sergio, and Norberto Rodríguez. “An Introductory Review of a Structural VAR-X Estimation and Applications.” Revista Colombiana de Estadística 35.3 (2012): 479-508.
4. Du Plessis, S., Smit, B., & Sturzenegger, F. (2008). Identifying Aggregate Supply and Demand Shocks in South Africa. Journal of African Economies,17(5), 765-793.

Economica: Историческая декомпозиция в структурных векторных авторегрессиях (SVAR)

Economica: Mathematica с MATLAB-акцентом

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

Так что решил перенести пару функций из MATLAB в Mathematica.

linspace[x,y,n] – дает набор равномерных цифр от x до y размером n. x и y могут быть векторами или матрицами (для чисел отсюда, для векторов и матриц дописал сам):

[wlcode]linspace[x_?NumericQ, y_?NumericQ, n_Integer] := Array[# &, n, {x, y}];
linspace[x_List, y_List, n_Integer] :=
Module[{temp},
If[Dimensions@x != Dimensions@y, Abort[]];
temp = MapThread[linspace[#1, #2, n] &, {x, y}, 1];
temp[Transpose]
];[/wlcode]
Для получения нулевой матрицы можно использовать zeros, для единичной матрицы – eye:
[wlcode]zeros[x : Sequence[Integer__]] := ConstantArray[0, {x}];
eye[x_Integer] := IdentityMatrix[x];[/wlcode]Для того, чтобы избавиться от списков с одним елементом нужно использовать squeeze (отсюда):

[wlcode]squeeze[A_] := ArrayReshape[A, Dimensions[A]~DeleteCases~1][/wlcode]

Все они доступны в Economica.

Economica: Mathematica с MATLAB-акцентом