Announcement

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

  • Code for Arellano-Bond GMM estimation

    Hi,
    I'm trying to replicate a paper. After the construction of the database, I have to run the first code. The method used is the Arellano-Bond GMM i.e using a linear dynamic panel data. All the variables in the model have one lag.
    Under the table I have to replicate, there is reported the following description "The estimates are determined using Arellano-Bond GMM treating the instrument and the control variables of credit growth, GDPgrowth, the crisis dummy and the policy rate as endogenous. Country fixed effects control for individual trends. Robust standard errors clustered by country are in brackets".

    The code I'm trying to use is the following:

    xtabond Creditgrowth l(0/1).MPI, endogenous(MPI) endogenous(GDPgrowth, lag(1,.)) endogenous(Crisis, lag(1,.)) endogenous(Policyrate, lag(1,.)) noconstant lags(1) vce(robust)

    but results are not the same.
    I would like to ask if my code is correct.

    Another maybe useful information: "we report White-Huber robust standard errors clustered by country"

    Please if you need further information, let me know.




    Thank you

  • #2
    See my post 450 in another Statalist thread for an example on how to implement the Arellano-Bond estimator.

    Unfortunately, some authors do not provide sufficient information to replicate their results. (I have not checked whether this is the case in your situation.)
    https://www.kripfganz.de/stata/

    Comment


    • #3
      Thank you for answering.
      I'm trying using this code:

      xtabond2 Creditgrowth L.Creditgrowth L.MPI L.GDPgrowth L.Crisis L.Policyrate, gmmstyle(L.Creditgrowth L.MPI L.GDPgrowth L.Crisis L.Policyrate ) noleveleq robust noconstant artests(2)

      in the output table I have the following warning
      Warning: Number of instruments may be large relative to number of observations.
      I remember you that all the independent variables are endogenous.

      It could be a problem?

      Thank you

      Comment


      • #4
        You can find some information about the "too-many-instruments problem" in my 2019 London Stata Conference presentation, which might also provide answers to other questions on this topic:
        https://www.kripfganz.de/stata/

        Comment


        • #5
          Maria Assunta Rocchi Sebastian Kripfganz Does xtabond2 or xtdpdgmm have to always include all right-hand-side variables into options like "gmmstyle" or "ivstyle"?

          Like, the following code does not include control1 and control2 into either gmmstyle or ivstyle. Is that conceptually fine? At least it runs on the computer but not sure if it is the right way to go.

          xtabond2 y l.y x control1 control2 year* , gmmstyle(y, laglimits(2 .)) gmmstyle(x, laglimits(1 .)) ivstyle(year* , p) noleveleq robust nodiffsargan

          And how should I decide if control1 and control2 should come inside gmmstyle or ivstyle? How to decide which one?

          Comment


          • #6
            You need to decide what assumptions you are placing on these control variables. Are they endogenous, predetermined, or strictly exogenous? Are they allowed to be correlated with the unobserved group-specific effects? Once you have made those choices, you can then select instruments appropriately, which could be the control variables themselves or their lags or other variables. In general, you should have some dedicated instrument for every variable in your model. Otherwise, there is a high risk that the included instruments will be weak instruments for those control variables, which leads to all sorts of problems. (Not everything that runs on a computer also makes sense.)

            Note that IV-style instruments are generally just a collapsed version of GMM-style instruments. There is no fundamental difference between them regarding the type of variable used.

            In your specific example, it is probably best to include the control variables in an ivstyle() option, assuming that they are strictly exogenous.

            For more details, please see my 2019 London Stata Conference presentation referenced further above in this thread.
            https://www.kripfganz.de/stata/

            Comment

            Working...
            X