Announcement

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

  • Sebastian Kripfganz
    replied
    No, I meant removing L.lrgdpopc from the model entirely (both as regressor and instruments).

    Leave a comment:


  • Taka Sakamoto
    replied
    You mean like this?

    Code:
    . xtdpdgmm gdpgrow sme inflation gfcfgrow hfcegrow tradeopen l.lrgdpopc ,gmm( inflation  gfcfgrow hfcegrow lrgd
    > popc , lag(2 3) collapse model(diff)) gmm( inflation  gfcfgrow hfcegrow lrgdpopc, lag(1 2) diff collapse mode
    > l(level)) iv(sme,model(level))  one vce(cl id) small overid
    
    Generalized method of moments estimation
    
    Fitting full model:
    Step 1         f(b) =  4.7191492
    
    Fitting reduced model 1:
    Step 1         f(b) =   .3986962
    
    Fitting reduced model 2:
    Step 1         f(b) =  .93970412
    
    Fitting reduced model 3:
    Step 1         f(b) =  4.5853153
    
    Fitting no-level model:
    Step 1         f(b) =  .93970412
    
    Group variable: id                           Number of obs         =       919
    Time variable: year                          Number of groups      =        21
    
    Moment conditions:     linear =      18      Obs per group:    min =         6
                        nonlinear =       0                        avg =   43.7619
                            total =      18                        max =        46
    
                                        (Std. err. adjusted for 21 clusters in id)
    ------------------------------------------------------------------------------
                 |               Robust
         gdpgrow | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
    -------------+----------------------------------------------------------------
             sme |   .6794376   .2367041     2.87   0.009     .1856815    1.173194
       inflation |  -.1636133    .045614    -3.59   0.002    -.2587624   -.0684641
        gfcfgrow |   .0980104   .0328853     2.98   0.007     .0294129     .166608
        hfcegrow |   .6692242   .1605369     4.17   0.000     .3343501    1.004098
       tradeopen |  -.0166245   .0134452    -1.24   0.231    -.0446707    .0114218
                 |
        lrgdpopc |
             L1. |  -1.220907   1.060466    -1.15   0.263       -3.433     .991187
                 |
           _cons |   14.09685   10.72928     1.31   0.204    -8.284046    36.47775
    ------------------------------------------------------------------------------
    Instruments corresponding to the linear moment conditions:
     1, model(diff):
       L2.inflation L3.inflation L2.gfcfgrow L3.gfcfgrow L2.hfcegrow L3.hfcegrow
       L2.lrgdpopc L3.lrgdpopc
     2, model(level):
       L1.D.inflation L2.D.inflation L1.D.gfcfgrow L2.D.gfcfgrow L1.D.hfcegrow
       L2.D.hfcegrow L1.D.lrgdpopc L2.D.lrgdpopc
     3, model(level):
       sme
     4, model(level):
       _cons

    Leave a comment:


  • Sebastian Kripfganz
    replied
    The standard errors of the lagged dependent variable are now indeed much smaller, but this way too large for any meaningful inference. You might just conclude that you cannot reliably estimate this coefficient, and estimate a static model without lagged dependent variable instead.

    Leave a comment:


  • Taka Sakamoto
    replied
    Thank you for your help. Does it look better with one more lags like these?

    Code:
    . xtdpdgmm gdpgrow sme inflation gfcfgrow hfcegrow tradeopen l.lrgdpopc ,gmm(gdpgrow inflation  gfcfgrow hfcegr
    > ow lrgdpopc , lag(2 3) collapse model(diff)) gmm(gdpgrow inflation  gfcfgrow hfcegrow lrgdpopc, lag(1 2) diff
    >  collapse model(level)) iv(sme,model(level))  one vce(cl id) small overid
    
    Generalized method of moments estimation
    
    Fitting full model:
    Step 1         f(b) =  6.5119593
    
    Fitting reduced model 1:
    Step 1         f(b) =  1.7495734
    
    Fitting reduced model 2:
    Step 1         f(b) =  2.0088941
    
    Fitting reduced model 3:
    Step 1         f(b) =  6.4917358
    
    Fitting no-level model:
    Step 1         f(b) =  2.0088941
    
    Group variable: id                           Number of obs         =       919
    Time variable: year                          Number of groups      =        21
    
    Moment conditions:     linear =      22      Obs per group:    min =         6
                        nonlinear =       0                        avg =   43.7619
                            total =      22                        max =        46
    
                                        (Std. err. adjusted for 21 clusters in id)
    ------------------------------------------------------------------------------
                 |               Robust
         gdpgrow | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
    -------------+----------------------------------------------------------------
             sme |   .9128761   .2466531     3.70   0.001     .3983667    1.427386
       inflation |  -.1421567   .0417887    -3.40   0.003    -.2293263   -.0549871
        gfcfgrow |   .1127319   .0368393     3.06   0.006     .0358865    .1895773
        hfcegrow |   .6901123   .1433662     4.81   0.000     .3910556     .989169
       tradeopen |  -.0239375   .0116199    -2.06   0.053    -.0481762    .0003012
                 |
        lrgdpopc |
             L1. |  -.8863398   .8513687    -1.04   0.310    -2.662264    .8895842
                 |
           _cons |   10.84036   8.734277     1.24   0.229    -7.379021    29.05974
    ------------------------------------------------------------------------------
    Instruments corresponding to the linear moment conditions:
     1, model(diff):
       L2.gdpgrow L3.gdpgrow L2.inflation L3.inflation L2.gfcfgrow L3.gfcfgrow
       L2.hfcegrow L3.hfcegrow L2.lrgdpopc L3.lrgdpopc
     2, model(level):
       L1.D.gdpgrow L2.D.gdpgrow L1.D.inflation L2.D.inflation L1.D.gfcfgrow
       L2.D.gfcfgrow L1.D.hfcegrow L2.D.hfcegrow L1.D.lrgdpopc L2.D.lrgdpopc
     3, model(level):
       sme
     4, model(level):
       _cons

    Leave a comment:


  • Sebastian Kripfganz
    replied
    By removing your instrument for sme, the coefficient of that regressor might be poorly identified. Not surprisingly, the standard errors of that coefficient estimate become huge. It (unsuccessfully) tries to borrow some identification strength from the other instruments, which then also slightly inflates the other standard errors.

    The coefficient of your lagged dependent variable also appears to be poorly identified. It would probably require additional lags as instruments, which in turn would however increase the number of instruments, which can cause further trouble.

    Leave a comment:


  • Taka Sakamoto
    replied
    Thank you. Could you tell me what's happening in the following estimation? I enter the command:

    Code:
    xtdpdgmm gdpgrow sme inflation gfcfgrow hfcegrow tradeopen l.lrgdpopc ,gmm(gdpgrow inflation  gfcfgrow hfcegrow lrgdpopc , lag(2 2) collapse model(diff)) gmm(gdpgrow inflation  gfcfgrow hfcegrow lrgdpopc, lag(1 1) diff collapse model(level)) iv(sme,model(level))  one vce(cl id) small overid
    I get the following results:

    Code:
    . xtdpdgmm gdpgrow sme inflation gfcfgrow hfcegrow tradeopen l.lrgdpopc ,gmm(gdpgrow inflation  gfcfgrow hfcegr
    > ow lrgdpopc , lag(2 2) collapse model(diff)) gmm(gdpgrow inflation  gfcfgrow hfcegrow lrgdpopc, lag(1 1) diff
    >  collapse model(level)) iv(sme,model(level))  one vce(cl id) small overid
    
    Generalized method of moments estimation
    
    Fitting full model:
    Step 1         f(b) =   3.170343
    
    Fitting reduced model 1:
    Step 1         f(b) =  8.867e-16
    
    Fitting reduced model 2:
    Step 1         f(b) =  1.413e-14
    
    Fitting reduced model 3:
    Step 1         f(b) =  3.1380076
    
    Group variable: id                           Number of obs         =       919
    Time variable: year                          Number of groups      =        21
    
    Moment conditions:     linear =      12      Obs per group:    min =         6
                        nonlinear =       0                        avg =   43.7619
                            total =      12                        max =        46
    
                                        (Std. err. adjusted for 21 clusters in id)
    ------------------------------------------------------------------------------
                 |               Robust
         gdpgrow | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
    -------------+----------------------------------------------------------------
             sme |   1.371398    .415195     3.30   0.004     .5053168     2.23748
       inflation |  -.2012583   .0656044    -3.07   0.006    -.3381068   -.0644099
        gfcfgrow |   .1756431   .0365951     4.80   0.000     .0993071    .2519791
        hfcegrow |   .6537494   .2542447     2.57   0.018     .1234043    1.184095
       tradeopen |  -.0440692   .0166601    -2.65   0.016    -.0788215   -.0093169
                 |
        lrgdpopc |
             L1. |  -.3924132   1.467164    -0.27   0.792    -3.452864    2.668037
                 |
           _cons |   7.086845   15.30321     0.46   0.648     -24.8351    39.00879
    ------------------------------------------------------------------------------
    Instruments corresponding to the linear moment conditions:
     1, model(diff):
       L2.gdpgrow L2.inflation L2.gfcfgrow L2.hfcegrow L2.lrgdpopc
     2, model(level):
       L1.D.gdpgrow L1.D.inflation L1.D.gfcfgrow L1.D.hfcegrow L1.D.lrgdpopc
     3, model(level):
       sme
     4, model(level):
       _cons
    When I remove "iv(sme,model(level))" from the command I get the results:

    Code:
    . xtdpdgmm gdpgrow sme inflation gfcfgrow hfcegrow tradeopen l.lrgdpopc ,gmm(gdpgrow inflation  gfcfgrow hfcegr
    > ow lrgdpopc , lag(2 2) collapse model(diff)) gmm(gdpgrow inflation  gfcfgrow hfcegrow lrgdpopc, lag(1 1) diff
    >  collapse model(level))  one vce(cl id) small overid
    
    Generalized method of moments estimation
    
    Fitting full model:
    Step 1         f(b) =  3.1380076
    
    Group variable: id                           Number of obs         =       919
    Time variable: year                          Number of groups      =        21
    
    Moment conditions:     linear =      11      Obs per group:    min =         6
                        nonlinear =       0                        avg =   43.7619
                            total =      11                        max =        46
    
                                        (Std. err. adjusted for 21 clusters in id)
    ------------------------------------------------------------------------------
                 |               Robust
         gdpgrow | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
    -------------+----------------------------------------------------------------
             sme |    -.64922   6.394653    -0.10   0.920    -13.98823    12.68979
       inflation |  -.1814501   .1103874    -1.64   0.116    -.4117143    .0488141
        gfcfgrow |    .181537   .0435933     4.16   0.000     .0906029    .2724712
        hfcegrow |   .6699812   .2849286     2.35   0.029     .0756305    1.264332
       tradeopen |  -.0526704   .0459819    -1.15   0.266    -.1485869    .0432461
                 |
        lrgdpopc |
             L1. |   .1360665     2.8836     0.05   0.963    -5.879018    6.151151
                 |
           _cons |    3.10732   25.29937     0.12   0.903    -49.66625    55.88089
    ------------------------------------------------------------------------------
    Instruments corresponding to the linear moment conditions:
     1, model(diff):
       L2.gdpgrow L2.inflation L2.gfcfgrow L2.hfcegrow L2.lrgdpopc
     2, model(level):
       L1.D.gdpgrow L1.D.inflation L1.D.gfcfgrow L1.D.hfcegrow L1.D.lrgdpopc
     3, model(level):
       _cons
    "sme" is an invariant dummy variable, but the same results happen when I use a continuous version of "sme".

    I am sorry I have taken time from you. And I appreciate your generous, kind help.

    Many thanks.

    TS

    Leave a comment:


  • Sebastian Kripfganz
    replied
    The variable that you specify in iv() (or gmmiv()) should not be correlated with the error term. In other words, if it is excluded from your regression specification, it should not have a direct effect on the dependent variable after controlling for any indirect effects through the included regressors. This is the standard requirement for a valid instrument.

    As mentioned earlier, iv() is just a special case of gmmiv(). If the relevant instruments are already specified with gmmiv(), then there is often no need to use iv(). In some cases, e.g. for dummy variables, the iv() option is easier to use.

    Leave a comment:


  • Taka Sakamoto
    replied
    Sorry, I have one more question. The variable that goes in iv() cannot and should not be correlated with the dependent variable?

    Leave a comment:


  • Taka Sakamoto
    replied
    Thank you. What am I making happen if I do not use iv() option? I have read your 2019 slides, and see that you sometimes do not use iv() option.

    Thank you for your help.

    Leave a comment:


  • Sebastian Kripfganz
    replied
    That's an error message you should not see. Would it be possible for you to send me your data set by e-mail, so that I can replicate the problem?

    Leave a comment:


  • Sarah Magd
    replied
    Thanks Prof. Sebastian Kripfganz
    I have tried the following code:
    Code:
    xtdpdgmm L(0/1).GDP Labor Capital Financial_Development Temperature, model(diff) collapse gmm(GDP Labor Capital , lag(2 4)) gmm(Financial_Development, lag(1 2)) gmm(Temperature, lag(. .))  two vce(r) overid nl(noserial)
    So I consider Temperature as a predetermined variable, and Temperature as an exogenous variable. However, when I run this code, I get this error:
    xtdpdgmm_init_nl(): 3498 touse variable for model 'diff' required
    <istmt>: - function returned error
    r(3498);


    Could you please help me figure out the problem?

    Leave a comment:


  • Sebastian Kripfganz
    replied
    Taka Sakamoto
    Instruments for the level model must be uncorrelated with the unobserved group-specific effects, no matter whether you specify them with gmmiv() or iv(). Without option diff, this requires that the levels of those instruments themselves are uncorrelated with those unobserved effects, which is akin to a "random-effects" assumption. With option diff, the first-differenced instruments need to be uncorrelated with the unobserved effects, which is a weaker requirement but still needs to be justified (see the seminal paper by Blundell and Bond (1998)).

    Sarah Magd
    This topic is about the xtdpdgmm command. It would be better to start a different topic if you have a question about a different command, such as xtabond2. Some general comments:
    • System GMM requires stronger assumptions about the initial observations than difference GMM. In a macroeconomic context, the additional assumption is quite likely to be violated due to the heterogeneous development of the countries. Unfortunately, in the empirical practice there is often not much effort made in justifying the extra assumption for system GMM. Just because the relevant literature used system GMM, this does not mean that it really is justified.
    • If there is a lot of persistence in the data, which again is quite likely with macroeconomic data, then difference GMM might suffer from a weak-instruments problem and the coefficient of the lagged dependent variable can be severely downward biased. This would be consistent with the difference in estimates between the difference and system GMM estimator, but the first point above could also explain that difference if the additional assumption for system GMM is violated. Also, even if both estimators are consistent, in small samples they can have a large sampling variation, which could lead to the different estimates you observed.
    • If the true data-generating process is dynamic, then estimating a static fixed-effects model yields biased estimates. So, it could be coincidentally that the bias from the static fixed-effects estimator is similar to the bias of the difference GMM estimator.
    • In order to reduce the weak-instruments problem of the difference GMM estimator, without imposing the stronger assumption for system GMM, a good solution can be to use the difference GMM estimator with added nonlinear moment conditions; see xtdpdgmm option nl(noserial).

    Leave a comment:


  • Sarah Magd
    replied
    Dear Prof. Sebastian Kripfganz
    We estimate our Sys-GMM model with the following code:
    Code:
    xtabond2 L(0/1).GDP Labor Capital Financial_Development Temperature, gmmstyle(L.GDP L.Labor L.Capital L.Financial_Development , lag(1 3)) ivstyle(Temperature) robust twostep
    This sys-GMM gives the estimated coefficient of Financial_Development is positive and insignificant. Also, the estimated coefficient of the lagged dependent variable is 0.9 and is statistically significant.


    However, when we estimate the Diff-GMM with the following code:
    Code:
    xtabond2 L(0/1).GDP Labor Capital Financial_Development Temperature, gmmstyle(L.GDP L.Labor L.Capital L.Financial_Development , lag(1 3)) ivstyle(Temperature) robust twostep noleveleq
    This Diff-GMM gives the estimated coefficient of Financial_Development is positive and significant. Also, the estimated coefficient of the lagged dependent variable is 0.2 and statistically insignificant.


    The Diff-GMM gives the result we expected for our main variable (i.e., Financial_Development), but sys-GMM. However, in the relevant literature to our RQ, we find that most papers use system-GMM. Also, please note that fixed effect regression results are consistent with Diff-GMM.
    Code:
    xtreg GDP Labor Capital Financial_Development Temperature, fe r

    We have two questions:
    - Is it normal to have different results for Sys-GMM and Diff-GMM? Is there a reason behind this?
    - Do we need to consider other specifications for the system GMM to get similar results to Diff-GMM? For example, are there any other specifications from xtdpdgmm that could improve our sys-GMM results?
    Last edited by Sarah Magd; 25 Jul 2023, 05:23.

    Leave a comment:


  • Taka Sakamoto
    replied
    Thank you so much for your explanation. It's very helpful. I have one more elementary question and I would be grateful if you could teach me:

    In the level equation of the gmm ("gmm(...model(level))), you do absolutely specify diff option under all circumstances, right? Or does it depend on your assumptions? I ask this, because the gmm(...model(level)) option produces instruments in levels unless you specify "diff", and it gives me the impression that it can also be instruments in levels as long as "diff" is optional.

    Thank you so much for your generous help.

    Taka

    Leave a comment:


  • Sebastian Kripfganz
    replied
    iv(x) is equivalent to gmm(x, lag(0 0) collapse). You then need to justify (based on assumptions you make) whether differenced or undifferenced variables are valid instruments (for the level model or the differenced model); this follows the arguments set out in the seminal papers by Arellano and Bond (1991) and Blundell and Bond (1998), among others.

    Two-step estimators use the same instruments as one-step estimators but rely on an estimation of the optimal weighting matrix. This yields asymptotically efficient estimates. If the instruments are valid, both one-step and two-step estimators are invalid. The inefficiency of the one-step estimator might be less of a problem in small samples, where it can be difficult to estimate the optimal weighting matrix, especially the larger the number the instruments is. If you have a large sample size, then you should go for the efficiency gains with the two-step estimators. With small samples, it is not clear whether this would actually improve the estimates.

    I cannot provide a general answer on the "desirable" number of cross sections. More is better. With 50 or even 100 cross sections, the finite-sample performance of the estimators could still be unsatisfying, but this depends on a lot of other data characteristics. With small N, you just need to keep your model as simple as possible, and impose some strong assumptions where this might be okay (e.g. assume that your regressors are exogenous). A simple IV estimator using a minimal number of collapsed instruments might do the job. But the truth is: If your sample is small, you just cannot really expect precise and robust estimates, no matter which estimator you use.

    Leave a comment:

Working...
X