Identification in Threshold VAR's

Discussion of models with structural breaks or endogenous switching.
luching
Posts: 64
Joined: Mon Jun 07, 2010 4:05 pm

Identification in Threshold VAR's

Unread post by luching »

Hi,

I have a threshold VAR of the form

y(t) = Ay(t-1) + [By(t-1)](Indicator(Z(t)>c)) + Eta(t) ;where Z(t) is the threshold variable and c is the cutoff.

The VAR is non-linear and I know that impulse responses cannot be inferred from the standard MA(infinity) representation. My question is on the identification. Can I still use sign restrictions in this setup? As in, can I simulate the impulses and impose the sign restrictions to identify the structural shocks?
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Identification in Threshold VAR's

Unread post by TomDoan »

Only contemporaneous sign restrictions, which wouldn't be all that interesting. You could try to identify shocks based upon sign restrictions in one or the other branch only; whether that's sensible would probably depend upon how persistent the two branches are.
guo
Posts: 23
Joined: Wed Sep 28, 2011 7:43 am

Re: Identification in Threshold VAR's

Unread post by guo »

Hi, Tom

Yesterday I checked RATS Procedures and Examples. And I did not find code on Threshold VAR. Would you please give me some suggestions ?
I use structural 5-variables VAR.
Thank you very much.
guo
Posts: 23
Joined: Wed Sep 28, 2011 7:43 am

Re: Identification in Threshold VAR's

Unread post by guo »

Hi, Tom

Thank you very much for your quick and useful reply.

I use a 5-variable structural VAR. And I took logarithm and first difference of CPI and other four variables in the VAR. And I want to use CPI level data as an indicator, how could I find the threshold for a structural VAR using CPI level data as an indicator?

I really appreciate you could give me more hints and suggestions.

guo
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Identification in Threshold VAR's

Unread post by TomDoan »

guo wrote:Hi, Tom

Thank you very much for your quick and useful reply.

I use a 5-variable structural VAR. And I took logarithm and first difference of CPI and other four variables in the VAR. And I want to use CPI level data as an indicator, how could I find the threshold for a structural VAR using CPI level data as an indicator?

I really appreciate you could give me more hints and suggestions.

guo
The threshold variable doesn't need to be one of the variables in the VAR itself. For instance, in the Tsay interest rates example, the threshold series was a series constructed from the spreads. Just follow what's done there, defining the thresh series as the CPI level.

However, do you really want to use CPI level as the threshold variable? It's a trending variable (in most countries, certainly), so the threshold would really be a time sample split.
guo
Posts: 23
Joined: Wed Sep 28, 2011 7:43 am

Re: Identification in Threshold VAR's

Unread post by guo »

Dear Tom,

Thank you very much for your very useful reply. And I have gotten the threshold for CPI level data(101.2). And next step I want to apply this level CPI threshold to 5-variable structural VAR.
Could you please give me some hints or advice on how to apply level CPI threshold to a 5-variable structural VAR?
Thank you very much.

guo
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Identification in Threshold VAR's

Unread post by TomDoan »

guo wrote:Dear Tom,

Thank you very much for your very useful reply. And I have gotten the threshold for CPI level data(101.2). And next step I want to apply this level CPI threshold to 5-variable structural VAR.
Could you please give me some hints or advice on how to apply level CPI threshold to a 5-variable structural VAR?
Thank you very much.

guo
What is it that you want to do? You've identified the threshold so you can estimate the VAR over two regimes defined using a SMPL option with CPI above and below your threshold value.
guo
Posts: 23
Joined: Wed Sep 28, 2011 7:43 am

Re: Identification in Threshold VAR's

Unread post by guo »

Dear Tom,

Thank you very much for your kind and useful advice. And I have gotten the results I want. According to the CPI level threshold, the low inflation regime only contain 43 of the 127 whole samples. So the impulse responses are explosive. And I really appreciate you could help me to check if I use SMPL option correctly to define the two regimes as followings:

Code: Select all

order cpi
com e = cpi
smpl 1 43
system(model=model_cpi)
variables dslop c_ipi dslcpi dslm1 dlneero
lags 1 to lags
det constant
end(system)
estimate(noprint,cvout=v)
......
order cpi
com e = cpi
smpl 44 127
system(model=model_cpi)
variables dslop c_ipi dslcpi dslm1 dlneero
lags 1 to lags
det constant
end(system)
estimate(noprint,cvout=v)
Thank you very much.

guo
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Identification in Threshold VAR's

Unread post by TomDoan »

That's definitely not going to work. When you order the CPI variable, the rest of the data set stays where it is so you're not getting the observations where CPI is low.

First off, if you're using CPI (not inflation) as the threshold variable, why is it that you think the low values are low "inflation"? They're low price level, not low inflation. Also, do you want to be using the current (rather than lagged) variable as your threshold. Current is generally only used for strictly exogenous threshold series.

What you want is to use the SMPL option on ESTIMATE, not the SMPL instruction. Something like

ESTIMATE(SMPL=CPI<c)

and

ESTIMATE(SMPL=CPI>=c)

where c is the threshold value. That keeps the data in the proper order and simply pulls out the observations.
guo
Posts: 23
Joined: Wed Sep 28, 2011 7:43 am

Re: Identification in Threshold VAR's

Unread post by guo »

Dear Tom,

Thank you very much for your quick and really helpful reply.After considering your advice carefully, I think I should use lagged inflationary data rather than CPI level data. But how can I define the which lag I should use?
By the way, I want to choose the lag for SVAR. Would you please give me some advice on that?
I have use the code in the Rats Procedures and Examples to graph accumulated impulses, but the result is the same as the normal impulses. Would you please help me to figure out which part is wrong?

Code: Select all

dec rect[series] impulses(5,5)
impulse(model=model_cpi,result=impulses,noprint,steps=24)
dec rect[ser] accumimp(%nvar,%nvar)
do i = 1,%nvar
	do j = 1,%nvar
		accumulate impulses(i,j) 5 24 accumimp(i,j)
	end do i
end do j
estimate
compute nvar   =%nvar
compute fxx    =%decomp(%xx)
compute fwish  =%decomp(inv(%nobs*%sigma))
compute wishdof=%nobs-%nreg
compute betaols=%modelgetcoeffs(model_cpi)
com ndraws = 500
declare vect[rect] %%responses(ndraws)
declare rect[series] accumimp(nvar,nvar)
infobox(action=define,progress,lower=1,upper=ndraws) "Monte Carlo Integration"
do draw=1,ndraws
     if %clock(draw,2)==1 {
      compute sigmad  =%ranwisharti(fwish,wishdof)
      compute fsigma  =%decomp(sigmad)
      compute betau   =%ranmvkron(fsigma,fxx)
      compute betadraw=betaols+betau
   }
   else
      compute betadraw=betaols-betau
     Push the draw for the coefficient back into the model.
     compute %modelsetcoeffs(model_cpi,betadraw)
   impulse(noprint,model=model_cpi,factor=g,$
     results=accumimp,steps=nstep)
    Save the accumulated impulse responses
   dim %%responses(draw)(nvar*nvar,nstep)
   ewise %%responses(draw)(i,j)=ix=%vec(%xt(accumimp,j)),ix(i)
   infobox(current=draw)
end do draw
infobox(action=remove)
@mcgraphirf(model=model_cpi)
TomDoan
Posts: 7814
Joined: Wed Nov 01, 2006 4:36 pm

Re: Identification in Threshold VAR's

Unread post by TomDoan »

This whole thread is actually in the wrong forum (I'll move it). The issue you're dealing with is covered in several posts in the Structural Breaks and Switching Models forum. Non-linear models don't have typical impulse response functions because the response of the system depends upon where you are relative to the threshold. You might want to think about getting the Structural Breaks and Switching Models course which covers the various methods for getting something akin to an IRF for threshold models.
Post Reply