Announcement

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

  • Estimating first stage of the gravity model using PPML with a bilateral trade dataset of over 500,000 observations

    Hello!

    I am trying to estimate a model with fixed effects and standard gravity variables using the ppml estimator. The dataset has 535,400 observations and the fixed effects in the model (variables) are over 1000. I am working with agrifood trade data over a period of 5years from over 200 countries. When I run the code below, an error message pops up after the 88th iteration saying "matrix not positive definite". I am guessing this error might be due to the large number of observations and variables, but I have no idea how to fix it. Any help from PPML experts would be very much appreciated. Thank you!!

    Code:
     timer clear 1
    
    . timer on 1
    
    . gen val = tot_val/100000
    
    . ppml val EXP_TIME_FE_1-EXP_TIME_FE_`it' IMP_TIME_FE_1-IMP_TIME_FE_`jt_ref' lndist contig colties comlang fta
    
    note: checking the existence of the estimates
    
    Number of regressors excluded to ensure that the estimates exist: 69
    Excluded regressors:  IMP_TIME_FE_42 IMP_TIME_FE_43 IMP_TIME_FE_44 IMP_TIME_FE_45 IMP_TIME_FE_46 IMP_TIME_FE_47 I
    > MP_TIME_FE_48 IMP_TIME_FE_49 IMP_TIME_FE_50 IMP_TIME_FE_86 IMP_TIME_FE_87 IMP_TIME_FE_88 IMP_TIME_FE_89 IMP_TIM
    > E_FE_90 IMP_TIME_FE_188 IMP_TIME_FE_189 IMP_TIME_FE_190 IMP_TIME_FE_191 IMP_TIME_FE_192 IMP_TIME_FE_223 IMP_TIM
    > E_FE_224 IMP_TIME_FE_225 IMP_TIME_FE_226 IMP_TIME_FE_227 IMP_TIME_FE_329 IMP_TIME_FE_383 IMP_TIME_FE_384 IMP_TI
    > ME_FE_385 IMP_TIME_FE_386 IMP_TIME_FE_387 IMP_TIME_FE_398 IMP_TIME_FE_429 IMP_TIME_FE_567 IMP_TIME_FE_568 IMP_T
    > IME_FE_569 IMP_TIME_FE_614 IMP_TIME_FE_615 IMP_TIME_FE_616 IMP_TIME_FE_617 IMP_TIME_FE_618 IMP_TIME_FE_761 IMP_
    > TIME_FE_762 IMP_TIME_FE_763 IMP_TIME_FE_764 IMP_TIME_FE_765 IMP_TIME_FE_818 IMP_TIME_FE_819 IMP_TIME_FE_820 IMP
    > _TIME_FE_821 IMP_TIME_FE_822 IMP_TIME_FE_823 IMP_TIME_FE_824 IMP_TIME_FE_825 IMP_TIME_FE_826 IMP_TIME_FE_827 IM
    > P_TIME_FE_856 IMP_TIME_FE_857 IMP_TIME_FE_858 IMP_TIME_FE_859 IMP_TIME_FE_860 IMP_TIME_FE_895 IMP_TIME_FE_896 I
    > MP_TIME_FE_897 IMP_TIME_FE_936 IMP_TIME_FE_937 IMP_TIME_FE_938 IMP_TIME_FE_939 IMP_TIME_FE_940 IMP_TIME_FE_948
    Number of observations excluded: 0
    
    note: EXP_TIME_FE_4 omitted because of collinearity.
    note: IMP_TIME_FE_26 omitted because of collinearity.
    note: IMP_TIME_FE_552 omitted because of collinearity.
    
    note: starting ppml estimation
    note: val has noninteger values
    
    Iteration 1:  Deviance =  4.78e+08
    Iteration 2:  Deviance =  1.47e+08
    Iteration 3:  Deviance =  7.94e+07
    Iteration 4:  Deviance =  6.21e+07
    Iteration 5:  Deviance =  5.78e+07
    Iteration 6:  Deviance =  5.67e+07
    Iteration 7:  Deviance =  5.65e+07
    Iteration 8:  Deviance =  5.65e+07
    Iteration 9:  Deviance =  5.65e+07
    Iteration 10: Deviance =  5.65e+07
    Iteration 11: Deviance =  5.65e+07
    Iteration 12: Deviance =  5.65e+07
    Iteration 13: Deviance =  5.65e+07
    Iteration 14: Deviance =  5.65e+07
    Iteration 15: Deviance =  5.65e+07
    Iteration 16: Deviance =  5.65e+07
    Iteration 17: Deviance =  5.65e+07
    Iteration 18: Deviance =  5.65e+07
    Iteration 19: Deviance =  5.65e+07
    Iteration 20: Deviance =  5.65e+07
    Iteration 21: Deviance =  5.65e+07
    Iteration 22: Deviance =  5.65e+07
    Iteration 23: Deviance =  5.65e+07
    Iteration 24: Deviance =  5.65e+07
    Iteration 25: Deviance =  5.65e+07
    Iteration 26: Deviance =  5.65e+07
    Iteration 27: Deviance =  5.65e+07
    Iteration 28: Deviance =  5.65e+07
    Iteration 29: Deviance =  5.65e+07
    Iteration 30: Deviance =  5.65e+07
    Iteration 31: Deviance =  5.65e+07
    Iteration 32: Deviance =  5.65e+07
    Iteration 33: Deviance =  5.65e+07
    Iteration 34: Deviance =  5.65e+07
    Iteration 35: Deviance =  5.65e+07
    Iteration 36: Deviance =  5.65e+07
    Iteration 37: Deviance =  5.65e+07
    Iteration 38: Deviance =  5.65e+07
    Iteration 39: Deviance =  5.65e+07
    Iteration 40: Deviance =  5.65e+07
    Iteration 41: Deviance =  5.65e+07
    Iteration 42: Deviance =  5.65e+07
    Iteration 43: Deviance =  5.65e+07
    Iteration 44: Deviance =  5.65e+07
    Iteration 45: Deviance =  5.65e+07
    Iteration 46: Deviance =  5.65e+07
    Iteration 47: Deviance =  5.65e+07
    Iteration 48: Deviance =  5.65e+07
    Iteration 49: Deviance =  5.65e+07
    Iteration 50: Deviance =  5.65e+07
    Iteration 51: Deviance =  5.65e+07
    Iteration 52: Deviance =  5.65e+07
    Iteration 53: Deviance =  5.65e+07
    Iteration 54: Deviance =  5.65e+07
    Iteration 55: Deviance =  5.65e+07
    Iteration 56: Deviance =  5.65e+07
    Iteration 57: Deviance =  5.65e+07
    Iteration 58: Deviance =  5.65e+07
    Iteration 59: Deviance =  5.65e+07
    Iteration 60: Deviance =  5.65e+07
    Iteration 61: Deviance =  5.65e+07
    Iteration 62: Deviance =  5.65e+07
    Iteration 63: Deviance =  5.65e+07
    Iteration 64: Deviance =  5.65e+07
    Iteration 65: Deviance =  5.65e+07
    Iteration 66: Deviance =  5.65e+07
    Iteration 67: Deviance =  5.65e+07
    Iteration 68: Deviance =  5.65e+07
    Iteration 69: Deviance =  5.65e+07
    Iteration 70: Deviance =  5.65e+07
    Iteration 71: Deviance =  5.65e+07
    Iteration 72: Deviance =  5.65e+07
    Iteration 73: Deviance =  5.65e+07
    Iteration 74: Deviance =  5.65e+07
    Iteration 75: Deviance =  5.65e+07
    Iteration 76: Deviance =  5.65e+07
    Iteration 77: Deviance =  6.45e+24
    Iteration 78: Deviance =  2.48e+24
    Iteration 79: Deviance =  4.40e+24
    Iteration 80: Deviance =  1.62e+24
    Iteration 81: Deviance =  5.96e+23
    Iteration 82: Deviance =  2.19e+23
    Iteration 83: Deviance =  8.06e+22
    Iteration 84: Deviance =  2.97e+22
    Iteration 85: Deviance =  1.09e+22
    Iteration 86: Deviance =  4.01e+21
    Iteration 87: Deviance =  1.48e+21
    Iteration 88: Deviance =  5.43e+20
    matrix not positive definite //error message

  • #2
    Dear Odiri Metieh,

    Please used the ppmlhdfe command instead of the ppml one. Check the help file to see how you can absorb the fixed effects.

    Best wishes,

    Joao

    Comment


    • #3
      Thank you, Joao! My apologies for the late response.

      Comment

      Working...
      X