Announcement

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

  • 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:


  • Taka Sakamoto
    replied
    3. How many cross-sections is desirable? Also, when researchers find that their cross-sections are too small, what other estimation do they apply?

    Thank you again.

    Taka

    Leave a comment:


  • Taka Sakamoto
    replied
    Thank you so much for your response and explanation. May I ask two questions?

    1. Re: iv():
    What should determine the use of iv() and whether to use difference or level in it? Also, iv() doesn't always have to be used and specified?

    2. Re: how different are two step and one step and what should determine which to use?

    Thank you your generous and kind help.

    Taka

    Leave a comment:


  • Sebastian Kripfganz
    replied
    1. I cannot see any obvious problem with your specification. However, it is of some concern that you only have 20 groups. It is difficult to obtain reliable results with such a small cross-sectional sample size. If you nevertheless want to do a GMM estimation, you might want to stick to the one-step estimator, which does not require estimation of the optimal weighting matrix. The one-step estimator will be asymptotically inefficient, but with N=20 you are very far away from asymptopia anyway.

    2. If your dummy variable varies over time, then you can in principle leave everything as it is. However, there is some risk that lags and/or first differences of dummy variables can be weak instruments. If the dummy variable is time invariant, then you can obviously not first difference it. You might then have to adopt the assumption that this variable is uncorrelated with both the idiosyncratic and the group-specific error component, which might or might not be acceptable, depending on your research question. In this case, you could include the dummy variable without the difference option for the level model.

    3. The main concern is about the sample size; see point 1.

    Leave a comment:


  • Taka Sakamoto
    replied
    Dear Professor Kripfganz:

    I would like to ask you to teach me how to apply your xtdpdgmm correctly. I thank you in advance for your kind help. I would like to implement a system-GMM model like the following:

    Code:
    xtdpdgmm lpgrow smei3 labutilpcgr mfppwt rknapcgr hfcegrow l.lrgdpopc if id~=13,gmm(lpgrow  labutilpcgr mfppwt rknapcgr hfcegrow lrgdpopc, lag(2 2) collapse model(diff)) gmm(lpgrow labutilpcgr mfppwt  rknapcgr hfcegrow lrgdpopc, lag(1 1) diff collapse model(level)) iv(smei3,diff model(level)) two vce(cl id) small
    And I get the results like this:

    Code:
    . xtdpdgmm lpgrow smei3 labutilpcgr mfppwt rknapcgr hfcegrow l.lrgdpopc if id~=13,gmm(lpgrow  labutilpcgr mfppwt rknap
    > cgr hfcegrow lrgdpopc, lag(2 2) collapse model(diff)) gmm(lpgrow labutilpcgr mfppwt  rknapcgr hfcegrow lrgdpopc, lag
    > (1 1) diff collapse model(level)) iv(smei3,d model(level)) two vce(cl id) small
    
    Generalized method of moments estimation
    
    Fitting full model:
    Step 1         f(b) =    .162683
    Step 2         f(b) =  .16926059
    
    Group variable: id                           Number of obs         =       514
    Time variable: year                          Number of groups      =        20
    
    Moment conditions:     linear =      14      Obs per group:    min =        12
                        nonlinear =       0                        avg =      25.7
                            total =      14                        max =        28
    
                                        (Std. err. adjusted for 20 clusters in id)
    ------------------------------------------------------------------------------
                 |              WC-Robust
          lpgrow | Coefficient  std. err.      t    P>|t|     [95% conf. interval]
    -------------+----------------------------------------------------------------
           smei3 |   .0991957    .057027     1.74   0.098    -.0201631    .2185545
     labutilpcgr |  -.3546281   .1410527    -2.51   0.021    -.6498549   -.0594013
          mfppwt |   .6901644   .0872634     7.91   0.000     .5075199    .8728089
        rknapcgr |   .1629855   .0893485     1.82   0.084     -.024023    .3499939
        hfcegrow |   .0271975   .0837204     0.32   0.749    -.1480314    .2024264
                 |
        lrgdpopc |
             L1. |  -.7435579   .2764233    -2.69   0.015    -1.322118   -.1649973
                 |
           _cons |   8.620034   3.041985     2.83   0.011     2.253086    14.98698
    ------------------------------------------------------------------------------
    Instruments corresponding to the linear moment conditions:
     1, model(diff):
       L2.lpgrow L2.labutilpcgr L2.mfppwt L2.rknapcgr L2.hfcegrow L2.lrgdpopc
     2, model(level):
       L1.D.lpgrow L1.D.labutilpcgr L1.D.mfppwt L1.D.rknapcgr L1.D.hfcegrow
       L1.D.lrgdpopc
     3, model(level):
       D.smei3
     4, model(level):
       _cons
    1. Am I specifying the instrumentation correctly? I'm particularly not confident about specifying the lags in level and difference equations. I would like to make sure I'm doing the right thing.

    2. What if I replace the first independent variable "smei3" with "sme" which is a dummy variable? Do I need to change anything inside "iv()"? A difference of a dummy variable is obviously wrong.

    3. Is there anything that you notice I'm doing wrong? I would appreciate any suggestion.

    Thank you for your generous help.

    Best wishes,

    Taka

    If the results are hard to see, here is a picture that shows the results.

    Doc14.docx
    Attached Files
    Last edited by Taka Sakamoto; 23 Jul 2023, 05:06.

    Leave a comment:


  • Sebastian Kripfganz
    replied
    I would not focus too much on these specific thresholds. Roodman (2009) correctly emphasizes that very large p-values (in extreme situations virtually 1.000) are often an indication of first-stage overfitting - i.e., using too many instruments relative to the sample size. Given your relatively large cross-sectional dimension and moderate time dimension, this should not be a concern in your case. We also should not "accept" the specification right away when the p-value barely exceeds the conventional significance level (say, 5%) because the consequence of incorrectly "accepting" a specification (type-II error) is usually more severe than that of incorrectly rejecting a specification (type-I error).

    If you compare the two 2009 papers by Roodman in the Stata Journal and the Oxford Bulletin of Economics and Statistics, they are actually contradicting each other regarding the 0.25 threshold. The Stata Journal article suggests to view values higher than 0.25 as potential signs of concern, while the Oxford Bulletin article recommends that p-values "as high as" (i.e., all p-values lower than) 0.25 as signs of concern. My take: Forget about strict threshold values.

    Leave a comment:


  • Neyati Ahuja
    replied
    Thank you sir
    Actually my doubt was in reference to Roodman (2009) which states p value of sargan hansen test shoul be from 0.10 to 0.25.

    Leave a comment:


  • Sebastian Kripfganz
    replied
    I am not sure what exactly your question is. The reported p-values for the Hansen test look all fine, and so does the AR(2) test.

    Leave a comment:


  • Neyati Ahuja
    replied
    Dear Prof. Sebastian

    I have a balanced panel dataset of 1,400 MNEs for over 10 years from 2010-20.
    My model is dynamic and have also introduced lag of dependant variable as explanatory variable. For the empirical analysis I used System GMM (through xtdpdgmm).

    I have a query regarding the post estimation test:

    In respect of Sargan Hansen 2 step test few of the p value obtained are 0.52, 0.67, 0.35, 0.48 and so on for different models designed.
    No. of moment condition linear range from 25, 27, 35 and so on.

    AR(2) Arellano Bond p value is greater that 0.10 around 0.25, 0.27,0.30.

    I wanted to check regarding my Sargan Hansen test result. I have read few research articles that report similar p-value for the Sargan Hansen Test.

    Thank You.

    Leave a comment:


  • Sebastian Kripfganz
    replied
    An R-squared is not very meaningful for dynamic panel models with endogenous regressors (or, more generally, any IV/2SLS/GMM estimator); see the following Stata FAQ for context: https://www.stata.com/support/faqs/s...least-squares/

    The xtdpdgmm postestimation command estat mmsc provides some criteria that allow you to compare the fit across models (similar to the conventional AIC/BIC criteria).

    Leave a comment:


  • Mugi Jang
    replied
    Dear Professor Sebastian,
    how can we get the
    Goodness of fit Panel Data ?
    especially for dynamic model?
    here is some code some one suggested
    xtreg y x, fe i(unit)
    add the following lines of code
    egen ybar = mean(y) gen y2 = (y - ybar)^2 predict resid, e gen e2 = resid^2 drop resid egen sse = sum(e2) egen sst = sum(y2) gen r2 = 1 - sse/sst sum r2
    Last edited by Mugi Jang; 05 Jun 2023, 04:49.

    Leave a comment:


  • Sebastian Kripfganz
    replied
    1) Yes.

    2) No; the Chudik-Pesaran estimator does not allow for endogenous regressors.

    3) initdev is a necessary option for the Chudik-Pesaran estimator.

    4) Hayakawa, Qi, and Breitung (2019) do not consider a level model for their estimator. xtdpdgmmfe does not have a nolevel option (only xtdpdgmm does); it automatically decides whether to include instruments for the level model or not, based on the other options specified. If you execute the xtdpdgmmfe command for this estimator, you will see that the nolevel option has been set for the implied xtdpdgmm command line.

    5) There is unfortunately no clear guidance about that. As mentioned earlier, with large enough N, it should not matter too much. Personally, I find some value in the vicinity of 4 quite reliable.

    6) My personal opinion is that lagging of the regressors is overused in empirical research. If you think that there is indeed no contemporaneous effect, but any effect take some time (1 period) to materialize, then sure: go for it. If it is reasonable to assume that there is a contemporaneous effect, but you lag the variable because of endogeneity concerns, then most likely as a result your model is misspecified. You can then debate whether the resulting misspecification is a smaller or larger problem than the original endogeneity problem. Personally, I think lagging of the regressors often does more harm than good. Endogeneity in the context of GMM should normally be dealt with by using lagged instruments, not lagged regressors.

    7) In the light of point 6), in a misspecified model it is very much unclear what happens. The omitted contemporaneous regressors essentially create an omitted-variables bias, which cannot normally be dealt with by using lagged instruments in the usual way. In short, there is no general answer to this question.

    8) Again, under model misspecification there is no general answer. You would first need to decide what the assumed timing of the effects is. This gives you the lag structure. Then, again based on economic theory, you can decide whether these variables are endogenous or predetermined. If there is a good theoretical justification for lagging (due to delayed effects), then it is often also easier to assume that those lagged regressors are at least predetermined and not endogenous, because endogeneity would require some kind of anticipation effects (which might still be reasonable depending on the context). In any case, the decision should always be made on economic theory, not a technical argument based on lag orders.

    9) Effectively, lags of the dependent variable are predetermined if there is no assumed serial error correlation. If you specify lags with the lags() option, xtdpdgmmfe does this classification automatically for you.

    Leave a comment:

Working...
X