Announcement

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

  • Two-step ECM in egranger and ARDL

    Dear Statalists,

    I hope this post finds you well.
    I am using the user-written package egranger for two-step ECM analysis.
    What I do not understand is that why D.X (i.e., first differenced dependent variable) is missing from the regression.


    Here is an example from the help file.
    I know it sounds daft, but I was expecting D.ln_se but it is not there.
    It is probably due to reparameterisations but I could not prove it myself by hand
    .
    Code:
    .
    . use     http://www.stata-press.com/data/r8/rdinc.dta , clear
    
    . egranger ln_ne ln_se, ecm lag(2)
    
    
    Engle-Granger 2-step ECM estimation                   N (1st step)  =       55
    Number of lags   =  2                                 N (2nd step)  =       52
    
    Engle-Granger 2-step ECM
    ------------------------------------------------------------------------------
         D.ln_ne |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
        _egresid |
             L1. |   -.465695   .0881672    -5.28   0.000    -.6431663   -.2882237
                 |
           ln_ne |
             LD. |   .5168296   .1846592     2.80   0.007       .14513    .8885292
            L2D. |   .3684522   .2002311     1.84   0.072    -.0345921    .7714965
                 |
           ln_se |
             LD. |  -.3773024   .2080446    -1.81   0.076    -.7960744    .0414696
            L2D. |  -.4641549   .2242527    -2.07   0.044    -.9155521   -.0127577
                 |
           _cons |   .0575856   .0102661     5.61   0.000      .036921    .0782501
    ------------------------------------------------------------------------------
    The above results can be replicated here.
    Code:
    . regress ln_ne ln_se
    
    . capture drop resid
    
    . predict double resid, res
    
    . regress D.ln_ne L.resid L(1/2)D.(ln_ne ln_se)
    The results from ardl are clear. How can I replicate the results in a form of regression?
    I specified lag(2), why there is no L2D.ln_se but only LD.ln_se?

    Code:
    . ardl ln_ne ln_se, ec  lag(2)
    
    ARDL(2,2) regression
    
    Sample:     1950 -     2002                     Number of obs     =         53
                                                    R-squared         =     0.8320
                                                    Adj R-squared     =     0.8141
    Log likelihood =  164.10637                     Root MSE          =     0.0116
    
    ------------------------------------------------------------------------------
         D.ln_ne |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
    ADJ          |
           ln_ne |
             L1. |   -.174766   .0564022    -3.10   0.003    -.2882326   -.0612993
    -------------+----------------------------------------------------------------
    LR           |
           ln_se |   .9565596    .010002    95.64   0.000     .9364383     .976681
    -------------+----------------------------------------------------------------
    SR           |
           ln_ne |
             LD. |   .4226139   .1306762     3.23   0.002     .1597274    .6855005
                 |
           ln_se |
             D1. |   .5808521   .1270762     4.57   0.000     .3252077    .8364964
             LD. |  -.5274931   .1398072    -3.77   0.000     -.808749   -.2462372
                 |
           _cons |   .1333098   .0499969     2.67   0.010      .032729    .2338907
    ------------------------------------------------------------------------------
    I am using Stata16.

    Many thanks!

    Regards,
    Min
    Last edited by Min Zhang; 06 Jan 2023, 11:00. Reason: #ardl #egranger #ecm

  • #2
    Regarding the Engle-Granger procedure, this is a very good question. I am afraid, I do not have an answer; I am as puzzled as you are.

    Regarding ARDL, the specified lags refer to the level regressors. 2 lags of X imply 1 lag of D.X; note that DL.X = L.X - L2.X, thus the 2nd lag of X is present but hidden in the first lag of D.X. You can obtain the underlying regression results for replication purposes with the regstore() option:
    Code:
    ardl ln_ne ln_se, ec  lag(2) regstore(ardl)
    estimates replay ardl
    https://www.kripfganz.de/stata/

    Comment


    • #3
      Originally posted by Sebastian Kripfganz View Post
      Regarding the Engle-Granger procedure, this is a very good question. I am afraid, I do not have an answer; I am as puzzled as you are.

      Regarding ARDL, the specified lags refer to the level regressors. 2 lags of X imply 1 lag of D.X; note that DL.X = L.X - L2.X, thus the 2nd lag of X is present but hidden in the first lag of D.X. You can obtain the underlying regression results for replication purposes with the regstore() option:
      Code:
      ardl ln_ne ln_se, ec lag(2) regstore(ardl)
      estimates replay ardl
      Many thanks for getting back to me. That is very clear.
      This is what I got from the regstore option.
      Code:
      reg D.ln_ne L1.ln_ne ln_se LD.ln_ne D.ln_se LD.ln_se
      I read your slides and the ardl help file. I can see why the coefficient of L1.ln_ne can be understood as the coefficient of the error correction term (i.e., the ADJ in the ardl, which is the speed-of-adjustment coefficient).

      If I want to get the short-run elasticity, should I use the option ec or ec1?
      Could you please kindly suggest that?

      Regarding the egranger output, I would still like to understand why. I probably need to check their paper (1987) again and hope it will make things clear.

      Many thanks again for the clear documentations. They are tremendously helpful.

      Regards,
      Min

      Engle, R.F. and Granger, C.W.J. 1987. "Co-integration and Error Correction: Representation, Estimation and Testing" Econometrica, Vol. 55, pp. 251–276.

      Comment


      • #4
        Originally posted by Min Zhang View Post
        If I want to get the short-run elasticity, should I use the option ec or ec1?
        It depends whether you want to get the short-run elasticity conditional on the deviations from the long-run equilibrium in the current period (ec) or in the previous period (ec1). The latter is often easier to interpret. Note that the response to a deviation from the equilibrium, as measured by the speed-of-adjustment coefficient, by itself is a short-run effect. Therefore, it is questionable to what extent it is meaningful to look at individual short-run coefficients separately.
        https://www.kripfganz.de/stata/

        Comment


        • #5
          Originally posted by Sebastian Kripfganz View Post
          Note that the response to a deviation from the equilibrium, as measured by the speed-of-adjustment coefficient, by itself is a short-run effect. Therefore, it is questionable to what extent it is meaningful to look at individual short-run coefficients separately.
          Thank you for pointing this out. I have seen publications just using D.x (i.e., first-differenced dependent variable) for short run or just reporting the whole SR panel from the ardl output without further interpretation.
          We should be most grateful if you would suggest a reasonable way of calculating and reporting the short-run elasticity.

          Many thanks for taking time to get back to me.

          Regards,
          Min

          Comment


          • #6
            I am afraid this very much depends on your research question. Each of the short-run coefficients can be interpreted as a short-run effect (elasticity, if variables are in logs) with different response lags.
            https://www.kripfganz.de/stata/

            Comment


            • #7
              Originally posted by Sebastian Kripfganz View Post
              I am afraid this very much depends on your research question. Each of the short-run coefficients can be interpreted as a short-run effect (elasticity, if variables are in logs) with different response lags.
              A colleague suggested that the short-run effect can be calculated by summing up the first-differenced coefficient and the lags in the SR panel. In this case, the short-run effect would be D1.ln_se + LD.ln_se in the example above.

              I was not convinced. Does his suggestion make any sense to you by any chance?

              Thank you, we greatly appreciate your help.

              Regards,
              Min

              Comment


              • #8
                Well, this can be seen as a specific kind of short-run effect: the cummulative direct effect of a change in that variable, ignoring the adjustment to deviations from the long-run equilibrium. But because the long-run error correction mechanism is an essential part of the model, it is not clear what we really learn by looking at this particular cummulative effect.
                https://www.kripfganz.de/stata/

                Comment


                • #9
                  Originally posted by Sebastian Kripfganz View Post
                  Well, this can be seen as a specific kind of short-run effect: the cummulative direct effect of a change in that variable, ignoring the adjustment to deviations from the long-run equilibrium. But because the long-run error correction mechanism is an essential part of the model, it is not clear what we really learn by looking at this particular cummulative effect.
                  Yes, this makes sense to me. Many thanks for your help!

                  Regards,
                  Min

                  Comment

                  Working...
                  X