Announcement

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

  • Problem with two step difference/system GMM estimator using "xtabond2"

    Dear all,

    It is my first post on Statalist, I hope I am doing everything fine, I read all the FAQs but I am still uncertain.

    I am trying to assess the cost of default on the GDP growth of a defaulter country. I have panel data, more in detail 201 countries and 41 years (1970-2011).
    I choose, following "Furceri, D., & Zdzienicka, A. (2012). How costly are debt crises?. Journal of International Money and Finance, 31(4), 726-742." to adopt the GMM estimator, in particular, the code xtabond2. I read on "Roodman, D. (2009). How to do xtabond2: An introduction to difference and system GMM in Stata. The stata journal, 9(1), 86-136." that this estimator should be applied only in a situation in which T is small, and probably this is my first issue in my analysis. But I cannot understand when T is small, according to you, 41 years is too large?

    Consequently my model is a dynamic model in which the dependent variable is GDP growth rate and the independent variables, in the baseline regression, are: the first lag of GDP growth rate, the second lag of GDP growth rate, population growth, credit growth, first lag of the log of real GDP level, real exchange rate, measure of openness and a dummy of sovereign default. The latter is my variable of interest, take the value of 1 for every year that the country is in default.

    Code:
    xtabond2 rgdp_growth l.rgdp_growth l2.rgdp_growth popgrowth loans_gdp_growth l.ln_rgdp_level r_exrate_growth openness in_dummy_s_and_p, gmm (l.rgdp_growth l.in_dummy_s_and_p, laglimits (1 40) collapse) iv(polity_index inflation coup,equation(level))  nodiffsargan twostep robust orthogonal small
    Code:
    xtabond2 rgdp_growth l.rgdp_growth l2.rgdp_growth popgrowth loans_gdp_growth l.ln_rgdp_level r_exrate_growth openness in_dummy_s_and_p, gmm (l.rgdp_growth l.in_dummy_s_and_p, laglimit
    > s (1 40) collapse) iv(polity_index inflation coup,equation(level))  nodiffsargan twostep robust orthogonal small
    Favoring space over speed. To switch, type or click on mata: mata set matafavor speed, perm.
    Warning: Two-step estimated covariance matrix of moments is singular.
      Using a generalized inverse to calculate optimal weighting matrix for two-step estimation.
    
    Dynamic panel-data estimation, two-step system GMM
    ------------------------------------------------------------------------------
    Group variable: i                               Number of obs      =      4747
    Time variable : year                            Number of groups   =       144
    Number of instruments = 86                      Obs per group: min =         0
    F(8, 143)     =     12.41                                      avg =     32.97
    Prob > F      =     0.000                                      max =        41
    ----------------------------------------------------------------------------------
                     |              Corrected
         rgdp_growth |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
    -----------------+----------------------------------------------------------------
         rgdp_growth |
                 L1. |   .1734639   .0400013     4.34   0.000     .0943937    .2525341
                 L2. |   .0163024   .0299815     0.54   0.587    -.0429618    .0755666
                     |
           popgrowth |   .4590989    5.71886     0.08   0.936    -10.84533    11.76352
    loans_gdp_growth |   .4131774   .2608927     1.58   0.115    -.1025271    .9288819
                     |
       ln_rgdp_level |
                 L1. |  -.7471318   1.795971    -0.42   0.678    -4.297215    2.802951
                     |
     r_exrate_growth |  -3.879862   2.763294    -1.40   0.162    -9.342044    1.582321
            openness |   .0332902   .0520659     0.64   0.524    -.0696281    .1362084
    in_dummy_s_and_p |  -1.342024   .7757352    -1.73   0.086    -2.875414    .1913657
               _cons |   3.394403   10.78057     0.31   0.753    -17.91546    24.70427
    ----------------------------------------------------------------------------------
    Instruments for orthogonal deviations equation
      GMM-type (missing=0, separate instruments for each period unless collapsed)
        L(1/40).(L.rgdp_growth L.in_dummy_s_and_p) collapsed
    Instruments for levels equation
      Standard
        polity_index inflation coup
        _cons
      GMM-type (missing=0, separate instruments for each period unless collapsed)
        D.(L.rgdp_growth L.in_dummy_s_and_p) collapsed
    ------------------------------------------------------------------------------
    Arellano-Bond test for AR(1) in first differences: z =  -5.20  Pr > z =  0.000
    Arellano-Bond test for AR(2) in first differences: z =  -1.72  Pr > z =  0.085
    ------------------------------------------------------------------------------
    Sargan test of overid. restrictions: chi2(77)   =  83.74  Prob > chi2 =  0.280
      (Not robust, but not weakened by many instruments.)
    Hansen test of overid. restrictions: chi2(77)   =  85.84  Prob > chi2 =  0.230
      (Robust, but weakened by many instruments.)
    This is the code to estimate my model with xtabond2. Polity_index is a measure of polity score,

    (If someone could be interested in this analysis, I took the data from the paper of: Kuvshinov, D., & Zimmermann, K. (2019). Sovereigns going bust: estimating the cost of default. European Economic Review.
    The paper and the data are available at: https://doi.org/10.1016/j.euroecorev.2019.04.009
    Here it is an example of this dataset

    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str46 country double year float(rgdp_growth r_exrate_growth in_dummy_s_and_p popgrowth ln_rgdp_level)
    "Aruba" 1970         .   .04352283 0 .  8.138505
    "Aruba" 1971   8.40391   .04343969 0 .  8.219199
    "Aruba" 1972   8.34116   .05448103 0 .  8.299314
    "Aruba" 1973  8.384026   .08301789 0 .  8.379825
    "Aruba" 1974  8.572991   .09668136 0 .  8.462077
    "Aruba" 1975  8.854675   .07771558 0 .  8.546921
    "Aruba" 1976  9.205509   .09121424 0 .  8.634982
    "Aruba" 1977  9.491458   .10704023 0 .  8.725658
    "Aruba" 1978  9.556724    .1337465 0 .  8.816931
    "Aruba" 1979  9.321277    .1599741 0 .  8.906052
    "Aruba" 1980  8.872477   .18441904 0 .  8.991058
    "Aruba" 1981  8.240195   .15544665 0 .  9.070241
    "Aruba" 1982  7.706792   .13252604 0 .  9.144484
    "Aruba" 1983  7.578631   .13882983 0 .  9.217535
    "Aruba" 1984  8.003371   .13464308 0 .  9.294527
    "Aruba" 1985  8.747523   .12561679 0 . 9.3783865
    "Aruba" 1986  9.758915 -.014589548 0 .  9.471502
    "Aruba" 1987 17.608486  .007916689 0 .  9.633694
    "Aruba" 1988  20.12718 -.003917694 0 .  9.817074
    "Aruba" 1989 12.208845  -.04144764 0 .  9.932265
    end
    format %ty year
    My question is, if according to you my T is too large, and it could be the reason for which I am obtaining a lot of non-significant coefficients for my independent variables.
    Thank you so much in advance.

    Giampaolo.
    Last edited by Giampaolo Mariani; 20 Jul 2019, 03:07.

  • #2
    A problem with larger T is that the number of instruments usually grows with T as well. You have 77 overidentifying restrictions which are more than you probably need, although your N is quite large as well such that the problem of too many instruments should be less severe. Nevertheless, using lags up to order 40 is quite a lot. Ask yourself: How likely is it that an instrument measured 40 periods in the past is still strongly correlated with today's endogenous regressors? Your estimates are likely to suffer from a weak-instruments problem.

    As you are using the orthogonal option of xtabond2, you should be aware that there is a bug in xtabond2 that potentially leads to incorrect results when using this option, although your current specification appears to be fine (aside from the earlier argument). More on dynamic panel data estimation and the problems regarding the implementation of forward-orthogonal deviations:
    XTDPDGMM: new Stata command for GMM estimation of linear dynamic panel models
    https://twitter.com/Kripfganz

    Comment


    • #3
      Dear Sebastian,

      Thank you so much for your reply, and for your suggestion, which really made me understand the mistake that I was doing. I re-run the same code using the same variables (adding two dummies for currency and banking crisis), this time with only ten lags (I think that 10 years is more "reasonable") and without the "orthogonal" option. Right now, I think I have more "consistent" results. I have 30 overidentifying restrictions, and the p-value of the Hansen test is 0.097, do you think it is a good value? since as Roodman (2009) pointed out "do not take comfort in a Hansen test p-value below 0.1.
      View higher values, such as 0.25, as potential signs of trouble".

      This is my code and my results.

      Code:
      xtabond2 rgdp_growth l.rgdp_growth l2.rgdp_growth popgrowth loans_gdp_growth l.ln_rgdp_level r_exrate_growth openness currency_crisis financial_crisis in_dummy_s_and_p, gmm (l.rgdp_growth l.in_dummy_s_and_p currency_crisis, laglimits (1 10) collapse) iv(popgrowth loans_gdp_growth r_exrate_growth openness polity_index inflation coup,equation(level))  nodiffsargan twostep robust small
      Code:
       xtabond2 rgdp_growth l.rgdp_growth l2.rgdp_growth popgrowth loans_gdp_growth l.ln_rgdp_level r_exrate_growth openness currency_crisis financial_crisis in_dummy_s_and_p, gmm > (l.rgdp_growth l.in_dummy_s_and_p currency_crisis, laglimits (1 10) collapse) iv(popgrowth loans_gdp_growth r_exrate_growth openness polity_index in
      > flation coup,equation(level))  nodiffsargan twostep robust small
      Favoring space over speed. To switch, type or click on mata: mata set matafavor speed, perm.
      
      Dynamic panel-data estimation, two-step system GMM
      ------------------------------------------------------------------------------
      Group variable: i                               Number of obs      =      4571
      Time variable : year                            Number of groups   =       137
      Number of instruments = 41                      Obs per group: min =         0
      F(10, 136)    =     21.05                                      avg =     33.36
      Prob > F      =     0.000                                      max =        41
      ----------------------------------------------------------------------------------
                       |              Corrected
           rgdp_growth |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
      -----------------+----------------------------------------------------------------
           rgdp_growth |
                   L1. |   .2118664   .0534537     3.96   0.000     .1061584    .3175743
                   L2. |  -.0339249   .0360322    -0.94   0.348    -.1051807    .0373308
                       |
             popgrowth |   .1463337    .137111     1.07   0.288    -.1248115     .417479
      loans_gdp_growth |     .15136   .0357018     4.24   0.000     .0807575    .2219625
                       |
         ln_rgdp_level |
                   L1. |  -.2344288   .1895412    -1.24   0.218    -.6092581    .1404004
                       |
       r_exrate_growth |   .0677005    .877594     0.08   0.939    -1.667795    1.803196
              openness |   .0085707   .0031158     2.75   0.007     .0024091    .0147323
       currency_crisis |  -1.884592   .7488113    -2.52   0.013    -3.365412   -.4037718
      financial_crisis |   -17.2025   8.553099    -2.01   0.046    -34.11677   -.2882225
      in_dummy_s_and_p |  -2.642081   .6807751    -3.88   0.000    -3.988355   -1.295807
                 _cons |   3.855126   1.606248     2.40   0.018     .6786725     7.03158
      ----------------------------------------------------------------------------------
      Instruments for first differences equation
        GMM-type (missing=0, separate instruments for each period unless collapsed)
          L(1/10).(L.rgdp_growth L.in_dummy_s_and_p currency_crisis) collapsed
      Instruments for levels equation
        Standard
          popgrowth loans_gdp_growth r_exrate_growth openness polity_index inflation
          coup
          _cons
        GMM-type (missing=0, separate instruments for each period unless collapsed)
          D.(L.rgdp_growth L.in_dummy_s_and_p currency_crisis) collapsed
      ------------------------------------------------------------------------------
      Arellano-Bond test for AR(1) in first differences: z =  -4.66  Pr > z =  0.000
      Arellano-Bond test for AR(2) in first differences: z =   0.45  Pr > z =  0.656
      ------------------------------------------------------------------------------
      Sargan test of overid. restrictions: chi2(30)   =  77.70  Prob > chi2 =  0.000
        (Not robust, but not weakened by many instruments.)
      Hansen test of overid. restrictions: chi2(30)   =  40.44  Prob > chi2 =  0.097
        (Robust, but weakened by many instruments.)
      I think I have not completely understood which values the Hansen test "should" have. I am really sorry if this is an easy question.

      Thank you again for your time.

      Giampaolo

      Comment


      • #4
        I disagree with the upper bound of 0.25, but 0.097 does not seem to be too comforting. Ideally, the Hansen p-value should be much larger than 0.1. It is a sign of trouble if it shows as 1.000 or close to that. (Losely speaking, that would be too good to be true. In particular if you have many overidentifying restrictions, this could be a sign of a poorly estimated weighting matrix.)

        When the Hansen p-value is "too small", this could also be a consequence of omitted variables or misspecified model dynamics that cause endogeneity of your instruments. See the following working paper for a discussion:
        Kiviet, J. (2019). Microeconometric dynamic panel data methods: Model specification and selection issues. MPRA Paper No. 93147
        https://twitter.com/Kripfganz

        Comment

        Working...
        X