Announcement

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

  • Monir Ahmed
    replied
    Thank you Professor for your prompt answer.

    Leave a comment:


  • Sebastian Kripfganz
    replied
    Yes, you would always specify the trend variable with the trend() option. If you want to include the trend in your long-run (cointegrating) relationship, you would additionally specify the option restricted. If you do not want to include the trend in the long-run relationship, simply do not specify the option restricted.

    Leave a comment:


  • Monir Ahmed
    replied
    Dear Professor,
    Thank you for your reply through email. You are so much helpful in the STATA blog and I have learned a lot about ARDL estimation. I used ARDL estimation using Microfit. Your's package seems better than the Microfit because of controlling the lag and exogenous variables.

    I have a simple question.

    1. I have a specification in which year is a regressor ( following the literature, I found that year could be a good proxy for technological change and its related concepts). Now if I add the year in the main function of ARDL, I cannot estimate the ARDL This is logical. But if I add trend(year) then it gives the result ( no year effect of SR after ec1 or ec command, although it is logical. I did it after both (2,1) and (2,0) lag order). My question is: To check the year effect, is it correct to add trend(year) if I assume that my cointegration has no trend part?

    Thanks in advance.

    Leave a comment:


  • Sebastian Kripfganz
    replied
    In Stata 15 or newer, you can use the official postestimation command estat sbcusum. You can find an example in my 2018 London Stata Conference presentation from slide 27 onwards:
    In Stata 14 or earlier, you need to use the community-contributed cusum6 command instead.

    Leave a comment:


  • Alvaro Gornes Jimenez
    replied
    Hi @Babacar Mbengue, have you found out how to apply the Cusum after the ARDL estimation? I'm in need of such a thing now.

    Thanks,

    Leave a comment:


  • Sebastian Kripfganz
    replied
    You might be able to apply the bootstrap procedure proposed in the following paper:
    https://doi.org/10.1080/00036846.2017.1366643

    I am unfortunately unable to provide help with the implementation of this procedure.

    Leave a comment:


  • Euan Lowe
    replied
    Dear @Sebastian Kripfganz, thank you for your work on the ARDL package and the support you provide in this forum. I drafted a paper based on ARDL, and the results were almost perfect. Then I added fresh data, and unfortunately the new data found heteroskedasticity. Clearly this is a problem specifically with the bounds test. I have ran your `e(cmdline)' vce(robust) workaround, and see that I can have the ARDL results with robust standard errors, but these do not allow me to run the bounds test on them. Do you have any thoughts about how I should go about addressing this? Are there any other work arounds I should try?

    Leave a comment:


  • Sebastian Kripfganz
    replied
    That is correct.

    Leave a comment:


  • Zues
    replied
    Ok I got it now so you estimate:

    D.Y_t-1 = aY_t-1 + bX_t

    then adding and subtracting bX_t-1 you get:

    D.Y_t-1 = a(Y_t-1 + b/aX_t-1)+ b(X_t -Xt-1)

    Thank you

    Leave a comment:


  • Sebastian Kripfganz
    replied
    That's actually not a bug but an intended feature. Forcing the command to include lags for all independent variables may not always be desirable. There is the somewhat hidden option minlag1 that ensures that at least one lag is always included, if that is desired.

    Leave a comment:


  • Zues
    replied
    Originally posted by Sebastian Kripfganz View Post
    ardl with option ec1 reports the coefficients as in equation (2). Yet, it does not directly estimate the model in this form. Instead, the model is estimated in ARDL form
    Y_t = a1 + a2*Y_t-1 + a3*X_t + a4*X_t-1 + u_t
    and then the coefficients for the EC representation are inferred from those ARDL coefficients. Standard errors are obtained using the Delta method. This is internally done with the nlcom command.

    For linear models, OLS is equivalent to maximum likelihood estimation. This is why commands such as regress and ardl also report log-likelihood statistics. These statistics are easy to compute without actually running a maximum likelihood estimation.

    You should not get different estimates when manually estimating equation (1). I can only suspect that the estimation sample may be different. The ardl command generally restricts the estimation to those observations for which the maximum lag (specified with option maxlag()) is non-missing, even if not all lags are used in the optimal model specification.


    Hello Sebastian thank you for this reply and really all the time you are taking. Anyways I think I found an error in your code. It has to do with the estimation of the underlying model. Your program may sometimes eliminate the lag of the independent variable if its not significant/BIC criteria. You can fix it by requiring at least 1 lag.



    Consider the example below. Once I do the first estimation I see the results of the underlying estimates do not even include a lag and the program it seems mistakenly computes the effects.
    The fix is to make sure at least one lag is included - this can be specified with lags.


    var1 var2 var3
    1 5 1
    2 7 2
    4 1 3
    8 5 4
    10 4 5
    17 7 6




    tsset var3
    ardl var1 var2, ec1 maxlag(1) regstore(one)
    estimates replay one
    reg d.var1 l.var1 l.var2 d.var2 (the true estimates)
    ardl var1 var2, ec1 maxlag(1) lags(. 1) regstore(one) (a fix)




    Leave a comment:


  • Sebastian Kripfganz
    replied
    ardl with option ec1 reports the coefficients as in equation (2). Yet, it does not directly estimate the model in this form. Instead, the model is estimated in ARDL form
    Y_t = a1 + a2*Y_t-1 + a3*X_t + a4*X_t-1 + u_t
    and then the coefficients for the EC representation are inferred from those ARDL coefficients. Standard errors are obtained using the Delta method. This is internally done with the nlcom command.

    For linear models, OLS is equivalent to maximum likelihood estimation. This is why commands such as regress and ardl also report log-likelihood statistics. These statistics are easy to compute without actually running a maximum likelihood estimation.

    You should not get different estimates when manually estimating equation (1). I can only suspect that the estimation sample may be different. The ardl command generally restricts the estimation to those observations for which the maximum lag (specified with option maxlag()) is non-missing, even if not all lags are used in the optimal model specification.

    Leave a comment:


  • Zues
    replied
    Hello Sebastian thank you for all these responses. I am having a rough time finding out how you actually estimate the ARDL with ec1.I did not see this in the Stata help file or the presentations.

    Suppose there are 2 models:

    (1) D.Y_t = a + b*Y_t-1 + c*X_t-1 + d*D.X_t (unrestricted)
    (2) D.Y_t = a + b*(Y_t-1 - e*X_t-1) + d*D.X_t (ec restricted)

    In theory e = -c/b

    It appears that your results reported are from (2).
    Did you estimate (2) using non-linear methods (perhaps NLLS or MLE)? Do you know if this is even possible?
    or did you estimate (1) and infer the coefficients for (2)? If so how did you estimate (1)? When I estimate (1) manually using OLS in Stata I get different answers from your estimates. I also see log-likelyhood statistic showing up in your estimation - are you using MLE? If so shouldn't the answers be the same since the model is linear - at least in theory? Also how did you obtain the standard errors for the coefficient e once it was solved for?

    Thank you,

    Zues

    Leave a comment:


  • Arturo Galindo
    replied
    Thanks a lot Sebastian Kripfganz . Extremely useful!

    Leave a comment:


  • Sebastian Kripfganz
    replied
    Two comments:

    1. My example in post #379 above, we have the special situation that the ec1 form is overparameterized because the underlying model is an ARDL(1,0,2) model with 0 lags for the ln_inc regressor. By forcing ln_inc to enter with its first lag in the long-run relationship, we have to artifically construct a corresponding short-run term that would not be present in the ec form. The coefficient of this short-run term is not freely estimated but determined by a nonlinear constraint. This overparameterization is not preserved when the results are stored with option regstore() because the covariance matrix of the coefficients would be singular. As you can see in the output, the regressor ln_consump (which has a positive number of lags) still appears with its first lag in the newey output when you use ardl with the ec1 option. You can avoid the problem for the ln_inc regressor by forcing it to have exactly 1 lag with the lags(. 1 .) option of the ardl command. Alternatively, there is the undocumented minlag1 option that enforces a minimum of 1 lag for each regressor.

    2. The parameterization of the long-run coefficients cannot be preserved for the newey command because it is a nonlinear transformation of the underlying ARDL coefficients. That remark holds both for the ec and the ec1 option. To obtain the Newey West standard errors for the long-run coefficients, you would need to use the nlcom command directly after the newey command, as on slide 42 of my 2018 London Stata Conference presentation:
    Code:
    nlcom (_b[ln_inc] / (1 - _b[L.ln_inv])) (_b[L.ln_consump] / (1 - _b[L.ln_inv]))

    Leave a comment:

Working...
X