Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #61
    The ARDL approach is applicable irrespectively of whether your variables are I(0) or I(1). Cointegration can only exist among I(1) variables. You can still have a long-run relationship among I(0) variables, but you would not call it cointegration.

    A sufficiently large maximum number of lags is something you need to choose with the maxlags() option. If you have a lot of observations, you can choose a larger maximum lag. If you have lots of variables in the model, you need to choose a smaller maximum lag order. The ardl command then obtains the optimal number of lags automatically for all variables with the Akaike or Schwarz/Bayesian information criterion. The estat ectest postestimation command uses the results from the ardl command with the optimal lag orders. There is no need to check the lags with the matrix list e(lags) command. Some people just might find it useful to obtain a list of all lag combinations with the corresponding information criteria; but the ardl command is doing the lag order selection automatically.
    https://www.kripfganz.de/stata/

    Comment


    • #62
      Thanks a lot, Sébastien for your answer,
      I want to know if I can be based only on results of KPSS and ERS unit root tests which the dependent variable stationary at first different wears my independent variables are mixed I(1) and I(0) I am asking only for the dependent variable?
      I didn't understand this point (A sufficiently large maximum number of lags with the maxlags() option. If you have a lot of observations, you can choose a larger maximum lag. If you have lots of variables in the model, you need to choose a smaller maximum lag order) For example, in the screenshot of your presentation, I would like to understand how and why you are choosing 6 maxlags? Then in the rest of your presentation, you are using these steps matrix e (lags) to select optimal lags of all variables and in your comment you mentionned that we don't need to check the lags ?!
      Click image for larger version

Name:	Capture d’écran 2022-02-21 153640.png
Views:	1
Size:	87.9 KB
ID:	1651172

      Comment


      • #63
        In principle, you do not need to do any pre-testing for unit roots when you want to use the ARDL approach.

        I do not think I have chosen a maximum lag order of 6 anywhere in my presentation. In the example you have shown here, the maximum lag order is 4 (the default) for ln_consump and ln_inv and 2 for ln_inc. This example is just an illustration without a deeper reasoning behind the choice of the maximum lag order. It depends on your specific application, what you think might be the longest delay of an effect. If you have quarterly data, you might want to allow for a maximum of 4 lags (1 year) or 8 lags (2 years). If you have monthly data, you could possibly allow for a maximum lag order of 12 (again 1 year). As I said, this very much depends on your data frequency and the nature of your variables, and this cannot be easily generalized.

        As I said earlier, the stored result in matrix e(lags) is normally not much of interest. This just contains the optimal lag orders, in the current example (4, 1, 0). The lags are automatically chosen optimally by the command.
        https://www.kripfganz.de/stata/

        Comment


        • #64
          Thank you very much for your answers.
          then I have monthly data.
          The number of variables is 6 (1 dependent and 5 Independent variables).
          so this is the command that is used before are correct or not?

          ardl lnY lnX1 lnX2 lnX3 lnX4 lnX5, maxlags(2) aic
          matrix list e(lags)
          ardl lnY lnX1 lnX2 lnX3 lnX4 lnX5,lags(2 0 0 2 1 2) ec btest
          estat ectest
          ardl lnY lnX1 lnX2 lnX3 lnX4 lnX5,lags(2 0 0 2 1 2) ec


          Comment


          • #65
            You just need to do the following:
            Code:
            ardl lnY lnX1 lnX2 lnX3 lnX4 lnX5, maxlags(2) aic ec
            estat ectest
            https://www.kripfganz.de/stata/

            Comment


            • #66
              Many thanks for your answer but here in my case, I would like to ask you for the maximum lags it's correct?
              Last edited by misso ouhibi; 22 Feb 2022, 03:10.

              Comment


              • #67
                I cannot tell you whether your choice for the maximum lag is "correct". This is a researcher decision. However, given that you have monthly data, 2 lags seems a bit low to me. Unless you have only relatively few observations, I would suggest a maximum lag order of perhaps 3, 6, or 12, corresponding to 1 quarter, half a year, and one year, respectively. But eventually, this depends on your research topic and what you believe about the possible dynamics among your variables.
                https://www.kripfganz.de/stata/

                Comment


                • #68
                  OK, I am so thankful for your help.
                  Then to choose the right optimum lags for the model :

                  I can use firstly this command to choose the maximum lags: Varsoc lnY lnX1 lnX2 lnX3 lnX4 lnX5
                  ardl lnY lnX1 lnX2 lnX3 lnX4 lnX5, maxlags() aic ec
                  estat ectest

                  Comment


                  • #69
                    Hello Professor Kripfganz,

                    I have a question. Are you familiar with the psbounds command and procedure outlined in Philips (2018, p. 233) for ARDL bounds testing? I'm trying to replicate my results using both your ardl command and the psbounds command, but I'm having trouble getting the bounds test results to be identical. Shouldn’t the F-statistic be identical using both commands if the models are specified the same?

                    A detailed example with Stata code of the Philips (2018) procedure is presented in Jordan & Philips (2018). The steps are:

                    1. Ensure that the dependent variable is I(1).
                    2. Ensure that the regressors are not of an order of integration higher than I(1).
                    3. Estimate an ARDL model in error-correction form. He specifies this model using the following code:
                    Code:
                     regress d.ln_inv l.ln_inv d.ln_inc l.ln_inc d.ln_consump l.ln_consump
                    4. Run an F-test that the coefficients on the variables appearing in lagged levels are jointly equal to zero. His code:
                    Code:
                     test l.ln_inv l.ln_inc l.ln_consump
                    5. Finally, take the resulting F-statistic and run the psbounds command. Again, his code:
                    Code:
                     pssbounds, fstat(2.60) obs(91) case(3) k(2)
                    I follow this psbounds procedure and get the following F-statistic (screenshot 1). My Stata code is in the picture.

                    But I follow the ardl procedure and get a different F-statistic (screenshot 2). My Stata code is in the picture.

                    Notice the ardl command reduces the observations to 47 compared to the psbounds command which uses 50, so my guess is the model lags are not specified to be the same. But I'm not sure why the observations are different because I follow the ardl and psbounds procedures as instructed, so I’m confused why I’m getting such different F-statistic results.

                    Any advice? Thank you very much for any help you can provide!




                    Attached Files

                    Comment


                    • #70
                      You are getting a different results from the ardl command because the lag orders differ (and consequently the coefficient estimates). With the regress command, you have estimated an ARDL(1,1,1,1,1,1) model. With the ardl command, you obtained an ARDL(2,1,0,1,1,0) model. One of the advantages of the ardl command is that it chooses the lag order optimally according to the Akaike or Schwarz/Bayesian information criterion. This feature does not exist with the the pssbounds command.

                      You can enforce a specific lag order with the ardl command. The following example shows that you will obtain the same F-statistic when the lag orders (and the number of observations) are equal:
                      Code:
                      . webuse lutkepohl2
                      (Quarterly SA West German macro data, Bil DM, from Lutkepohl 1993 Table E.1)
                      
                      . quietly regress d.ln_inv l.ln_inv d.ln_inc l.ln_inc d.ln_consump l.ln_consump
                      
                      . test l.ln_inv l.ln_inc l.ln_consump
                      
                       ( 1)  L.ln_inv = 0
                       ( 2)  L.ln_inc = 0
                       ( 3)  L.ln_consump = 0
                      
                             F(  3,    85) =    2.60
                                  Prob > F =    0.0573
                      
                      . quietly ardl ln_inv ln_inc ln_consump, lag(1) ec1
                      
                      . estat ectest
                      
                      Pesaran, Shin, and Smith (2001) bounds test
                      
                      H0: no level relationship                                        F =     2.602
                      Case 3                                                           t =    -2.372
                      ...
                      https://www.kripfganz.de/stata/

                      Comment


                      • #71
                        I would like to ask about choosing the right optimum lags for the model :

                        I can use firstly this command to choose the maximum lags: Varsoc lnY lnX1 lnX2 lnX3 lnX4 lnX5
                        ardl lnY lnX1 lnX2 lnX3 lnX4 lnX5, maxlags() aic ec
                        estat ectest

                        Comment


                        • #72
                          As mentioned earlier, the ardl command chooses the optimal lag order automatically. The maximum lag order is a researcher decision. There is no econometric procedure to determine the maximum lag order. The varsoc command is not of help here.
                          https://www.kripfganz.de/stata/

                          Comment


                          • #73
                            Thank you, that makes sense why I was getting different results. I have a few more follow-up questions I was hoping you can answer.

                            1. My bounds test (F = 3.497; screenshot 2) is inconclusive, as the F-statistic falls in-between the I(0) and I(1) critical values. Would the next step be to conduct the bounds test on each IV one at a time and see if that IV by itself is cointegrated with my DV (while ensuring the the number of observations are equal)?

                            2. If I fail to reject these subsequent bounds tests (with no inconclusive results), would this be evidence that there is no cointegration between my variables?

                            3. Assuming there is no cointegration, would the ARDL(2,1,0,1,1,0) results be okay to use given my results (i.e the speed of adjustment parameter is positive; ADJ = .092241)? If the model is explosive/not okay to use, do you have any suggestions for improving my ARDL model, or other modeling techniques I might consider?

                            Again, many thanks for your generous help!

                            Comment


                            • #74
                              1. It is a bit surprising that the bounds test for the F-statistic is inconclusive in your case. The wrong sign of the speed-of-adjustment coefficient (and consequently the bounds test for the t-statistic) clearly indicates that there cannot exist a long-run relationship. You could attempt to simplify the model by excluding some of the irrelevant long-run forcing variables. However, I would not expect much from this.

                              2. No long-run relationship in an EC model implies no cointegration.

                              3. The results suggest that you could simply estimate an ARDL model in first differences only, without EC/level terms.
                              https://www.kripfganz.de/stata/

                              Comment


                              • #75
                                Thank you for the helpful response. I have one last question.

                                A sbcusum test revealed the ARDL(2,1,0,1,1,0) model (without ec) is unstable, and a Jarque-Bera test shows non-normally distributed residuals.

                                However, an ARDL(1,1,0,1,1,0) model (without ec) is stable, and further testing reveals no autocorrelation, no heteroskedasticity, and normally distributed residuals.

                                Thus, would it make sense to use the ARDL(1,1,0,1,1,0) model in first differences (without ec)?

                                Edit: For reference, I've attached a screenshot of the ARDL(1,1,0,1,1,0), ec bounds test, which now clearly shows no cointegration, and the ADJ parameter/t-statistic is now negative.

                                Attached Files
                                Last edited by Ben Kuettel; 22 Feb 2022, 16:36.

                                Comment

                                Working...
                                X