How one SD shock can be converted into percentage shock
How one SD shock can be converted into percentage shock
Hi,
I have computed impulse response functions from a SAVR model. The impulse responses are to one standard deviation shock to error terms. The variables: IIP, Oil price, CPI, exchange rate are in log levels. Interest rate are not in log. All variables are in level.
Ques 1: I give one SD shock to LogIIP. How can I compute one SD shock to LogIIP is equivalent to how much % change in logIIP? I mean how can I compute that one SD shock to log IIP is 1%/2%/5% shock to LogIIP?
Second, regarding the the reposes of rest of the variables. How the response of log CPI can be interpreted in percentage terms in response of one SD shock to logIIP. As of now I get impulse response of log CPI of 0.002 in the first 4 quarters in response to a one SD shock to logIIP. How can this impulse be interpreted in terms of percentage variation in Log CPI?
I would be highly grateful for clarifying on the above issues.
Best,
Bhupal
I have computed impulse response functions from a SAVR model. The impulse responses are to one standard deviation shock to error terms. The variables: IIP, Oil price, CPI, exchange rate are in log levels. Interest rate are not in log. All variables are in level.
Ques 1: I give one SD shock to LogIIP. How can I compute one SD shock to LogIIP is equivalent to how much % change in logIIP? I mean how can I compute that one SD shock to log IIP is 1%/2%/5% shock to LogIIP?
Second, regarding the the reposes of rest of the variables. How the response of log CPI can be interpreted in percentage terms in response of one SD shock to logIIP. As of now I get impulse response of log CPI of 0.002 in the first 4 quarters in response to a one SD shock to logIIP. How can this impulse be interpreted in terms of percentage variation in Log CPI?
I would be highly grateful for clarifying on the above issues.
Best,
Bhupal
Re: How one SD shock can be converted into percentage shock
The impulse responses in a VAR are linear in the sizes of the shocks. The one SD shocks are used to put the whole set of responses into a proper context. But if you're mainly interested in a specific shock, you can re-scale it however you want.
will do unit shocks to "shock variable". If the shock variable (X) and the response variable of interest (Y) are put into the VAR in logs, you would interpret a response of 1.5 as 1.5% in the original variable; that is, a 1% shock in X produces 1.5% response in Y. Note that these are responses in the original variables, not the logs. In your description, you seem to be confusing percentage change in X with percentage change in log X.
Code: Select all
IMPULSE(MODEL=your model,SHOCKS=%UNITV(model size,shock variable),STEPS=number of steps,PRINT)Re: How one SD shock can be converted into percentage shock
Hi Tom,
Thanks so much for your reply.
I may sound foolish but Just to conrifm again. When both x and y are in log levels, One SD shock to x (variable shocked) and impulses of the variable of interest y would be interpreted as: 1% change in x causing how much % change in y.
Thanks in advance.
Bhupal
Thanks so much for your reply.
I may sound foolish but Just to conrifm again. When both x and y are in log levels, One SD shock to x (variable shocked) and impulses of the variable of interest y would be interpreted as: 1% change in x causing how much % change in y.
Thanks in advance.
Bhupal
Re: How one SD shock can be converted into percentage shock
No, because a one SD shock to x will almost always have a value different from a standardized 1 (or .01). If you use SD shocks, then you would have to rescale the responses as well to get the %change to %change interpretation. That is, if the SD is .04 and a response is .09, you can interpret that as a 1% shock in x producing a 2.25% (=.09/.04) response in y.bhupal wrote:Hi Tom,
Thanks so much for your reply.
I may sound foolish but Just to conrifm again. When both x and y are in log levels, One SD shock to x (variable shocked) and impulses of the variable of interest y would be interpreted as: 1% change in x causing how much % change in y.
Thanks in advance.
Bhupal
-
N. BEN CHEIKH
- Posts: 3
- Joined: Thu Jun 19, 2008 8:40 am
Re: How one SD shock can be converted into percentage shock
Hi,
Can you tell us how to use
****************************************************************************************************************
IMPULSE(MODEL=your model,SHOCKS=%UNITV(model size,shock variable),STEPS=number of steps,PRINT)
****************************************************************************************************************
in the montevar.src, in order to get SD shock converted into one percentage.
Thank you very much
Can you tell us how to use
****************************************************************************************************************
IMPULSE(MODEL=your model,SHOCKS=%UNITV(model size,shock variable),STEPS=number of steps,PRINT)
****************************************************************************************************************
in the montevar.src, in order to get SD shock converted into one percentage.
Thank you very much
Re: How one SD shock can be converted into percentage shock
Replace the IMPULSE instruction with
Everything else will be the same. (This will do unit shocks to all variables).
Code: Select all
impulse(noprint,model=model,factor=%identity(nvar),results=impulses,steps=steps)
Re: How one SD shock can be converted into percentage shock
Tom, one question. If I use factor=%identity(nvar) inside a bootstrap o MH, I have the impression that the impulse response I get from the Cholesky, not the one that come from cvmodel, is it?. Is there other way to standardize all shocks to unit?.
Re: How one SD shock can be converted into percentage shock
factor=%identity(nvar) means unit shocks to each variable's one-step ahead forecast, without regard to the covariance matrix or any structural model. If you have any form of structural model (the Cholesky being a special case with a recursive structure), you typically can come up with rescaled shocks which have unit impacts on particular variables. If F is a factor of sigma, then the impact of shock j on variable i is F(i,j), so a shock with the same shape but scaled to make a unit impact on i is %xcol(F,j)/F(i,j). Since the scale of the response is part of the data evidence (through the observed sigma), it's not clear that that's a good idea, but if you think that the shape is what really matters, that's how you would go about standardizing the responses.
Re: How one SD shock can be converted into percentage shock
In the following code,
would impulse responses be interpreted as std deviations or percentages?
would impulse responses be interpreted as std deviations or percentages?
Code: Select all
* MONTESUR.RPF
* Uses Gibbs sampling to analyze the impulse response functions for a
* near-VAR.
*
compute lags=2 ;*Number of lags
compute steps=20 ;*Number of response steps
compute nburn =5000 ;*Burn-in draws
compute ndraws=25000 ;*Keeper draws
*
compute nvar=%modelsize(shocks)
@SURGibbsSetup shocks
sur(model=shocks)
compute ntotal=%nreg
compute bdraw=%beta
compute wishdof=%nobs
declare vect[rect] %%responses(ndraws)
*
infobox(action=define,progress,lower=-nburn,upper=ndraws) $
"Gibbs Sampling"
do draw=-nburn,ndraws
compute covmat=SURGibbsSigma(bdraw)
*
compute hdraw=%ranwishartf(%decomp(inv(covmat)),wishdof)
@SURGibbsDataInfo hdraw hdata hbdata
compute hpost=hdata
compute vpost=inv(hpost)
compute bpost=vpost*hbdata
compute bdraw=bpost+%ranmvnormal(%decomp(vpost))
infobox(current=draw)
if draw<=0
next
compute %modelsetcoeffs(shocks,bdraw)
impulse(noprint,model=shocks,factor=%decomp(hdraw),results=impulses,steps=steps)
dim %%responses(draw)(nvar*nvar,steps)
ewise %%responses(draw)(i,j)=ix=%vec(%xt(impulses,j)),ix(i)
end do draw
infobox(action=remove)
source mcgraphirf
@MCGraphIRF(model=shocks,center=median,page=one,percentile=||.05,.95||,HEADER="IMPULSE RESPONSES - SHARE PRICES INCLUDED")Re: How one SD shock can be converted into percentage shock
The shocks are one SD Cholesky factor shocks. The responses are in the units of the dependent variables.
Re: How one SD shock can be converted into percentage shock
Hi
Is it possible to impulse directly a negative shock withe IMPULSE instruction. I would like to simulate an expansionnary monetary policy instead of a restrictive MP?
Thanks
Is it possible to impulse directly a negative shock withe IMPULSE instruction. I would like to simulate an expansionnary monetary policy instead of a restrictive MP?
Thanks
Re: How one SD shock can be converted into percentage shock
Of course. Either the SHOCKS option or the FACTOR option will take elements with any sign. After all, if FF'=sigma, then (-F)(-F)'=sigma as well, plus, you can flip signs of any combination of columns in a factor matrix and still have a factor.guillaume wrote:Hi
Is it possible to impulse directly a negative shock withe IMPULSE instruction. I would like to simulate an expansionnary monetary policy instead of a restrictive MP?
Thanks
Re: How one SD shock can be converted into percentage shock
real exchange rate should be kept in log levels or log difference?
Re: How one SD shock can be converted into percentage shock
Usually log levels.ivory4 wrote:real exchange rate should be kept in log levels or log difference?
Re: How one SD shock can be converted into percentage shock
Hi,
Can you tell us how to change one SD shock to 1% shock in a Cholesky IRF? For choleksy irf, I use
Thanks,
Hypatia
Can you tell us how to change one SD shock to 1% shock in a Cholesky IRF? For choleksy irf, I use
. Then I will get one SD shock cholesky irf. Depending on the order of the VAR, a shock on the first variable will affect the other variables, while a shock on the last variable will only affect itself in the first period. However, I would like to get 1% shock irf. Following the previous instruction, if I add shocks=%unitv(3,3) or factor=%identity(nvar), the shock will only be one variable 1% shock with the other variables impulse response=0 at the first period (a shock on the first variable will only affect itself and not affect the other variables), which is not cholesky irf. How could I fix it?impulse(model=VAR1, result=impuless,decomp=%decomp(%sigma),steps=20)
Thanks,
Hypatia