Announcement

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

  • What does the nolog option do in Poisson regressions?

    I have survey data I want to analyze where the DV 'count_selectoptionsh' is a non-negative discrete count variable (representing the count of high value options selected by participants). The IV is just 'treatment' that can take values 1, 2 and 3 where 1 is the control group. This is what the raw data looks like:
    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input float count_selectoptionsh byte treatment
    1 2
    0 1
    5 2
    0 1
    3 1
    4 3
    2 3
    5 2
    1 3
    1 2
    2 1
    0 1
    1 2
    4 3
    0 1
    4 2
    1 1
    0 1
    4 2
    3 1
    2 1
    0 1
    1 2
    2 3
    0 1
    1 2
    3 1
    2 1
    1 2
    0 1
    1 1
    2 1
    3 1
    1 2
    2 3
    2 1
    2 3
    1 1
    5 1
    3 3
    3 2
    4 3
    7 1
    2 1
    0 1
    2 1
    4 2
    3 1
    4 2
    0 3
    2 2
    1 1
    1 3
    0 1
    1 3
    0 2
    4 2
    3 2
    3 3
    2 2
    2 3
    1 3
    1 1
    5 3
    7 2
    1 2
    2 2
    1 3
    2 2
    2 1
    4 2
    2 2
    2 1
    2 2
    3 1
    0 2
    1 3
    1 1
    1 3
    4 2
    2 3
    1 1
    1 1
    3 3
    1 3
    4 2
    2 2
    3 3
    0 3
    0 1
    1 1
    1 3
    1 3
    2 2
    2 3
    4 1
    7 2
    5 3
    1 3
    2 3
    end
    I have used poisson to estimate the model such as:

    Code:
     poisson count_selectoptionsh b1.treatment, vce(robust)
    
    Iteration 0:  Log pseudolikelihood = -822.25021  
    Iteration 1:  Log pseudolikelihood = -822.25021  
    
    Poisson regression                                      Number of obs =    507
                                                            Wald chi2(2)  =  11.77
                                                            Prob > chi2   = 0.0028
    Log pseudolikelihood = -822.25021                       Pseudo R2     = 0.0077
    
    --------------------------------------------------------------------------------------
                         |               Robust
    count_selectoptionsh | Coefficient  std. err.      z    P>|z|     [95% conf. interval]
    ---------------------+----------------------------------------------------------------
               treatment |
                      2  |   .2800994   .0860088     3.26   0.001     .1115253    .4486736
                      3  |   .0855078   .0846385     1.01   0.312    -.0803807    .2513963
                         |
                   _cons |   .4458376    .064994     6.86   0.000     .3184518    .5732234
    --------------------------------------------------------------------------------------
    Using the nolog option, I get:

    Code:
    poisson count_selectoptionsh b1.treatment, vce(robust) nolog
    
    Poisson regression                                      Number of obs =    507
                                                            Wald chi2(2)  =  11.77
                                                            Prob > chi2   = 0.0028
    Log pseudolikelihood = -822.25021                       Pseudo R2     = 0.0077
    
    --------------------------------------------------------------------------------------
                         |               Robust
    count_selectoptionsh | Coefficient  std. err.      z    P>|z|     [95% conf. interval]
    ---------------------+----------------------------------------------------------------
               treatment |
                      2  |   .2800994   .0860088     3.26   0.001     .1115253    .4486736
                      3  |   .0855078   .0846385     1.01   0.312    -.0803807    .2513963
                         |
                   _cons |   .4458376    .064994     6.86   0.000     .3184518    .5732234
    ----------------------------------------------------------------------------------
    Now, I know without the 'nolog' option, the coefficient is the difference in log count between treatment and control. However, in terms of interpreting it as increase in count, I find it difficult. The only thing I can say is treatment increases the count of high value options selected in the positive direction. significantly. However I do want to say 'by how much'.
    Is using the 'nolog' option the solution to this? Does this give me OLS like coefficients?

    Please let me know, thank you!
    Last edited by anisha arya; 12 Aug 2024, 04:45.

  • #2
    all the "nolog" option does is suppress the showing of the iteration log - compare your two outputs above - the interpretation of the model, and the model results, will be exactly the same with and without this option;

    it may be that you are trying to get something different from what your current results are but that is not clear to me (nor is it clear what else you might want)

    Comment


    • #3
      Originally posted by Rich Goldstein View Post
      all the "nolog" option does is suppress the showing of the iteration log - compare your two outputs above - the interpretation of the model, and the model results, will be exactly the same with and without this option;

      it may be that you are trying to get something different from what your current results are but that is not clear to me (nor is it clear what else you might want)
      Thanks for replying Rich!

      I want to basically be able to say 'being in treatment 2 as compared to treatment 1 increases the count of high value options selection by so and so unit'. With the coefficients being difference in log count, it is hard to say by exactly how much the count increases. If this were to be an OLS reg, I could say that being in treatment 2 increases the count of high value options selected by 0.28 units (the coefficient). Is there a way to interpret poisson coefficients in the same way? or will it only tell my if the DV increases or decreases but not 'by how much'?

      Thanks for helping!

      Comment


      • #4
        The predicted means from the Poisson regression can be obtained after the regression and lo and behold! they are just the same as the means calculated directly.

        That doesn't mean that the Poisson regression is redundant, as you could use it to get confidence intervals for the predicted means and indeed significance tests too.

        Code:
        . poisson  count_selectoptionsh ib1.treatment, vce(robust)
        
        Iteration 0:  Log pseudolikelihood = -177.29799  
        Iteration 1:  Log pseudolikelihood = -177.29799  
        
        Poisson regression                                      Number of obs =    100
                                                                Wald chi2(2)  =   7.21
                                                                Prob > chi2   = 0.0271
        Log pseudolikelihood = -177.29799                       Pseudo R2     = 0.0266
        
        --------------------------------------------------------------------------------------
                             |               Robust
        count_selectoptionsh | Coefficient  std. err.      z    P>|z|     [95% conf. interval]
        ---------------------+----------------------------------------------------------------
                   treatment |
                          2  |   .5153237   .1969119     2.62   0.009     .1293835    .9012639
                          3  |   .2363888   .1977437     1.20   0.232    -.1511816    .6239593
                             |
                       _cons |   .4732877   .1572395     3.01   0.003      .165104    .7814714
        --------------------------------------------------------------------------------------
        
        .
        . predict predicted
        (option n assumed; predicted number of events)
        
        .
        . tabdisp treatment, c(predicted)
        
        --------------------------------
        treatment |            predicted
        ----------+---------------------
                1 |             1.605263
                2 |               2.6875
                3 |             2.033333
        --------------------------------
        
        .
        . tabulate treatment, su(count)
        
                    |   Summary of count_selectoptionsh
          treatment |        Mean   Std. dev.       Freq.
        ------------+------------------------------------
                  1 |   1.6052632   1.5689465          38
                  2 |      2.6875   1.8216883          32
                  3 |   2.0333333   1.3514573          30
        ------------+------------------------------------
              Total |        2.08   1.6433521         100
        Last edited by Nick Cox; 12 Aug 2024, 05:50.

        Comment


        • #5
          in addition to #4, note that the Poisson model is multiplicative and you should add the "irr" option to get that; if you really want an additive answer, your best bet, particularly if your actual model of interest is more complicated than this one, is to use the -margins- command; see
          Code:
          h poisson
          h margins

          Comment

          Working...
          X