# is this odds ratio transformation correct?

I am using a function based on the r package stargazer to transform outcomes from a poisson analysis to odds ratio. I want to make sure that the output is correct, because I don't fully trust the function I used.

Here are the summary data from the regression models:

summary(TNC_count)
Deviance Residuals:
Min      1Q  Median      3Q     Max
-51.94  -18.21  -13.93   -2.51  121.78

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 5.107e+00  3.077e-03  1659.7   <2e-16 ***
NFIP_count  4.401e-03  1.563e-05   281.6   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

Null deviance: 335093  on 633  degrees of freedom
Residual deviance: 294111  on 632  degrees of freedom
AIC: 296801

Number of Fisher Scoring iterations: 6

summary(ncdem_model)
Call:
glm(formula = NCDEM_count ~ NFIP_count, family = "poisson", data = dmg_model)

Deviance Residuals:
Min       1Q   Median       3Q      Max
-95.724  -21.345  -17.824    0.185  100.932

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 5.423e+00  2.599e-03  2086.6   <2e-16 ***
NFIP_count  5.068e-03  1.083e-05   468.1   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for poisson family taken to be 1)

Null deviance: 466864  on 633  degrees of freedom
Residual deviance: 361648  on 632  degrees of freedom
AIC: 364279

Number of Fisher Scoring iterations: 6


and here is how it looks after using stargazer to output it as odds ratio, with (correct me if I'm wrong) the coefficients in odds ratio with the standard errors underneath.

stargazer2(list(tnc_model, ncdem_model), odd.ratio = T, type = "text")

==============================================
Dependent variable:
----------------------------
TNC_count     NCDEM_count
(1)            (2)
----------------------------------------------
NFIP_count           1.004***      1.005***
(0.00002)      (0.00001)

Constant            165.156***    226.647***
(0.508)        (0.589)

----------------------------------------------
Observations           634            634
Log Likelihood     -148,398.700  -182,137.700
Akaike Inf. Crit.  296,801.400    364,279.500
==============================================
Note:              *p<0.1; **p<0.05; ***p<0.01
> stargazer2(list(nfip_model1, nfip_model2, nfip_model3), odd.ratio = T, type = "text")


Is this correct?

For what it's worth, this is the function I am using with stargazer:

stargazer2 <- function(model, odd.ratio = F, ...) {
if(!("list" %in% class(model))) model <- list(model)

if (odd.ratio) {
coefOR2 <- lapply(model, function(x) exp(coef(x)))
seOR2 <- lapply(model, function(x) exp(coef(x)) * summary(x)$$coef[, 2]) p2 <- lapply(model, function(x) summary(x)$$coefficients[, 4])
stargazer(model, coef = coefOR2, se = seOR2, p = p2, ...)

} else {
stargazer(model, ...)
}
}