# How to estimate the threshold VAR model?

59 views (last 30 days)
Ameer Fahmi on 1 May 2019
Commented: Hamid Muili on 5 Apr 2021
I'm using toolbox of threshold VAR model devloped by Gabriel Bruneau
I tried the following syntax for the selction of threshold VAR model as described in the code
ic = tvarxic(y,8,2,([0 1]),'SBIC')
The first argument is my input which is a matrix of two variables with 268 observations, next to it there is the maximum lags followed by by the number of theresholds. Then there is a vector to spicify the transition variable, 1 indicates for the variable to be taken as transition variable. The last argument is for the information criteria
However, every time I run the code, I got the following error
Error using tvarxic
Expected input number 4, transVar, to be an array with number of rows equal to 268.
Error in tvarxic>checkInput (line 279)
validateattributes(transVar,{'numeric'},{'real','nrows',size(y,1),'ncols',1},'tvarxic','transVar',4);
Error in tvarxic (line 82)
[y,nARmax,nThreshmax,transVar] = checkInput(y,nARmax,nThreshmax,transVar);
I tried many things but I'm getting the same error, could anyone please check and tell me what I'm doing wrong here
Any help is deeply appreciated

pan chao pan on 27 Aug 2019
Hamid Muili on 5 Apr 2021
Finally I was able to fix it. Just create a matrix of logical expression in MATLAB. For example, if y contains my data set 100*4 for 4 variables with 100 observation. And I want to use the first column variable as the treshold variable. Just create a matrix of logical expression. Treshvar= [true, false,false, false]. This tells MATLAB that it should only use the first variable as the treshold variable.