Announcement

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

  • Gravity model estimation using PPML with fixed effects

    Hello All,

    I'm trying to estimate GVC trade flows in a gravity model, using the PPML method. My dependent variable is the foreign value-added in exports, from the UNCTAD-Eora database. I have used country-year fixed effects, alongside the normal gravity variables. I've attached my code below, where exp stands for the final exporter and org stands for the origin country. What I want to do now, is regress the fixed effects for the origin and final exporter separately, on variables that have emerged as significant in the literature on bilateral value-added trade flows (eg, institutions, GDP, tariffs, etc). But I don't know what the Stata code for that is. How should I proceed after the initial PPML estimation?

    I'm following Ignatenko et al (2019) [https://www.elibrary.imf.org/doc/IMF...&redirect=true) for the methodology.

    Code:
    ppmlhdfe fva_exp lndistw contig comlang_off comcol col45 rta, a(exp#year org#year)
    warning: dependent variable takes very low values after standardizing (6.4737e-11)
    Iteration 1:   deviance = 9.6995e+10  eps = .         iters = 6    tol = 1.0e-04  min(eta) =  -6.08  
    > P   
    Iteration 2:   deviance = 4.3247e+10  eps = 1.24e+00  iters = 4    tol = 1.0e-04  min(eta) =  -7.65  
    >     
    Iteration 3:   deviance = 2.5557e+10  eps = 6.92e-01  iters = 4    tol = 1.0e-04  min(eta) =  -9.23  
    >     
    Iteration 4:   deviance = 1.9873e+10  eps = 2.86e-01  iters = 4    tol = 1.0e-04  min(eta) = -10.73  
    >     
    Iteration 5:   deviance = 1.8312e+10  eps = 8.52e-02  iters = 4    tol = 1.0e-04  min(eta) = -12.61  
    >     
    Iteration 6:   deviance = 1.7956e+10  eps = 1.98e-02  iters = 3    tol = 1.0e-04  min(eta) = -14.42  
    >     
    Iteration 7:   deviance = 1.7892e+10  eps = 3.58e-03  iters = 3    tol = 1.0e-04  min(eta) = -16.21  
    >     
    Iteration 8:   deviance = 1.7884e+10  eps = 4.66e-04  iters = 2    tol = 1.0e-04  min(eta) = -18.00  
    >     
    Iteration 9:   deviance = 1.7883e+10  eps = 4.78e-05  iters = 2    tol = 1.0e-04  min(eta) = -19.53  
    >     
    Iteration 10:  deviance = 1.7883e+10  eps = 6.54e-06  iters = 2    tol = 1.0e-05  min(eta) = -20.70  
    >     
    Iteration 11:  deviance = 1.7883e+10  eps = 1.45e-06  iters = 2    tol = 1.0e-06  min(eta) = -21.76  
    >  S  
    Iteration 12:  deviance = 1.7883e+10  eps = 3.63e-07  iters = 2    tol = 1.0e-06  min(eta) = -22.76  
    >  S  
    Iteration 13:  deviance = 1.7883e+10  eps = 1.11e-07  iters = 2    tol = 1.0e-07  min(eta) = -23.75  
    >  S  
    Iteration 14:  deviance = 1.7883e+10  eps = 3.99e-08  iters = 2    tol = 1.0e-07  min(eta) = -24.75  
    >  S  
    Iteration 15:  deviance = 1.7883e+10  eps = 1.44e-08  iters = 2    tol = 1.0e-09  min(eta) = -25.73  
    >  S  
    Iteration 16:  deviance = 1.7883e+10  eps = 5.01e-09  iters = 2    tol = 1.0e-09  min(eta) = -26.68  
    >  S O
    -----------------------------------------------------------------------------------------------------
    > -------
    (legend: p: exact partial-out   s: exact solver   h: step-halving   o: epsilon below tolerance)
    Converged in 16 iterations and 46 HDFE sub-iterations (tol = 1.0e-08)
    
    HDFE PPML regression                              No. of obs      =    802,332
    Absorbing 2 HDFE groups                           Residual df     =    793,351
                                                      Wald chi2(6)    =   31094.63
    Deviance             =  1.78829e+10               Prob > chi2     =     0.0000
    Log pseudolikelihood =  -8944656317               Pseudo R2       =     0.9761
    ------------------------------------------------------------------------------
                 |               Robust
         fva_exp |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
         lndistw |  -.5843399   .0073831   -79.15   0.000    -.5988106   -.5698692
          contig |   .3025254   .0141269    21.41   0.000     .2748372    .3302136
     comlang_off |   .1464696    .013473    10.87   0.000     .1200629    .1728762
          comcol |  -.0186726   .0236985    -0.79   0.431    -.0651208    .0277756
           col45 |    .311416   .0278558    11.18   0.000     .2568196    .3660123
             rta |   .2799979   .0130889    21.39   0.000     .2543441    .3056518
           _cons |   19.79964    .065346   303.00   0.000     19.67156    19.92772
    ------------------------------------------------------------------------------
    
    Absorbed degrees of freedom:
    -----------------------------------------------------+
     Absorbed FE | Categories  - Redundant  = Num. Coefs |
    -------------+---------------------------------------|
        exp#year |      4500           0        4500     |
        org#year |      4500          25        4475     |
    -----------------------------------------------------+
    Regards,
    Saunok

  • #2
    Saunok:
    Basically, I would store the fixed effects in some variables (denoted FE1 and FE2) like this:
    Code:
    ppmlhdfe fva_exp lndistw contig comlang_off comcol col45 rta, a(FE1 = exp#year FE2= org#year)
    Once you have these variables, you can use them as dependent variables in further estimations.

    As a side note, I would consider two threats:
    - be careful about the fact that fixed effects are estimated stuff (and not directly observed)
    - as these are estimated, using them in further estimations is not straightforward (in terms of inference, standard errors etc).

    Best
    Clément

    Comment


    • #3
      Hi Clement,

      Thank you for your answer. I shall do this and post my results. What might be the problems in terms of inference that you're referring to? I'm not exactly clear about that.

      Regards,
      Saunok

      Comment


      • #4
        Standard errors of the second step could be biased. The easy (old school) solution is to bootstrap these standard errors. I guess other solutions exist regarding this issue but I am not familiar with these.

        Comment

        Working...
        X