2
$\begingroup$

I used the PSCL package to run a zero-inflated negative binomial model on some count data I have.

This package gives the following output:

for the zero part of the model:

Estimate    Std_Error   Z   Pr(>|z|)
(Intercept) 0.1198  0.8619  0.139   0.8895
EurAdmix[notna] 1.7911  1.0239  1.7493  0.0802
Sex[notna]  0.6769  0.3358  2.016   0.0438
MedUse[notna]   -0.5436 0.4384  -1.2401 0.2149
sqrt(DisDurMonths[notna])   -0.2033 0.0333  -6.1059 0
Group[notna]    0.1198  0.2941  0.4073  0.6838
BMI[notna]  -0.0058 0.0118  -0.4948 0.6208
Marker_vh_1_1108138_A   -0.1676 0.1659  -1.0105 0.3123

for the count part of the model:

Estimate    Std_Error   z   value   Pr(>|z|)
(Intercept) 0.0449  0.3736  0.1201  0.9044
EurAdmix[notna] -0.2264 0.3673  -0.6163 0.5377
Sex[notna]  0.0745  0.1085  0.6869  0.4921
MedUse[notna]   0.1596  0.2721  0.5868  0.5573
sqrt(DisDurMonths[notna])   0.0528  0.009   5.8955  0
Group[notna]    0.3628  0.1388  2.6144  0.0089
BMI[notna]  -9e-04  0.0052  -0.1723 0.8632
Marker_vh_1_1108138_A   -0.0011 0.0601  -0.0175 0.986
Log(theta)  1.5946  0.2089  7.6337  0

Based on these data, I am trying to calculate the OR for the zero part of the model for Marker_vh_1_1108138_A, and the IRR for the count model for Marker_vh_1_1108138_A.

Based on various sources and slides like this one I have started to piece together how to calculate an IRR, however, I have a lot of uncertainties as to whether I am doing this correctly. Specifically, I want to ask:

For the above output, would IRR = e^-0.0011 for Marker_vh_1_1108138_A?

Or do I need to include the intercept IRR= e^(-0.0011 + 0.0449)?

Or do I need to include any of the other Betas in order to calculate the IRR for just Marker_vh_1_1108138_A?

If the possible values for Marker_vh_1_1108138_A are 0,1, and 2, does this mean that the rate of Y is e^-0.0011 different per 1 unit increase in the number of Marker_vh_1_1108138_A?

Are the calculations similar for the OR in such a model?

$\endgroup$

1 Answer 1

1
$\begingroup$

In principle yes. However I would not recommend computing your odds ratios and incidence rate ratios yourself that way. The calculations aren't hard, but mistakes can easily happen in such a task, and computers are much better at avoiding such mistakes. It also saves you time, especially if you later find out that you need to change your model. It is also easier to get test statistics out of it. Those calculation aren't hard either, but they are still better done by a computer. Also notice that you only use 4 digits in the calculations, which would introduce quite some rounding error.

Instead, I would look at your software package again and see if it cannot give you these estimates directly. I am not an R user, so I cannot tell you which option to type, but R is a serious program so I cannot imagine that this is not implemented.

$\endgroup$
5
  • $\begingroup$ Maarten - Thank you very much for your comments. I have a question, though. Do I not need to include the intercept.. in other words: IRR = e^(0.0449 + -0.0011) ? $\endgroup$ Commented Jan 18, 2016 at 9:57
  • 1
    $\begingroup$ no, you should not do so $\endgroup$ Commented Jan 18, 2016 at 10:33
  • $\begingroup$ thank you for your help, I will now implement this programmatically as you have recommended - thank you for your thoughtful advice. I will wait a few days in case other answers come up, to encourage that, at that time I will accept this answer. $\endgroup$ Commented Jan 18, 2016 at 22:02
  • $\begingroup$ Before you start writing code, I would look around if this is not already implemented and is just a matter of adding the right option. Actually, I would be very very very very disappointed in R and the R-community if this were not the case. $\endgroup$ Commented Jan 19, 2016 at 8:28
  • $\begingroup$ If you just want the point estimates then exp(coef(...)) can be used. To obtain standard errors and test statistics via the delta method, there are various generic implementations for this, e.g., deltaMethod() in package car. $\endgroup$ Commented Jan 21, 2016 at 23:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.