Inicio Función Load Data xlsread Estimación VAR VARmodel Restricciones de Signo SR Gráfico subplot Fin 1 Estimacion VAR [VAR, VARopt]=VARmodel(ENDO,nlag, const) input ENDO: matriz (numero de obs. x Numero de Var) nlag: longitud de rezagos const: Determinantes para el VAR if true V arexo > 0 Xex = V ARmakelags(EXOG, nlagex ) if nlag == nlagEX false true false [X, XEX ] nlag > nlagEX false true dif f = nlag − nalgex nlag < nlagEX true XEX = XEX (dif f + 1 : end, :) X = [XXEX ] dif f = −nlagex − nlag Y = Y (dif f + 1 : end, :) X = [X(dif f + 1 : end, :)XEX OLSout = OLSmodel(Yvec,X,0) input Yvec: vector de la variable dependiente (nx1) X: matriz de las variables idependientes (nxvar) 0: no constante output VAR: estructura, incluyendo resultados de la estimación VAR VARopt: estructura, incluyendo opciones de la estimación VAR Restricciones de Signo 2 Restricciones de Signo SRout=SR(VAR, SIGN, VARopt SIGN= matriz conteniendo las restricciones de signo (nvar x nshocks) RealGDP 0 0 0 0 0 0 −1 0 0 0 0 0 Def lator −1 0 0 0 0 0 CommodityP rice 0 0 0 0 0 0 ← T otalReserves −1 0 0 0 0 0 N onBorrowedReserves F edF und 1 0 0 0 0 0 if Error : You have not provided sign restrictions (SIGN) false Error : You need to provide VAR options (VARopt from VARmodel) false ¿Existe SIGN? if true ¿Existe VARopt? jj=0 (numero de rotaciones aceptadas) tt=0 (numero de rotaciones totales) ww=1 (índice para informar el numero de rotación) while Numero de rotaciones para boostrap o restricciones de signo jj<1000 false ¿Hay incertidumbre por restricciones de signo? true false true Error : Numero de rotaciones para hallar restricciones de signo excedido. true tt>100000 false Computar matriz rotativa B Rotar F y Sigma del posterior if false B no esta vacío tt=tt+1 true jj=jj+1 tt=tt+1 Actualizar matriz rotativa Computar y guardar IR, VD, HD IR: Impulse Response VD: Forecast Error Variance Decomposition HD: Historical Decomposition if false jj==ww*10 true Mensaje: ’Rotacion jj/(numero de rotaciones)’ Gráfico ww=ww+1 3