I have a dataset with 3,810 zero observations and 906 nonzero observations.

Code:
. zinb dp_ mig2gross_2016 popden per_vacrent medrent, inflate(mig2gross_2016 popden per_vac
> rent medrent)  zip

....


Zero-inflated negative binomial regression      Number of obs     =      4,716
                                                Nonzero obs       =        906
                                                Zero obs          =      3,810

Inflation model = logit                         LR chi2(4)        =     674.94
Log likelihood  = -7027.052                     Prob > chi2       =     0.0000

--------------------------------------------------------------------------------
           dp_ |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
---------------+----------------------------------------------------------------
dp_            |
mig2gross_2016 |   .0013656   .0000791    17.26   0.000     .0012106    .0015207
        popden |   .0000187   6.47e-06     2.89   0.004     5.99e-06    .0000313
   per_vacrent |   .1064657   .0395465     2.69   0.007     .0289561    .1839754
       medrent |   .0004327   .0001698     2.55   0.011     .0000999    .0007656
         _cons |   3.867626   .2184873    17.70   0.000     3.439399    4.295853
---------------+----------------------------------------------------------------
inflate        |
mig2gross_2016 |  -.0206951   .0012508   -16.54   0.000    -.0231467   -.0182435
        popden |  -5.82e-06   .0000493    -0.12   0.906    -.0001025    .0000908
   per_vacrent |  -.1528612    .045326    -3.37   0.001    -.2416986   -.0640238
       medrent |  -.0034237   .0002269   -15.09   0.000    -.0038685    -.002979
         _cons |    5.86385   .2429657    24.13   0.000     5.387646    6.340054
---------------+----------------------------------------------------------------
      /lnalpha |   .1620231   .0510639     3.17   0.002     .0619397    .2621065
---------------+----------------------------------------------------------------
         alpha |   1.175887   .0600454                      1.063898    1.299665
--------------------------------------------------------------------------------
Likelihood-ratio test of alpha=0: chibar2(01) =  3.0e+05 Pr>=chibar2 =  0.0000




. margins, dydx(*)

Average marginal effects                        Number of obs     =      4,716
Model VCE    : OIM

Expression   : Predicted number of events, predict()
dy/dx w.r.t. : mig2gross_2016 popden per_vacrent medrent

--------------------------------------------------------------------------------
               |            Delta-method
               |      dy/dx   Std. Err.      z    P>|z|     [95% Conf. Interval]
---------------+----------------------------------------------------------------
mig2gross_2016 |   1.787321   .8142064     2.20   0.028     .1915056    3.383136
        popden |   .0226598   .0108408     2.09   0.037     .0014123    .0439074
   per_vacrent |   129.9724   70.19302     1.85   0.064    -7.603427    267.5481
       medrent |    .546259   .3278685     1.67   0.096    -.0963515    1.188869
--------------------------------------------------------------------------------
I have three question:
First, I understand that the coef. is the increase in the log of the expected count as a function of the predictor variables; but I can barely understand what the impact of that is by looking at it. I get that you can exponentiate the coefficients and understand it that way, so mig2gross_2016's exponentiated coefficient is now 1.001, and a one unit increase in mig2gross_2016 is now a 1.001 increase in dp_. Is that a correct interpretation and is there a command so that stata produces the exponentiated coefficients or do I have to do that by hand?


Second: I want to get mig2gross at different levels (at 0, 1, 100, 1000) because it also has a lot of zeros, so I want to see the marginal change when it's at different levels. But I can only get margins to work with zinb as margins, dydx(*). Any suggestions for getting the right code, and am I interpreting margin correctly?

Third: I have dummy variables for state (10 categories) that I originally wanted to treat as multiple levels, but I haven't found a way to do that for ZINB. is it better to just include them in the equation like:

Code:
 zinb dp_ mig2gross_2016 popden per_vacrent medrent i.state_n, inflate(mig2gross_2016 popden per_vacrent medrent)
because that just iterates for forever; any suggestions on that?