Search code examples
rtidyverseglmpoisson

Creating data frame with CIs from matching and poisson model


After doing ps matching, I'm running a poisson model like so:

model <- glm(outcome ~ x1 + x2 + x3 ... ,
             data = d,
             weights = psweights$weights,
             family = "poisson")

And then want to create a new data frame with the variable names, coefficients, and upper and lower confidence intervals. Just doing:

d2 <- summary(model)$coef

gets me the variable names, coefficients, standard errors, and z values. What is the easiest way to compute confidence intervals, convert them into columns and bind it all into one data frame?


Solution

  • How about this, using the broom package:

    library(broom)
    mod <- glm(hp ~ disp + drat + cyl, data=mtcars, family=poisson)
    tidy(mod, conf.int=TRUE)
    #> # A tibble: 4 × 7
    #>   term        estimate std.error statistic  p.value conf.low conf.high
    #>   <chr>          <dbl>     <dbl>     <dbl>    <dbl>    <dbl>     <dbl>
    #> 1 (Intercept) 2.40      0.196        12.3  1.30e-34 2.02       2.79   
    #> 2 disp        0.000766  0.000259      2.96 3.07e- 3 0.000258   0.00127
    #> 3 drat        0.240     0.0386        6.22 4.89e-10 0.164      0.315  
    #> 4 cyl         0.236     0.0195       12.1  1.21e-33 0.198      0.274
    

    Created on 2022-06-30 by the reprex package (v2.0.1)