SVAR model with sign restrictions - how to distinguish between the responses to the respective shocks?

조회 수: 19 (최근 30일)
I am evaluating the real impacts of quantitative easing on the USA economy. I use a structural vector autoregressive model (SVAR) with sign restrictions. Except the monetary shock (quantitative easing) I identify 2 more shocks - positive supply and demand shock. By following these I am trying to prevent disturbances from bussines cycle represented by those two shocks enter into the identification of the monetary shock. Here comes my problem. I don't know exactly how to write the code to be able to distinguish between the responses to the respective shocks - more exactly I need the responses to the monetary shock without any influence of supply/demand shocks. My code in current form identifies all three shocks at the same time, but I need only the pure monetary shock (without any effect of positive demand/supply shock). I use Matlab toolbox IRIS. Here is the full code, where the part 4 is about setting the sign restrictions. Each section is sepparated and has its own title.
if true
********************************
%%1)PREPARING THE WORKSPACE
clear;
close all;
clc;
********************************
%%2)INICIALIZATION OF IRIS AND LOADING THE DATA
addpath c:\Program Files\MATLAB\IRIS; irisstartup
load data_svar.mat
range = mm(1992,2) : mm(2014,12);
********************************
%%3)ESTIMATION OF REDUCED VAR MODEL
v = VAR({'CPI','IP','RES','x10TCM','TWD','SM'});
[v,vdata] = estimate(v,d,range,'order=',4, 'const=', false);
disp(v);
********************************
%%4)SIGN RESTRICTIONS
%1=demand shock
%2=supply shock
%3=quantitative easing
test_string = [ ...
'sum(S(1,1,1:12)) > 0 ', ...
'&& sum(S(2,1,1:12)) > 0 ', ...
'&& sum(S(1,2,1:12)) < 0 ', ...
'&& sum(S(2,2,1:12)) > 0 ', ...
'&& sum(S(1,3,1:12)) >= 0 ', ...
'&& sum(S(3,3,1:12)) > 0 ', ...
'&& S(1,3,1) > -0.1 ', ...
'&& S(1,3,1) < 0.1 ', ...
'&& S(2,3,1) > -0.1', ...
'&& S(2,3,1) < 0.1 '];
********************************
%%5)ESTIMATION OF THE SVAR MODEL
N = 1000;
[sv,svdata,B,count] = SVAR(v,vdata, ...
'method=','householder', ...
'test=',test_string, ...
'ndraw=',N, ...
'maxIter=',Inf, ...
'progress=',true);
sv
size(B)
count
end

답변 (0개)

카테고리

Help CenterFile Exchange에서 Computational Finance에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by