In my previous try on ARDL cointegrating bounds using Microfit here, Eviews here and here, and using STATA here. The comments and suggestions I received for them were very helpful. With my current experience, I would recommend using Microfit or Eviews for ARDL, but one must be cautious with calculation glitches when they are using the crack version of Eviews.

This blog is illustrating the Non-linear ARDL cointegrating bounds which is also called Asymmetric Effects ARDL (NARDL) proposed by (Shin, Yu & Greenwood-Nimmo, 2014). The idea behind this model is questioning the standard assumption of symmetric estimates, by which the effect of increasing of a variable is equal and opposite to the decreasing of the same variable. There are few cases mentioned in the above study like creation and destruction of jobs in boom and recession.

In the example below the nardl_data is unemployment (dependent variable) and industrial production index (independent variable). You can import this data into Stata by simply copying and pasting in data editor (tutorial).

Once imported, you have to indicate Stata that data is time series for this following command is used

tsset* time*

This way all the time series command will become functional. In order to estimate the NARDL following files must be downloaded, uncompressed, and paste Stata/ado/base/n folder where ever it is installed, it will then work in Stata. Following is the command

In the command below p() and q() are the number of lags of dependent and independent variable used. You can identify optimal lag by using ‘varsoc’ command in Stata, illustrated here.

nardl un ip*, p(2) q(2)*

Above table is standard one step ECM, the first coefficient is the convergence coefficient. and x1 is the first independent variable where x1p is the increasing portion of x1 and x1n is the decreasing portion of x1.

Below is the F bounds test, here it is 2.22, its critical values are same as the simple ARDL cointegrating bounds. Can be seen from the following paper. Currently, it is smaller than critical values.

Below table shows the long run increasing and decreasing effect of independent variable on the dependent variable. When the independent variable increases it decreases unemployment by 14.71% but when independent variable decreases, it increases unemployment by 48.69%.

The long run asymmetry and short run asymmetry is tested using F test. Since only long run F test is significant so there is only long run asymmetry.

After estimating the model, there are four types of diagnostics reported, since all of them are insignificant, so there is no autocorrelation, heteroscedasticity, misspecification and non-normality respectively.

We can also generate the graph by adding the ‘plot’ option in command and further confidence interval by using bootstrap and level option. The horizon option will identify how many years the graph will be constructed.

*nardl un ip, p(2) q(4) plot horizon(40) bootstrap(100) level(95)*

in the above figure, we can see that decrease in IP(industrial production) has a positive effect on UN(unemployment) shown by red line. While increasing IP has a temporary negative effect on UN shown by the green line. And the blue line showing the increasing trend of asymmetry with time.

Your comments and suggestions are welcome.

Dear Author,

I would like to know what should be done when the CUSUM and CUSUMQ are unstable( more precisely, if there is structural break in the data), how can the ARDL model be run in that case? Would you please like to describe the ARDL procedure for that case.

Thanks. All the best.

add the known structural break or unknown structural break in such case shown here. And hope that adding break will suffice.

before i processed the nardl_test, i should do the nardl.ado right? I would like to know why the nardl couldn’t be processed? after i click do the nardl.ado, i click do the nardl_test and program said unable to change to /adodev/nardl. why? I tried to processed whitout nardl.ado file and just used narl_test file, when in nardl un ip if tin(1983m3,2003m11), p(12) q(5), stata said unrecognized command: nardl. I hope you answer my question because i am so confused how to process nardl and get cumulative dynamic effect. Thank you so much

when i processed syntax varlist in nardl.ado, it said varlist required. Why? and what should i do with the red word such as “you must provide at least 2 variables”? i should change or delete that words? and when i processed generate dependent variable and regressors local thisvariable: word 1 of `varlist’ qui gen _y = `thisvariable’, it said invalid syntax. What should i do? Thanks

Do idea about it please contact the owner of the module email: sunder@wifa.uni-leipzig.de

you have to use the nardl.do file and copy it relevant place as mentioned in the blog. It will only work after it.

yeah it works.. Thanks!! Oh ya, can i use the nardl.ado to 3 variables? Or i must add some code to make 3 variables work?

yes, write help nardl it will show you an example of nardl with more than 2 variables.

I would like to know how to choose the number of L in constrain? Because i saw that the L number was so random. For example: constraint 1 L2._dy L3._dy L4._dy L5._dy L6._dy L7._dy L8._dy L9._dy L10._dy, constraint 2 L1._dx1p L3._dx1p L4._dx1p, constraint 3 L1._dx1n L2._dx1n L3._dx1n. Thank you so much

L means lag in stata. remaining i do not understand

I would like to know in this blog before you used nardl un ip p(2) q(2), and after that you used p(2) q(4) for nardl un ip, p(2) q(4) plot horizon(40) bootstrap(100) level(95). why the number of p was changed? Thank you

and once again, in your file, to get cumulative dynamic multiplier, you used constrain 1-3, why in your blog you didn’t use constrain? thank you

we use constraint if we have more than one independent variable and we dont want to check asymmetry in any one of them.

I just changed it to show that it can be changed, no other reason

Dear Sir Noman!

Thank you very much for the presentation of NARDL. Its of great and highly appreciated.

Secondly, i would like to ask you that you mention in this tutorial that Y L1 is actually the ECM convergence coefficient. But as Y is independent variable so isn’t it the dependent variable lag 1 coefficient? Also you estimated the default model using variables as UN IP. But the below positive nad negative coefficients are different in the above-estimated NARDL model. If i am wrong please correct me. Kindly need some guidance in this regards.

Its highly appreciated.

in the example, Y is the dependent variable. This difference is the value is the calculation done by the module as proposed by the paper. they are different because when we calculate the long-run coefficients, we have to divide them with the convergence coefficient, that is why the value of IP is different in both tables.

first of all I want to thank you sir for this interesting blog, and then I would like to ask you when we have 2 independent variable how we write the command, for example inflation is the dependent variable while oil price and real gdp are the independent variables so how to specify the command and specially the lags;

note : I didn’t found such case in nardl help so I hope you will help with this.

just add another independent variable in the command it will work.

ok..it’s working but I still have a problem, when the results are shown there was just the regression results and the asymmetric statistics while the cointegration test statistic and the model diagnostic were absents, so what is the problem and what to do to get them ?

Dear sir norman,

Can i know the constrain if i have 3 independent variables? because i want to know the asymmetric effect of all independent variables. Thank you so much

1. If i had 3 exogenous variables and i used varsoc to know the maximum lag, and the result showed different lag in every variable. For example, X1=4, X2=1, X3=2, and dependent variable=2. How can i write in do file to p() and q()? Is it p(2) q(4)?

2. Is there any effect from the different lag of varsoc in every variables to constrains?

Thank you so much for your help

use the maximum P and maximum Q then the estimation will find the optimal from the selected range. Yes, different lag order can have a different effect if the model is sensitive to lag order.

if you want to see the asymmetric effect of all variables you do not need to use constrain

But how many lag in maximum P and maximum Q? And i want to know, is it true the function of constrain is to selected lag order in first difference variables, so the variables can have bigger p-value than before? Thank you sir.

the maximum lag depends on the length of the data, and nature of the variables

hi please i want check test the causality hatmi2011 in model NARDL

how i can do ???

thank’s

I dont know anything about the hatmi2011 causality, share me the paper to study then I will see

hi thank you very much for answer me, i have another question

when we take model NARDL is it mean’s our model (non linear), f(x) = x1*x2 not f(x)=x1+x2+ut

thank’s

Actually, the correct name of this model is asymmetric information ARDL model, not non-linear model.

Before we estimate nardl, Should we check serial correlation, heteroscedasticity, and ramsey test? And how to solve if our model has serial correlation or the ramsey test significant in 5%? Thank you

this model provides the tests of hetroskedastictiy, serial correlation, and RESET in its results

But how if p-value of heteroscedasticity, serial correlation, or ramsey test was significant? It means the model had hetero, serial correlation, or t stable? Thank you

But how if p-value of heteroscedasticity, serial correlation, or ramsey test was significant? It means the model had hetero, serial correlation, or not stable? Thank you

yes if they are significant it means there is a problem for that you need to study the null and alternative hypothesis used by the maker of this manual.

Dear Sir Noman!

First of all ,Thank you so much for the presentation of NARDL, now ,I would like to ask you two question;

1. I can’t find the nardl.do file ,I want to know where i can get it . 2. NARDL have similar program with ARDL ,I want to know if I can use the ardl.do to estimate nardl ,or if i can use OLS to estimate NARDL immediately. look forward to your reply ,Thank you !

You can use the ARDL.do to manually calculate NARDL.do. you can download the plugin here

Dear Sir Noman

Can you please let me know how to do AsymmetricVECM analysis using STATA or Eviews or R? I want to find out the asymmetric and symmetric price transmission equation between Wholesale and Retail prices.

Thankfully

Chhiddikur

See the paper shared in this blog, it has shown how to manually split the independent variable, use that variable in the standard VECM model to make it asymmetric VECM.

Thank you sir. I am new in asymmetric analysis. Hope your guidance will be helpful for me.

Follow the paper provided in the blog.

Dear sir

My result is here (Results.Nardl). I just followed the NARDL process that you mentioned in the blog. Can you please explain how can I get Asymmetric VECM model? I know how to het VECM model. But, wondering about asymmetric VECM.

Thanks

the Module for Asymmetric VECM is not invented yet. You have to invent it if you have to do it.

Sir, can you please explain how can I do it?

Apologising for inconvenience.

learn the variable splitting method from the paper I shared, use it in the standard vecm model it will become asymmetric vecm

My result is here:

nardl Retail Wholesale, p(2) q(2)

Regression results (variables renamed):

Source SS df MS Number of obs = 139

F(8, 130) = 61.81

Model 180.883053 8 22.6103816 Prob > F = 0.0000

Residual 47.5582926 130 .36583302 R-squared = 0.7918

Adj R-squared = 0.7790

Total 228.441345 138 1.65537207 Root MSE = .60484

_dy Coef. Std. Err. t P>t [95% Conf. Interval]

_y

L1. -.936925 .1095292 -8.55 0.000 -1.153615 -.7202346

_x1p

L1. .9517945 .112747 8.44 0.000 .728738 1.174851

_x1n

L1. .9344454 .1112373 8.40 0.000 .7143758 1.154515

_dy

L1. .2708677 .093002 2.91 0.004 .0868743 .4548611

_dx1p

. .7728061 .0627995 12.31 0.000 .6485648 .8970474

L1. -.264227 .1064052 -2.48 0.014 -.4747369 -.053717

_dx1n

. .903062 .0844055 10.70 0.000 .7360759 1.070048

L1. -.0922745 .0962119 -0.96 0.339 -.2826182 .0980693

_cons 15.92283 1.855981 8.58 0.000 12.25099 19.59466

Asymmetry statistics:

Long-run effect [+] Long-run effect [-]

Exog. var. coef. F-stat P>F coef. F-stat P>F

Wholesale 1.016 5252 0.000 -0.997 3578 0.000

Long-run asymmetry Short-run asymmetry

F-stat P>F F-stat P>F

Wholesale 23.46 0.000 4.232 0.042

Note: Long-run effect [-] refers to a permanent change in exog. var. by -1

Cointegration test statistics: t_BDM = -8.5541

F_PSS = 24.4760

Model diagnostics stat. p-value

Portmanteau test up to lag 40 (chi2) 45.76 0.2453

Breusch/Pagan heteroskedasticity test (chi2) 3.346 0.0674

Ramsey RESET test (F) .7251 0.5388

Jarque-Bera test on normality (chi2) 102.2 0.0000

. nardl Retail Wholesale, p(2) q(4) plot horizon(40) bootstrap(100) level(95)

Regression results (variables renamed):

Source SS df MS Number of obs = 137

F(12, 124) = 40.28

Model 181.714824 12 15.142902 Prob > F = 0.0000

Residual 46.6214134 124 .37597914 R-squared = 0.7958

Adj R-squared = 0.7761

Total 228.336238 136 1.67894293 Root MSE = .61317

_dy Coef. Std. Err. t P>t [95% Conf. Interval]

_y

L1. -.9629842 .1178921 -8.17 0.000 -1.196326 -.7296427

_x1p

L1. .983102 .1230181 7.99 0.000 .7396148 1.226589

_x1n

L1. .9661562 .1217101 7.94 0.000 .7252579 1.207055

_dy

L1. .298807 .0990486 3.02 0.003 .1027621 .4948519

_dx1p

. .7792885 .0641396 12.15 0.000 .6523383 .9062387

L1. -.3036894 .1114811 -2.72 0.007 -.5243416 -.0830371

L2. .0316443 .073314 0.43 0.667 -.1134647 .1767532

L3. -.1046995 .0722644 -1.45 0.150 -.247731 .0383319

_dx1n

. .8987479 .0889749 10.10 0.000 .7226418 1.074854

L1. -.0859892 .1065775 -0.81 0.421 -.296936 .1249576

L2. -.0371117 .0821529 -0.45 0.652 -.1997153 .125492

L3. .0624673 .0756007 0.83 0.410 -.0871677 .2121024

_cons 16.40729 2.00825 8.17 0.000 12.4324 20.38218

(4 missing values generated)

Asymmetry statistics:

Long-run effect [+] Long-run effect [-]

Exog. var. coef. F-stat P>F coef. F-stat P>F

Wholesale 1.021 4433 0.000 -1.003 3065 0.000

Long-run asymmetry Short-run asymmetry

F-stat P>F F-stat P>F

Wholesale 19.95 0.000 4.276 0.041

Note: Long-run effect [-] refers to a permanent change in exog. var. by -1

Cointegration test statistics: t_BDM = -8.1684

F_PSS = 22.6040

Model diagnostics stat. p-value

Portmanteau test up to lag 40 (chi2) 45.38 0.2579

Breusch/Pagan heteroskedasticity test (chi2) 2.401 0.1213

Ramsey RESET test (F) .2812 0.8389

Jarque-Bera test on normality (chi2) 98.62 0.0000

Bootstrapping (one dot per 10 replications): ……….

Respected Sir

I don’t understand what is the meaning of “paste Stata/ado/base/n ” after ardl now m try to run nardl but its not working. Kindly help me…. Shall be very thankful to you

it means open the stata folder in program files, then open ado folder and then base folder and then n folder then paste the file

my all variables are I(1), can i use NARDL ?

yes

Dear Prof/Dr. Arshed

I just come across your blog and your responses to the constructive questions.

I specified a NARDL model with two independent variables and p(4) and q(5), but, for example, if q3 is insignificant in each independent variable, I need to trim my regression to have a parsimonious model, where all lags must be significant, please,.how can I remove those insignificant lags only?

It is better not to make holes in the lag order but if you want to then you have to construct this same model manually as the module provided in Stata might not provide this facility

Dear Sir,

I’ve regressed my model using NARDL in Stata. However, in the model estimation step or after trimming the model, I get a result that says “maximum number of iterations exceeded” in the asymmetry part. What does that mean? and how can I fix it?

Thank You.

the model is too complex. either increase sample or reduce the variables which you are proposing as non linear

Thank you for the reply. I have another question here, based on the above results that you’ve provided, how to interpret the ECMt-1 and where to find it? Thank you..

thank you very much !!!