Load Packages

library(tidyverse)
library(codebookr)
library(summarytools)
library(broom) 
library(performance)
library(gt)
library(gtsummary)
library(janitor)
library(forcats)
library(here)
library(margins)
library(ggplot2)

Import Data

load(file = "~/Desktop/R-Code/SDOH_Vax/vax_clean1.rda")

Data Cleaning

vax_clean1 %>% 
mutate(pvax_2 = case_when(pvax>= 1 ~ '1',TRUE ~ "0")) %>% 
  mutate(prevnar_2 = case_when(prevnar>= 1 ~ '1',TRUE ~ "0")) -> pneumo_1

pneumo_1$pvax_2 = as.numeric(pneumo_1$pvax_2)
pneumo_1$prevnar_2 = as.numeric(pneumo_1$prevnar_2)

pneumo_1 %>% 
  mutate(pneumo_count = pvax_2 + prevnar_2) -> pneumo_clean

pneumo_clean %>% 
  mutate(pneumo_2 = case_when(pneumo_count>= 2 ~ '1',TRUE ~ "0")) -> pneumo_clean1

pneumo_clean1$pneumo_2 = as.numeric(pneumo_clean1$pneumo_2)

  

Baseline characteristics

pneumo_clean1 %>% 
  dplyr::select(ibd_3, age_yrs, gender, race_5, ethnic_3, lang_3, relig_affil, mstat_5, act_tob, max_ch, IC, pop_dens,r_pct, pvax_2, prevnar_2, pneumo_count, pneumo_2, RPL_THEMES, RPL_4, RPL_THEME1, RPL_THEME2, RPL_THEME3, RPL_THEME4) -> pneumo_baseline
pneumo_baseline %>% tbl_summary(label = list(age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Primary Language", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", RPL_THEMES ~ "Total SVI", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", pop_dens ~ "Population Density", RPL_4 ~ "SVI Quartiles", r_pct ~ "Percent Republican", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", ibd_3 ~ "IBD Type", pvax_2 ~ "Pneumovax", prevnar_2 ~ "Prevnar", pneumo_count ~ "Total Pneumonia Vaccines", IC ~ "Immunocompromised", pneumo_2 ~ "Fully Vaccinated"),
        statistic = list(all_continuous() ~ "{mean} ({sd})"),
        missing_text = "(Missing)")
Characteristic N = 15,2081
IBD Type
    CD 7,712 (51%)
    UC 7,345 (48%)
    Unspecified 151 (1.0%)
Age 49 (19)
Gender
    Male 6,962 (46%)
    Female 8,246 (54%)
Race
    White 13,202 (87%)
    Black 946 (6.2%)
    Asian 373 (2.5%)
    Native 56 (0.4%)
    Other 631 (4.1%)
Ethnicity
    NonHispanic 14,371 (98%)
    UNKNOWN 0 (0%)
    Hispanic 299 (2.0%)
    CHOOSE NOT TO DISCLOSE 0 (0%)
    (Missing) 538
Primary Language
    English 15,046 (99%)
    Other 162 (1.1%)
Any Religious Affiliation
    Yes 8,193 (57%)
    No 6,075 (43%)
    UNKNOWN 0 (0%)
    PATIENT REFUSED 0 (0%)
    (Missing) 940
Marital Status
    Married 6,178 (41%)
    Unknown 3,226 (21%)
    Unmarried 4,990 (33%)
    DivorcedSeparated 507 (3.3%)
    Widow 307 (2.0%)
Active Tobacco Use
    No 12,593 (87%)
    Yes 1,878 (13%)
    NOT ASKED 0 (0%)
    (Missing) 737
Charlson Comorbidity Index 3.3 (4.9)
    (Missing) 435
Immunocompromised 4,890 (62%)
    (Missing) 7,372
Population Density 2,290 (4,016)
    (Missing) 629
Percent Republican 45 (18)
    (Missing) 2,265
Pneumovax 3,986 (26%)
Prevnar 4,508 (30%)
Total Pneumonia Vaccines
    0 9,474 (62%)
    1 2,974 (20%)
    2 2,760 (18%)
Fully Vaccinated 2,760 (18%)
Total SVI 0.37 (0.26)
    (Missing) 288
SVI Quartiles
    First 5,833 (39%)
    Second 4,492 (30%)
    Third 3,052 (20%)
    Fourth 1,543 (10%)
    (Missing) 288
Soceioeconomic Status 0.35 (0.26)
    (Missing) 338
Household Composition 0.40 (0.27)
    (Missing) 287
Minority Status and Language 0.48 (0.29)
    (Missing) 279
Housing and Transportation 0.44 (0.29)
    (Missing) 310
1 n (%); Mean (SD)

Bivariate Analysis

Total pneumonia count (negative binomial)

library(MASS)
tot_pneumo_biv <-
  tbl_uvregression(
    pneumo_clean1[c("pneumo_count", "ibd_3", "age_yrs", "gender", "race_5", "ethnic_3", "lang_3", "mstat_5", "relig_affil", "act_tob", "max_ch", "IC", "pop_dens", "r_pct", "RPL_THEMES", "RPL_THEME1", "RPL_THEME2", "RPL_THEME3", "RPL_THEME4")],
    method = glm.nb,
    y = pneumo_count,
    label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"),
  exponentiate = TRUE)
Warning: iteration limit reachedWarning: iteration limit reached
print(tot_pneumo_biv, method = render)
`...` must be empty.
✖ Problematic argument:
• method = render
Characteristic N IRR1 95% CI1 p-value
IBD Type 15,208
    CD — —
    UC 0.93 0.89, 0.97 0.002
    Unspecified 0.36 0.25, 0.51 <0.001
Age 15,208 1.00 1.00, 1.01 <0.001
Gender 15,208
    Male — —
    Female 0.94 0.89, 0.98 0.005
Race 15,208
    White — —
    Black 0.91 0.83, 1.01 0.069
    Asian 1.04 0.90, 1.20 0.6
    Native 0.95 0.63, 1.37 0.8
    Other 0.79 0.70, 0.90 <0.001
Ethnicity 14,670
    NonHispanic — —
    Hispanic 0.97 0.82, 1.14 0.7
Preferred Language 15,208
    English — —
    Other 0.77 0.60, 0.98 0.042
Marital Status 15,208
    Married — —
    Unknown 0.79 0.74, 0.84 <0.001
    Unmarried 0.88 0.83, 0.93 <0.001
    DivorcedSeparated 0.90 0.79, 1.02 0.11
    Widow 1.08 0.92, 1.25 0.3
Any Religious Affiliation 14,268
    Yes — —
    No 0.91 0.87, 0.96 <0.001
Active Tobacco Use 14,471
    No — —
    Yes 0.84 0.78, 0.90 <0.001
Charlson Comorbidity Index 14,773 1.03 1.03, 1.04 <0.001
Immunocompromised 7,836 1.60 1.51, 1.69 <0.001
Population Density 14,579 1.00 1.00, 1.00 0.7
Percent Republican 12,943 1.00 0.99, 1.00 <0.001
Total SVI 14,920 0.68 0.62, 0.75 <0.001
Soceioeconomic Status 14,870 0.68 0.62, 0.74 <0.001
Household Composition 14,921 0.65 0.59, 0.71 <0.001
Minority Status and Language 14,929 1.11 1.03, 1.21 0.008
Housing and Transportation 14,898 0.79 0.73, 0.85 <0.001
1 IRR = Incidence Rate Ratio, CI = Confidence Interval
NULL

Fully vaccinated (logistic)

pneumo_full_biv <-
  tbl_uvregression(
    pneumo_clean1[c("pneumo_2", "ibd_3", "age_yrs", "gender", "race_5", "ethnic_3", "lang_3", "mstat_5", "relig_affil", "act_tob", "max_ch", "IC", "pop_dens", "r_pct", "RPL_THEMES", "RPL_THEME1", "RPL_THEME2", "RPL_THEME3", "RPL_THEME4")],
    method = glm,
    y = pneumo_2,
    method.args = list(family = binomial),
    label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"),
  exponentiate = TRUE)
print(pneumo_full_biv, method = render)
`...` must be empty.
✖ Problematic argument:
• method = render
Characteristic N OR1 95% CI1 p-value
IBD Type 15,208
    CD — —
    UC 0.83 0.77, 0.90 <0.001
    Unspecified 0.23 0.10, 0.44 <0.001
Age 15,208 1.00 1.00, 1.01 <0.001
Gender 15,208
    Male — —
    Female 0.91 0.84, 0.99 0.033
Race 15,208
    White — —
    Black 0.81 0.67, 0.96 0.021
    Asian 1.00 0.76, 1.29 >0.9
    Native 0.95 0.45, 1.81 0.9
    Other 0.67 0.53, 0.85 <0.001
Ethnicity 14,670
    NonHispanic — —
    Hispanic 0.89 0.65, 1.20 0.5
Preferred Language 15,208
    English — —
    Other 0.49 0.28, 0.80 0.007
Marital Status 15,208
    Married — —
    Unknown 0.72 0.64, 0.80 <0.001
    Unmarried 0.82 0.75, 0.91 <0.001
    DivorcedSeparated 0.78 0.61, 0.99 0.042
    Widow 0.84 0.61, 1.12 0.2
Any Religious Affiliation 14,268
    Yes — —
    No 0.90 0.83, 0.98 0.020
Active Tobacco Use 14,471
    No — —
    Yes 0.74 0.65, 0.84 <0.001
Charlson Comorbidity Index 14,773 1.04 1.03, 1.05 <0.001
Immunocompromised 7,836 2.38 2.13, 2.66 <0.001
Population Density 14,579 1.00 1.00, 1.00 0.8
Percent Republican 12,943 0.99 0.99, 1.00 <0.001
Total SVI 14,920 0.57 0.48, 0.67 <0.001
Soceioeconomic Status 14,870 0.57 0.48, 0.67 <0.001
Household Composition 14,921 0.54 0.46, 0.63 <0.001
Minority Status and Language 14,929 1.19 1.03, 1.37 0.020
Housing and Transportation 14,898 0.67 0.58, 0.78 <0.001
1 OR = Odds Ratio, CI = Confidence Interval
NULL

Total Pneumonia count (negative binomial)

SVI Continuous

pneumo_nb <- glm.nb(pneumo_count ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_THEMES,
               data = pneumo_clean1) 
Warning: iteration limit reachedWarning: iteration limit reached
summary(pneumo_nb)

Call:
glm.nb(formula = pneumo_count ~ ibd_3 + age_yrs + gender + race_5 + 
    ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + 
    IC + pop_dens + r_pct + RPL_THEMES, data = pneumo_clean1, 
    init.theta = 14929.24052, link = log)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.2497  -1.1737  -0.1137   0.6613   2.3195  

Coefficients:
                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)              -5.447e-01  8.449e-02  -6.448 1.14e-10 ***
ibd_3UC                  -4.394e-02  2.912e-02  -1.509 0.131358    
ibd_3Unspecified         -1.459e+00  4.089e-01  -3.568 0.000360 ***
age_yrs                   8.317e-03  9.452e-04   8.798  < 2e-16 ***
genderFemale             -1.206e-02  2.759e-02  -0.437 0.662010    
race_5Black              -2.314e-01  6.211e-02  -3.726 0.000194 ***
race_5Asian              -1.486e-02  8.596e-02  -0.173 0.862768    
race_5Native              7.400e-02  2.142e-01   0.345 0.729730    
race_5Other              -1.640e-01  8.508e-02  -1.928 0.053834 .  
ethnic_3Hispanic          1.345e-01  9.605e-02   1.401 0.161318    
lang_3Other              -1.153e-01  1.499e-01  -0.769 0.441756    
relig_affilNo            -4.640e-02  2.863e-02  -1.621 0.105056    
mstat_5Unknown           -1.826e-01  3.995e-02  -4.572 4.83e-06 ***
mstat_5Unmarried         -8.922e-02  3.649e-02  -2.445 0.014482 *  
mstat_5DivorcedSeparated -3.791e-02  8.093e-02  -0.468 0.639429    
mstat_5Widow             -3.041e-01  1.055e-01  -2.881 0.003962 ** 
act_tobYes               -4.880e-02  4.552e-02  -1.072 0.283735    
max_ch                    1.721e-02  2.879e-03   5.979 2.25e-09 ***
IC                        5.850e-01  3.306e-02  17.694  < 2e-16 ***
pop_dens                 -7.902e-06  4.304e-06  -1.836 0.066330 .  
r_pct                    -5.467e-03  8.878e-04  -6.158 7.36e-10 ***
RPL_THEMES               -2.048e-01  5.703e-02  -3.592 0.000328 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Negative Binomial(14929.24) family taken to be 1)

    Null deviance: 7036.5  on 6407  degrees of freedom
Residual deviance: 6393.2  on 6386  degrees of freedom
  (8800 observations deleted due to missingness)
AIC: 14617

Number of Fisher Scoring iterations: 1

              Theta:  14929 
          Std. Err.:  27767 
Warning while fitting theta: iteration limit reached 

 2 x log-likelihood:  -14571.23 
broom::glance(pneumo_nb)
broom::tidy(pneumo_nb, exponentiate = TRUE)
model_performance(pneumo_nb)
# Indices of model performance

AIC       |       BIC | Nagelkerke's R2 |  RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
14617.233 | 14772.835 |           0.143 | 0.800 | 1.001 |    -1.182 |           0.011
tbl_regression(pneumo_nb, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
Characteristic IRR1 95% CI1 p-value
IBD Type
    CD — —
    UC 0.96 0.90, 1.01 0.13
    Unspecified 0.23 0.09, 0.47 <0.001
Age 1.01 1.01, 1.01 <0.001
Gender
    Male — —
    Female 0.99 0.94, 1.04 0.7
Race
    White — —
    Black 0.79 0.70, 0.89 <0.001
    Asian 0.99 0.83, 1.16 0.9
    Native 1.08 0.69, 1.60 0.7
    Other 0.85 0.72, 1.00 0.054
Ethnicity
    NonHispanic — —
    Hispanic 1.14 0.94, 1.37 0.2
Preferred Language
    English — —
    Other 0.89 0.66, 1.18 0.4
Any Religious Affiliation
    Yes — —
    No 0.95 0.90, 1.01 0.11
Marital Status
    Married — —
    Unknown 0.83 0.77, 0.90 <0.001
    Unmarried 0.91 0.85, 0.98 0.014
    DivorcedSeparated 0.96 0.82, 1.12 0.6
    Widow 0.74 0.60, 0.90 0.004
Active Tobacco Use
    No — —
    Yes 0.95 0.87, 1.04 0.3
Charlson Comorbidity Index 1.02 1.01, 1.02 <0.001
Immunocompromised 1.80 1.68, 1.92 <0.001
Population Density 1.00 1.00, 1.00 0.066
Percent Republican 1.0 0.99, 1.00 <0.001
Total SVI 0.81 0.73, 0.91 <0.001
1 IRR = Incidence Rate Ratio, CI = Confidence Interval

# NB Residual Plot
pneumo_nb_res <- resid(pneumo_nb)
plot(fitted(pneumo_nb), pneumo_nb_res, col='steelblue', pch=16,
     xlab='Predicted Vaccines', ylab='Standardized Residuals', main='Negative Binomial')
abline(0,0)

# NB regression more appropriate because residuals of the model are smaller 

# Likelihood ratio test 
pchisq(2 * (logLik(pneumo_nb) - logLik(pneumo_nb)), df = 1, lower.tail = FALSE)
'log Lik.' 1 (df=23)
# p-value of loglik is < 0.05 so NB regression is the more appropriate model 

performance::check_model(pneumo_nb, panel = TRUE)

SVI Quartiles

pneumo_nb2 <- glm.nb(pneumo_count ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_4,
               data = pneumo_clean1) 
Warning: iteration limit reachedWarning: iteration limit reached
summary(pneumo_nb2)

Call:
glm.nb(formula = pneumo_count ~ ibd_3 + age_yrs + gender + race_5 + 
    ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + 
    IC + pop_dens + r_pct + RPL_4, data = pneumo_clean1, init.theta = 14928.06554, 
    link = log)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.1836  -1.1733  -0.1180   0.6586   2.3274  

Coefficients:
                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)              -5.531e-01  8.372e-02  -6.607 3.92e-11 ***
ibd_3UC                  -4.243e-02  2.913e-02  -1.456 0.145304    
ibd_3Unspecified         -1.467e+00  4.089e-01  -3.588 0.000333 ***
age_yrs                   8.322e-03  9.454e-04   8.802  < 2e-16 ***
genderFemale             -1.120e-02  2.759e-02  -0.406 0.684793    
race_5Black              -2.387e-01  6.232e-02  -3.831 0.000128 ***
race_5Asian              -1.020e-02  8.597e-02  -0.119 0.905526    
race_5Native              7.081e-02  2.142e-01   0.331 0.740952    
race_5Other              -1.676e-01  8.507e-02  -1.971 0.048778 *  
ethnic_3Hispanic          1.306e-01  9.604e-02   1.360 0.173775    
lang_3Other              -1.195e-01  1.499e-01  -0.797 0.425289    
relig_affilNo            -4.562e-02  2.863e-02  -1.593 0.111108    
mstat_5Unknown           -1.821e-01  3.995e-02  -4.559 5.13e-06 ***
mstat_5Unmarried         -8.872e-02  3.649e-02  -2.431 0.015043 *  
mstat_5DivorcedSeparated -3.687e-02  8.091e-02  -0.456 0.648637    
mstat_5Widow             -3.045e-01  1.056e-01  -2.885 0.003918 ** 
act_tobYes               -4.859e-02  4.550e-02  -1.068 0.285480    
max_ch                    1.735e-02  2.881e-03   6.022 1.72e-09 ***
IC                        5.848e-01  3.306e-02  17.687  < 2e-16 ***
pop_dens                 -7.846e-06  4.298e-06  -1.826 0.067915 .  
r_pct                    -5.401e-03  8.913e-04  -6.060 1.37e-09 ***
RPL_4Second              -1.138e-01  3.280e-02  -3.471 0.000519 ***
RPL_4Third               -1.182e-01  3.909e-02  -3.024 0.002498 ** 
RPL_4Fourth              -1.489e-01  5.333e-02  -2.793 0.005223 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Negative Binomial(14928.07) family taken to be 1)

    Null deviance: 7036.5  on 6407  degrees of freedom
Residual deviance: 6387.5  on 6384  degrees of freedom
  (8800 observations deleted due to missingness)
AIC: 14616

Number of Fisher Scoring iterations: 1

              Theta:  14928 
          Std. Err.:  27709 
Warning while fitting theta: iteration limit reached 

 2 x log-likelihood:  -14565.5 
broom::glance(pneumo_nb2)
broom::tidy(pneumo_nb2, exponentiate = TRUE)
model_performance(pneumo_nb2)
# Indices of model performance

AIC       |       BIC | Nagelkerke's R2 |  RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
14615.501 | 14784.634 |           0.145 | 0.799 | 1.000 |    -1.182 |           0.011
tbl_regression(pneumo_nb2, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_4 ~ "SVI Quartile", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
Characteristic IRR1 95% CI1 p-value
IBD Type
    CD — —
    UC 0.96 0.91, 1.01 0.15
    Unspecified 0.23 0.09, 0.47 <0.001
Age 1.01 1.01, 1.01 <0.001
Gender
    Male — —
    Female 0.99 0.94, 1.04 0.7
Race
    White — —
    Black 0.79 0.70, 0.89 <0.001
    Asian 0.99 0.83, 1.17 >0.9
    Native 1.07 0.68, 1.59 0.7
    Other 0.85 0.71, 1.00 0.049
Ethnicity
    NonHispanic — —
    Hispanic 1.14 0.94, 1.37 0.2
Preferred Language
    English — —
    Other 0.89 0.65, 1.18 0.4
Any Religious Affiliation
    Yes — —
    No 0.96 0.90, 1.01 0.11
Marital Status
    Married — —
    Unknown 0.83 0.77, 0.90 <0.001
    Unmarried 0.92 0.85, 0.98 0.015
    DivorcedSeparated 0.96 0.82, 1.13 0.6
    Widow 0.74 0.60, 0.90 0.004
Active Tobacco Use
    No — —
    Yes 0.95 0.87, 1.04 0.3
Charlson Comorbidity Index 1.02 1.01, 1.02 <0.001
Immunocompromised 1.79 1.68, 1.92 <0.001
Population Density 1.00 1.00, 1.00 0.068
Percent Republican 1.0 0.99, 1.00 <0.001
SVI Quartile
    First — —
    Second 0.89 0.84, 0.95 <0.001
    Third 0.89 0.82, 0.96 0.002
    Fourth 0.86 0.78, 0.96 0.005
1 IRR = Incidence Rate Ratio, CI = Confidence Interval

performance::check_model(pneumo_nb2, panel = TRUE)

All themes

pneumo_nb3 <- glm.nb(pneumo_count ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_THEME1
                    + RPL_THEME2 + RPL_THEME3 + RPL_THEME4,
               data = pneumo_clean1) 
Warning: iteration limit reachedWarning: iteration limit reached
summary(pneumo_nb3)

Call:
glm.nb(formula = pneumo_count ~ ibd_3 + age_yrs + gender + race_5 + 
    ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + 
    IC + pop_dens + r_pct + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + 
    RPL_THEME4, data = pneumo_clean1, init.theta = 14908.29627, 
    link = log)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.2810  -1.1726  -0.1110   0.6599   2.3658  

Coefficients:
                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)              -5.413e-01  1.002e-01  -5.402 6.58e-08 ***
ibd_3UC                  -4.456e-02  2.914e-02  -1.529 0.126160    
ibd_3Unspecified         -1.457e+00  4.089e-01  -3.563 0.000367 ***
age_yrs                   8.349e-03  9.453e-04   8.833  < 2e-16 ***
genderFemale             -1.242e-02  2.759e-02  -0.450 0.652704    
race_5Black              -2.225e-01  6.250e-02  -3.559 0.000372 ***
race_5Asian              -2.516e-02  8.656e-02  -0.291 0.771308    
race_5Native              7.315e-02  2.142e-01   0.342 0.732725    
race_5Other              -1.669e-01  8.514e-02  -1.961 0.049910 *  
ethnic_3Hispanic          1.287e-01  9.611e-02   1.339 0.180578    
lang_3Other              -1.331e-01  1.501e-01  -0.886 0.375473    
relig_affilNo            -4.723e-02  2.871e-02  -1.645 0.099950 .  
mstat_5Unknown           -1.837e-01  3.997e-02  -4.595 4.32e-06 ***
mstat_5Unmarried         -9.096e-02  3.651e-02  -2.491 0.012731 *  
mstat_5DivorcedSeparated -3.642e-02  8.094e-02  -0.450 0.652775    
mstat_5Widow             -3.060e-01  1.056e-01  -2.899 0.003749 ** 
act_tobYes               -4.984e-02  4.556e-02  -1.094 0.274000    
max_ch                    1.720e-02  2.879e-03   5.976 2.28e-09 ***
IC                        5.848e-01  3.309e-02  17.676  < 2e-16 ***
pop_dens                 -8.938e-06  4.488e-06  -1.991 0.046434 *  
r_pct                    -4.710e-03  1.072e-03  -4.394 1.11e-05 ***
RPL_THEME1               -9.510e-03  8.082e-02  -0.118 0.906336    
RPL_THEME2               -2.257e-01  7.147e-02  -3.158 0.001589 ** 
RPL_THEME3               -1.890e-02  5.784e-02  -0.327 0.743848    
RPL_THEME4               -2.457e-02  6.052e-02  -0.406 0.684807    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Negative Binomial(14908.3) family taken to be 1)

    Null deviance: 7036.5  on 6407  degrees of freedom
Residual deviance: 6386.4  on 6383  degrees of freedom
  (8800 observations deleted due to missingness)
AIC: 14616

Number of Fisher Scoring iterations: 1

              Theta:  14908 
          Std. Err.:  27654 
Warning while fitting theta: iteration limit reached 

 2 x log-likelihood:  -14564.39 
broom::glance(pneumo_nb3)
broom::tidy(pneumo_nb3, exponentiate = TRUE)
model_performance(pneumo_nb3)
# Indices of model performance

AIC       |       BIC | Nagelkerke's R2 |  RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
14616.389 | 14792.287 |           0.145 | 0.799 | 1.000 |    -1.182 |           0.011
tbl_regression(pneumo_nb3, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
Characteristic IRR1 95% CI1 p-value
IBD Type
    CD — —
    UC 0.96 0.90, 1.01 0.13
    Unspecified 0.23 0.09, 0.47 <0.001
Age 1.01 1.01, 1.01 <0.001
Gender
    Male — —
    Female 0.99 0.94, 1.04 0.7
Race
    White — —
    Black 0.80 0.71, 0.90 <0.001
    Asian 0.98 0.82, 1.15 0.8
    Native 1.08 0.69, 1.59 0.7
    Other 0.85 0.71, 1.00 0.050
Ethnicity
    NonHispanic — —
    Hispanic 1.14 0.94, 1.37 0.2
Preferred Language
    English — —
    Other 0.88 0.64, 1.16 0.4
Any Religious Affiliation
    Yes — —
    No 0.95 0.90, 1.01 0.10
Marital Status
    Married — —
    Unknown 0.83 0.77, 0.90 <0.001
    Unmarried 0.91 0.85, 0.98 0.013
    DivorcedSeparated 0.96 0.82, 1.13 0.7
    Widow 0.74 0.60, 0.90 0.004
Active Tobacco Use
    No — —
    Yes 0.95 0.87, 1.04 0.3
Charlson Comorbidity Index 1.02 1.01, 1.02 <0.001
Immunocompromised 1.79 1.68, 1.92 <0.001
Population Density 1.00 1.00, 1.00 0.046
Percent Republican 1.00 0.99, 1.00 <0.001
Soceioeconomic Status 0.99 0.85, 1.16 >0.9
Household Composition 0.80 0.69, 0.92 0.002
Minority Status and Language 0.98 0.88, 1.10 0.7
Housing and Transportation 0.98 0.87, 1.10 0.7
1 IRR = Incidence Rate Ratio, CI = Confidence Interval

performance::check_model(pneumo_nb3, panel = TRUE)

Fully Vaccinated (logistic regression)

SVI Continuous

pneumo_full1 <- glm(pneumo_2 ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_THEMES,
                   family = binomial, 
               data = pneumo_clean1) 
summary(pneumo_full1)

Call:
glm(formula = pneumo_2 ~ ibd_3 + age_yrs + gender + race_5 + 
    ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + 
    IC + pop_dens + r_pct + RPL_THEMES, family = binomial, data = pneumo_clean1)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.6919  -0.8492  -0.6649   1.2255   2.5357  

Coefficients:
                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)              -1.346e+00  1.771e-01  -7.597 3.04e-14 ***
ibd_3UC                  -1.220e-01  6.120e-02  -1.994 0.046205 *  
ibd_3Unspecified         -2.528e+00  1.022e+00  -2.473 0.013408 *  
age_yrs                   1.298e-02  2.012e-03   6.454 1.09e-10 ***
genderFemale             -3.080e-02  5.781e-02  -0.533 0.594171    
race_5Black              -4.746e-01  1.285e-01  -3.693 0.000222 ***
race_5Asian              -4.251e-02  1.782e-01  -0.239 0.811456    
race_5Native              2.150e-01  4.613e-01   0.466 0.641251    
race_5Other              -4.468e-01  1.802e-01  -2.480 0.013142 *  
ethnic_3Hispanic          2.652e-01  2.032e-01   1.305 0.191846    
lang_3Other              -4.036e-01  3.258e-01  -1.239 0.215476    
relig_affilNo            -9.831e-02  5.963e-02  -1.649 0.099228 .  
mstat_5Unknown           -3.577e-01  8.294e-02  -4.313 1.61e-05 ***
mstat_5Unmarried         -2.361e-01  7.683e-02  -3.073 0.002117 ** 
mstat_5DivorcedSeparated -2.571e-01  1.769e-01  -1.454 0.145999    
mstat_5Widow             -8.491e-01  2.384e-01  -3.561 0.000369 ***
act_tobYes               -8.724e-02  9.414e-02  -0.927 0.354058    
max_ch                    3.070e-02  6.339e-03   4.843 1.28e-06 ***
IC                        1.089e+00  7.010e-02  15.534  < 2e-16 ***
pop_dens                 -1.648e-05  9.272e-06  -1.777 0.075512 .  
r_pct                    -1.034e-02  1.887e-03  -5.481 4.22e-08 ***
RPL_THEMES               -3.919e-01  1.192e-01  -3.287 0.001011 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 7714.8  on 6407  degrees of freedom
Residual deviance: 7233.7  on 6386  degrees of freedom
  (8800 observations deleted due to missingness)
AIC: 7277.7

Number of Fisher Scoring iterations: 5
broom::glance(pneumo_full1)
broom::tidy(pneumo_full1, exponentiate = TRUE)
model_performance(pneumo_full1)
# Indices of model performance

AIC      |      BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
------------------------------------------------------------------------------------------------
7277.714 | 7426.550 |     0.072 | 0.437 | 1.064 |    0.564 |      -Inf |       2.066e-04 | 0.618
tbl_regression(pneumo_full1, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
IBD Type
    CD — —
    UC 0.89 0.79, 1.00 0.046
    Unspecified 0.08 0.00, 0.38 0.013
Age 1.01 1.01, 1.02 <0.001
Gender
    Male — —
    Female 0.97 0.87, 1.09 0.6
Race
    White — —
    Black 0.62 0.48, 0.80 <0.001
    Asian 0.96 0.67, 1.35 0.8
    Native 1.24 0.48, 2.99 0.6
    Other 0.64 0.45, 0.90 0.013
Ethnicity
    NonHispanic — —
    Hispanic 1.30 0.87, 1.93 0.2
Preferred Language
    English — —
    Other 0.67 0.34, 1.23 0.2
Any Religious Affiliation
    Yes — —
    No 0.91 0.81, 1.02 0.10
Marital Status
    Married — —
    Unknown 0.70 0.59, 0.82 <0.001
    Unmarried 0.79 0.68, 0.92 0.002
    DivorcedSeparated 0.77 0.54, 1.09 0.15
    Widow 0.43 0.26, 0.67 <0.001
Active Tobacco Use
    No — —
    Yes 0.92 0.76, 1.10 0.4
Charlson Comorbidity Index 1.03 1.02, 1.04 <0.001
Immunocompromised 2.97 2.59, 3.41 <0.001
Population Density 1.00 1.00, 1.00 0.076
Percent Republican 0.99 0.99, 0.99 <0.001
Total SVI 0.68 0.53, 0.85 0.001
1 OR = Odds Ratio, CI = Confidence Interval

performance::check_model(pneumo_full1, panel = TRUE)

SVI Quartiles

covid_full3 <- glm(pneumo_2 ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_4,
                   family = binomial,
               data = pneumo_clean1) 
summary(covid_full3)

Call:
glm(formula = pneumo_2 ~ ibd_3 + age_yrs + gender + race_5 + 
    ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + 
    IC + pop_dens + r_pct + RPL_4, family = binomial, data = pneumo_clean1)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.6388  -0.8494  -0.6612   1.2209   2.5394  

Coefficients:
                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)              -1.369e+00  1.756e-01  -7.795 6.43e-15 ***
ibd_3UC                  -1.176e-01  6.126e-02  -1.919 0.054952 .  
ibd_3Unspecified         -2.539e+00  1.023e+00  -2.483 0.013029 *  
age_yrs                   1.302e-02  2.012e-03   6.470 9.77e-11 ***
genderFemale             -2.839e-02  5.785e-02  -0.491 0.623635    
race_5Black              -5.006e-01  1.291e-01  -3.878 0.000105 ***
race_5Asian              -2.759e-02  1.784e-01  -0.155 0.877107    
race_5Native              2.086e-01  4.628e-01   0.451 0.652118    
race_5Other              -4.561e-01  1.802e-01  -2.531 0.011380 *  
ethnic_3Hispanic          2.546e-01  2.035e-01   1.251 0.210954    
lang_3Other              -4.161e-01  3.265e-01  -1.274 0.202512    
relig_affilNo            -9.684e-02  5.967e-02  -1.623 0.104598    
mstat_5Unknown           -3.558e-01  8.298e-02  -4.288 1.80e-05 ***
mstat_5Unmarried         -2.350e-01  7.687e-02  -3.057 0.002236 ** 
mstat_5DivorcedSeparated -2.535e-01  1.769e-01  -1.433 0.151745    
mstat_5Widow             -8.473e-01  2.385e-01  -3.553 0.000381 ***
act_tobYes               -8.919e-02  9.412e-02  -0.948 0.343365    
max_ch                    3.098e-02  6.344e-03   4.884 1.04e-06 ***
IC                        1.090e+00  7.014e-02  15.536  < 2e-16 ***
pop_dens                 -1.605e-05  9.205e-06  -1.743 0.081283 .  
r_pct                    -1.003e-02  1.892e-03  -5.303 1.14e-07 ***
RPL_4Second              -2.222e-01  6.873e-02  -3.233 0.001227 ** 
RPL_4Third               -2.815e-01  8.238e-02  -3.417 0.000633 ***
RPL_4Fourth              -2.123e-01  1.099e-01  -1.932 0.053377 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 7714.8  on 6407  degrees of freedom
Residual deviance: 7227.5  on 6384  degrees of freedom
  (8800 observations deleted due to missingness)
AIC: 7275.5

Number of Fisher Scoring iterations: 5
broom::glance(covid_full3)
broom::tidy(covid_full3, exponentiate = TRUE)
model_performance(covid_full3)
# Indices of model performance

AIC      |      BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
------------------------------------------------------------------------------------------------
7275.486 | 7437.853 |     0.073 | 0.437 | 1.064 |    0.564 |      -Inf |       1.871e-04 | 0.618
tbl_regression(covid_full3, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_4 ~ "SVI Quartile", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
IBD Type
    CD — —
    UC 0.89 0.79, 1.00 0.055
    Unspecified 0.08 0.00, 0.38 0.013
Age 1.01 1.01, 1.02 <0.001
Gender
    Male — —
    Female 0.97 0.87, 1.09 0.6
Race
    White — —
    Black 0.61 0.47, 0.78 <0.001
    Asian 0.97 0.68, 1.37 0.9
    Native 1.23 0.47, 2.98 0.7
    Other 0.63 0.44, 0.90 0.011
Ethnicity
    NonHispanic — —
    Hispanic 1.29 0.86, 1.91 0.2
Preferred Language
    English — —
    Other 0.66 0.33, 1.22 0.2
Any Religious Affiliation
    Yes — —
    No 0.91 0.81, 1.02 0.10
Marital Status
    Married — —
    Unknown 0.70 0.60, 0.82 <0.001
    Unmarried 0.79 0.68, 0.92 0.002
    DivorcedSeparated 0.78 0.55, 1.09 0.2
    Widow 0.43 0.26, 0.68 <0.001
Active Tobacco Use
    No — —
    Yes 0.91 0.76, 1.10 0.3
Charlson Comorbidity Index 1.03 1.02, 1.04 <0.001
Immunocompromised 2.97 2.59, 3.41 <0.001
Population Density 1.00 1.00, 1.00 0.081
Percent Republican 0.99 0.99, 0.99 <0.001
SVI Quartile
    First — —
    Second 0.80 0.70, 0.92 0.001
    Third 0.75 0.64, 0.89 <0.001
    Fourth 0.81 0.65, 1.00 0.053
1 OR = Odds Ratio, CI = Confidence Interval

performance::check_model(covid_full3, panel = TRUE)

All Themes

pneummo_full3 <- glm(pneumo_2 ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + IC + pop_dens + r_pct + RPL_THEME1
                    + RPL_THEME2 + RPL_THEME3 + RPL_THEME4,
                   family = binomial,
               data = pneumo_clean1) 
summary(pneummo_full3)

Call:
glm(formula = pneumo_2 ~ ibd_3 + age_yrs + gender + race_5 + 
    ethnic_3 + lang_3 + relig_affil + mstat_5 + act_tob + max_ch + 
    IC + pop_dens + r_pct + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + 
    RPL_THEME4, family = binomial, data = pneumo_clean1)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-1.7027  -0.8493  -0.6610   1.2170   2.5748  

Coefficients:
                           Estimate Std. Error z value Pr(>|z|)    
(Intercept)              -1.305e+00  2.108e-01  -6.192 5.95e-10 ***
ibd_3UC                  -1.228e-01  6.127e-02  -2.005 0.045003 *  
ibd_3Unspecified         -2.522e+00  1.022e+00  -2.466 0.013653 *  
age_yrs                   1.306e-02  2.013e-03   6.488 8.70e-11 ***
genderFemale             -3.186e-02  5.785e-02  -0.551 0.581852    
race_5Black              -4.687e-01  1.294e-01  -3.621 0.000294 ***
race_5Asian              -5.635e-02  1.794e-01  -0.314 0.753490    
race_5Native              2.123e-01  4.613e-01   0.460 0.645399    
race_5Other              -4.539e-01  1.804e-01  -2.515 0.011896 *  
ethnic_3Hispanic          2.557e-01  2.036e-01   1.256 0.208976    
lang_3Other              -4.459e-01  3.266e-01  -1.365 0.172101    
relig_affilNo            -9.982e-02  5.984e-02  -1.668 0.095310 .  
mstat_5Unknown           -3.600e-01  8.303e-02  -4.335 1.46e-05 ***
mstat_5Unmarried         -2.390e-01  7.693e-02  -3.107 0.001893 ** 
mstat_5DivorcedSeparated -2.568e-01  1.769e-01  -1.452 0.146583    
mstat_5Widow             -8.526e-01  2.386e-01  -3.574 0.000352 ***
act_tobYes               -9.212e-02  9.428e-02  -0.977 0.328518    
max_ch                    3.083e-02  6.344e-03   4.860 1.17e-06 ***
IC                        1.089e+00  7.017e-02  15.525  < 2e-16 ***
pop_dens                 -1.959e-05  1.003e-05  -1.954 0.050727 .  
r_pct                    -9.281e-03  2.273e-03  -4.084 4.44e-05 ***
RPL_THEME1                7.734e-02  1.701e-01   0.455 0.649370    
RPL_THEME2               -4.546e-01  1.496e-01  -3.038 0.002383 ** 
RPL_THEME3               -5.362e-02  1.213e-01  -0.442 0.658510    
RPL_THEME4               -1.194e-01  1.269e-01  -0.941 0.346689    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 7714.8  on 6407  degrees of freedom
Residual deviance: 7227.3  on 6383  degrees of freedom
  (8800 observations deleted due to missingness)
AIC: 7277.3

Number of Fisher Scoring iterations: 5
broom::glance(pneummo_full3)
broom::tidy(pneummo_full3, exponentiate = TRUE)
model_performance(pneummo_full3)
# Indices of model performance

AIC      |      BIC | Tjur's R2 |  RMSE | Sigma | Log_loss | Score_log | Score_spherical |   PCP
------------------------------------------------------------------------------------------------
7277.291 | 7446.424 |     0.073 | 0.437 | 1.064 |    0.564 |      -Inf |       1.724e-04 | 0.618
tbl_regression(pneummo_full3, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEME1 ~ "Soceioeconomic Status", RPL_THEME2 ~ "Household Composition", RPL_THEME3 ~ "Minority Status and Language", RPL_THEME4 ~ "Housing and Transportation", r_pct ~ "Percent Republican", relig_affil ~ "Any Religious Affiliation", mstat_5 ~ "Marital Status", pop_dens ~ "Population Density", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Immunocompromised", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
Characteristic OR1 95% CI1 p-value
IBD Type
    CD — —
    UC 0.88 0.78, 1.00 0.045
    Unspecified 0.08 0.00, 0.38 0.014
Age 1.01 1.01, 1.02 <0.001
Gender
    Male — —
    Female 0.97 0.86, 1.09 0.6
Race
    White — —
    Black 0.63 0.48, 0.80 <0.001
    Asian 0.95 0.66, 1.34 0.8
    Native 1.24 0.48, 2.98 0.6
    Other 0.64 0.44, 0.90 0.012
Ethnicity
    NonHispanic — —
    Hispanic 1.29 0.86, 1.91 0.2
Preferred Language
    English — —
    Other 0.64 0.32, 1.18 0.2
Any Religious Affiliation
    Yes — —
    No 0.90 0.80, 1.02 0.10
Marital Status
    Married — —
    Unknown 0.70 0.59, 0.82 <0.001
    Unmarried 0.79 0.68, 0.92 0.002
    DivorcedSeparated 0.77 0.54, 1.09 0.15
    Widow 0.43 0.26, 0.67 <0.001
Active Tobacco Use
    No — —
    Yes 0.91 0.76, 1.10 0.3
Charlson Comorbidity Index 1.03 1.02, 1.04 <0.001
Immunocompromised 2.97 2.59, 3.41 <0.001
Population Density 1.00 1.00, 1.00 0.051
Percent Republican 0.99 0.99, 1.00 <0.001
Soceioeconomic Status 1.08 0.77, 1.51 0.6
Household Composition 0.63 0.47, 0.85 0.002
Minority Status and Language 0.95 0.75, 1.20 0.7
Housing and Transportation 0.89 0.69, 1.14 0.3
1 OR = Odds Ratio, CI = Confidence Interval

performance::check_model(pneummo_full3, panel = TRUE)

LS0tCnRpdGxlOiAiUG5ldW1vbmlhIE1vZGVscyIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0aGVtZXM6IHBhcGVyCiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKZWRpdG9yX29wdGlvbnM6CiAgY2h1bmtfb3V0cHV0X3R5cGU6IGlubGluZQpkYXRlOiAnMjAyMi0xMS0yNycKLS0tCiMgTG9hZCBQYWNrYWdlcyAKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KGNvZGVib29rcikKbGlicmFyeShzdW1tYXJ5dG9vbHMpCmxpYnJhcnkoYnJvb20pIApsaWJyYXJ5KHBlcmZvcm1hbmNlKQpsaWJyYXJ5KGd0KQpsaWJyYXJ5KGd0c3VtbWFyeSkKbGlicmFyeShqYW5pdG9yKQpsaWJyYXJ5KGZvcmNhdHMpCmxpYnJhcnkoaGVyZSkKbGlicmFyeShtYXJnaW5zKQpsaWJyYXJ5KGdncGxvdDIpCmBgYAoKIyBJbXBvcnQgRGF0YSAKYGBge3J9CmxvYWQoZmlsZSA9ICJ+L0Rlc2t0b3AvUi1Db2RlL1NET0hfVmF4L3ZheF9jbGVhbjEucmRhIikKCgpgYGAKCgpEYXRhIENsZWFuaW5nCmBgYHtyfQp2YXhfY2xlYW4xICU+JSAKbXV0YXRlKHB2YXhfMiA9IGNhc2Vfd2hlbihwdmF4Pj0gMSB+ICcxJyxUUlVFIH4gIjAiKSkgJT4lIAogIG11dGF0ZShwcmV2bmFyXzIgPSBjYXNlX3doZW4ocHJldm5hcj49IDEgfiAnMScsVFJVRSB+ICIwIikpIC0+IHBuZXVtb18xCgpwbmV1bW9fMSRwdmF4XzIgPSBhcy5udW1lcmljKHBuZXVtb18xJHB2YXhfMikKcG5ldW1vXzEkcHJldm5hcl8yID0gYXMubnVtZXJpYyhwbmV1bW9fMSRwcmV2bmFyXzIpCgpwbmV1bW9fMSAlPiUgCiAgbXV0YXRlKHBuZXVtb19jb3VudCA9IHB2YXhfMiArIHByZXZuYXJfMikgLT4gcG5ldW1vX2NsZWFuCgpwbmV1bW9fY2xlYW4gJT4lIAogIG11dGF0ZShwbmV1bW9fMiA9IGNhc2Vfd2hlbihwbmV1bW9fY291bnQ+PSAyIH4gJzEnLFRSVUUgfiAiMCIpKSAtPiBwbmV1bW9fY2xlYW4xCgpwbmV1bW9fY2xlYW4xJHBuZXVtb18yID0gYXMubnVtZXJpYyhwbmV1bW9fY2xlYW4xJHBuZXVtb18yKQoKICAKYGBgCgojIEJhc2VsaW5lIGNoYXJhY3RlcmlzdGljcyAKYGBge3J9CnBuZXVtb19jbGVhbjEgJT4lIAogIGRwbHlyOjpzZWxlY3QoaWJkXzMsIGFnZV95cnMsIGdlbmRlciwgcmFjZV81LCBldGhuaWNfMywgbGFuZ18zLCByZWxpZ19hZmZpbCwgbXN0YXRfNSwgYWN0X3RvYiwgbWF4X2NoLCBJQywgcG9wX2RlbnMscl9wY3QsIHB2YXhfMiwgcHJldm5hcl8yLCBwbmV1bW9fY291bnQsIHBuZXVtb18yLCBSUExfVEhFTUVTLCBSUExfNCwgUlBMX1RIRU1FMSwgUlBMX1RIRU1FMiwgUlBMX1RIRU1FMywgUlBMX1RIRU1FNCkgLT4gcG5ldW1vX2Jhc2VsaW5lCnBuZXVtb19iYXNlbGluZSAlPiUgdGJsX3N1bW1hcnkobGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgcmFjZV81IH4gIlJhY2UiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJpbWFyeSBMYW5ndWFnZSIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gRGVuc2l0eSIsIFJQTF80IH4gIlNWSSBRdWFydGlsZXMiLCByX3BjdCB+ICJQZXJjZW50IFJlcHVibGljYW4iLCBhY3RfdG9iIH4iQWN0aXZlIFRvYmFjY28gVXNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgaWJkXzMgfiAiSUJEIFR5cGUiLCBwdmF4XzIgfiAiUG5ldW1vdmF4IiwgcHJldm5hcl8yIH4gIlByZXZuYXIiLCBwbmV1bW9fY291bnQgfiAiVG90YWwgUG5ldW1vbmlhIFZhY2NpbmVzIiwgSUMgfiAiSW1tdW5vY29tcHJvbWlzZWQiLCBwbmV1bW9fMiB+ICJGdWxseSBWYWNjaW5hdGVkIiksCiAgICAgICAgc3RhdGlzdGljID0gbGlzdChhbGxfY29udGludW91cygpIH4gInttZWFufSAoe3NkfSkiKSwKICAgICAgICBtaXNzaW5nX3RleHQgPSAiKE1pc3NpbmcpIikKYGBgCiMgQml2YXJpYXRlIEFuYWx5c2lzIHsudGFic2V0fQojIyBUb3RhbCBwbmV1bW9uaWEgY291bnQgKG5lZ2F0aXZlIGJpbm9taWFsKQpgYGB7cn0KbGlicmFyeShNQVNTKQp0b3RfcG5ldW1vX2JpdiA8LQogIHRibF91dnJlZ3Jlc3Npb24oCiAgICBwbmV1bW9fY2xlYW4xW2MoInBuZXVtb19jb3VudCIsICJpYmRfMyIsICJhZ2VfeXJzIiwgImdlbmRlciIsICJyYWNlXzUiLCAiZXRobmljXzMiLCAibGFuZ18zIiwgIm1zdGF0XzUiLCAicmVsaWdfYWZmaWwiLCAiYWN0X3RvYiIsICJtYXhfY2giLCAiSUMiLCAicG9wX2RlbnMiLCAicl9wY3QiLCAiUlBMX1RIRU1FUyIsICJSUExfVEhFTUUxIiwgIlJQTF9USEVNRTIiLCAiUlBMX1RIRU1FMyIsICJSUExfVEhFTUU0IildLAogICAgbWV0aG9kID0gZ2xtLm5iLAogICAgeSA9IHBuZXVtb19jb3VudCwKICAgIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByYWNlXzUgfiAiUmFjZSIsIFJQTF9USEVNRVMgfiAiVG90YWwgU1ZJIiwgUlBMX1RIRU1FMSB+ICJTb2NlaW9lY29ub21pYyBTdGF0dXMiLCBSUExfVEhFTUUyIH4gIkhvdXNlaG9sZCBDb21wb3NpdGlvbiIsIFJQTF9USEVNRTMgfiAiTWlub3JpdHkgU3RhdHVzIGFuZCBMYW5ndWFnZSIsIFJQTF9USEVNRTQgfiAiSG91c2luZyBhbmQgVHJhbnNwb3J0YXRpb24iLCByX3BjdCB+ICJQZXJjZW50IFJlcHVibGljYW4iLCByZWxpZ19hZmZpbCB+ICJBbnkgUmVsaWdpb3VzIEFmZmlsaWF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gRGVuc2l0eSIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBJQyB+ICJJbW11bm9jb21wcm9taXNlZCIsIGliZF8zIH4gIklCRCBUeXBlIiksCiAgZXhwb25lbnRpYXRlID0gVFJVRSkKcHJpbnQodG90X3BuZXVtb19iaXYsIG1ldGhvZCA9IHJlbmRlcikKYGBgCgojIyBGdWxseSB2YWNjaW5hdGVkIChsb2dpc3RpYykKYGBge3J9CnBuZXVtb19mdWxsX2JpdiA8LQogIHRibF91dnJlZ3Jlc3Npb24oCiAgICBwbmV1bW9fY2xlYW4xW2MoInBuZXVtb18yIiwgImliZF8zIiwgImFnZV95cnMiLCAiZ2VuZGVyIiwgInJhY2VfNSIsICJldGhuaWNfMyIsICJsYW5nXzMiLCAibXN0YXRfNSIsICJyZWxpZ19hZmZpbCIsICJhY3RfdG9iIiwgIm1heF9jaCIsICJJQyIsICJwb3BfZGVucyIsICJyX3BjdCIsICJSUExfVEhFTUVTIiwgIlJQTF9USEVNRTEiLCAiUlBMX1RIRU1FMiIsICJSUExfVEhFTUUzIiwgIlJQTF9USEVNRTQiKV0sCiAgICBtZXRob2QgPSBnbG0sCiAgICB5ID0gcG5ldW1vXzIsCiAgICBtZXRob2QuYXJncyA9IGxpc3QoZmFtaWx5ID0gYmlub21pYWwpLAogICAgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJhY2VfNSB+ICJSYWNlIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBSUExfVEhFTUUxIH4gIlNvY2Vpb2Vjb25vbWljIFN0YXR1cyIsIFJQTF9USEVNRTIgfiAiSG91c2Vob2xkIENvbXBvc2l0aW9uIiwgUlBMX1RIRU1FMyB+ICJNaW5vcml0eSBTdGF0dXMgYW5kIExhbmd1YWdlIiwgUlBMX1RIRU1FNCB+ICJIb3VzaW5nIGFuZCBUcmFuc3BvcnRhdGlvbiIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBEZW5zaXR5IiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIElDIH4gIkltbXVub2NvbXByb21pc2VkIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSwKICBleHBvbmVudGlhdGUgPSBUUlVFKQpwcmludChwbmV1bW9fZnVsbF9iaXYsIG1ldGhvZCA9IHJlbmRlcikKYGBgCgoKIyBUb3RhbCBQbmV1bW9uaWEgY291bnQgKG5lZ2F0aXZlIGJpbm9taWFsKSB7LnRhYnNldH0KIyMgU1ZJIENvbnRpbnVvdXMgCmBgYHtyfQpwbmV1bW9fbmIgPC0gZ2xtLm5iKHBuZXVtb19jb3VudCB+IGliZF8zICsgYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICsgcmVsaWdfYWZmaWwgKyBtc3RhdF81ICsgYWN0X3RvYiArIG1heF9jaCArIElDICsgcG9wX2RlbnMgKyByX3BjdCArIFJQTF9USEVNRVMsCiAgICAgICAgICAgICAgIGRhdGEgPSBwbmV1bW9fY2xlYW4xKSAKc3VtbWFyeShwbmV1bW9fbmIpCmJyb29tOjpnbGFuY2UocG5ldW1vX25iKQpicm9vbTo6dGlkeShwbmV1bW9fbmIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKHBuZXVtb19uYikKdGJsX3JlZ3Jlc3Npb24ocG5ldW1vX25iLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmFjZV81IH4gIlJhY2UiLCBSUExfVEhFTUVTIH4gIlRvdGFsIFNWSSIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBEZW5zaXR5IiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIElDIH4gIkltbXVub2NvbXByb21pc2VkIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCiMgTkIgUmVzaWR1YWwgUGxvdApwbmV1bW9fbmJfcmVzIDwtIHJlc2lkKHBuZXVtb19uYikKcGxvdChmaXR0ZWQocG5ldW1vX25iKSwgcG5ldW1vX25iX3JlcywgY29sPSdzdGVlbGJsdWUnLCBwY2g9MTYsCiAgICAgeGxhYj0nUHJlZGljdGVkIFZhY2NpbmVzJywgeWxhYj0nU3RhbmRhcmRpemVkIFJlc2lkdWFscycsIG1haW49J05lZ2F0aXZlIEJpbm9taWFsJykKYWJsaW5lKDAsMCkKIyBOQiByZWdyZXNzaW9uIG1vcmUgYXBwcm9wcmlhdGUgYmVjYXVzZSByZXNpZHVhbHMgb2YgdGhlIG1vZGVsIGFyZSBzbWFsbGVyIAoKIyBMaWtlbGlob29kIHJhdGlvIHRlc3QgCnBjaGlzcSgyICogKGxvZ0xpayhwbmV1bW9fbmIpIC0gbG9nTGlrKHBuZXVtb19uYikpLCBkZiA9IDEsIGxvd2VyLnRhaWwgPSBGQUxTRSkKIyBwLXZhbHVlIG9mIGxvZ2xpayBpcyA8IDAuMDUgc28gTkIgcmVncmVzc2lvbiBpcyB0aGUgbW9yZSBhcHByb3ByaWF0ZSBtb2RlbCAKCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChwbmV1bW9fbmIsIHBhbmVsID0gVFJVRSkKYGBgCgojIyBTVkkgUXVhcnRpbGVzIApgYGB7cn0KcG5ldW1vX25iMiA8LSBnbG0ubmIocG5ldW1vX2NvdW50IH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgKyByZWxpZ19hZmZpbCArIG1zdGF0XzUgKyBhY3RfdG9iICsgbWF4X2NoICsgSUMgKyBwb3BfZGVucyArIHJfcGN0ICsgUlBMXzQsCiAgICAgICAgICAgICAgIGRhdGEgPSBwbmV1bW9fY2xlYW4xKSAKc3VtbWFyeShwbmV1bW9fbmIyKQpicm9vbTo6Z2xhbmNlKHBuZXVtb19uYjIpCmJyb29tOjp0aWR5KHBuZXVtb19uYjIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKHBuZXVtb19uYjIpCnRibF9yZWdyZXNzaW9uKHBuZXVtb19uYjIsIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByYWNlXzUgfiAiUmFjZSIsIFJQTF80IH4gIlNWSSBRdWFydGlsZSIsIHJfcGN0IH4gIlBlcmNlbnQgUmVwdWJsaWNhbiIsIHJlbGlnX2FmZmlsIH4gIkFueSBSZWxpZ2lvdXMgQWZmaWxpYXRpb24iLCBtc3RhdF81IH4gIk1hcml0YWwgU3RhdHVzIiwgcG9wX2RlbnMgfiAiUG9wdWxhdGlvbiBEZW5zaXR5IiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIElDIH4gIkltbXVub2NvbXByb21pc2VkIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKCnBlcmZvcm1hbmNlOjpjaGVja19tb2RlbChwbmV1bW9fbmIyLCBwYW5lbCA9IFRSVUUpCmBgYAoKIyMgQWxsIHRoZW1lcyAKYGBge3J9CnBuZXVtb19uYjMgPC0gZ2xtLm5iKHBuZXVtb19jb3VudCB+IGliZF8zICsgYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICsgcmVsaWdfYWZmaWwgKyBtc3RhdF81ICsgYWN0X3RvYiArIG1heF9jaCArIElDICsgcG9wX2RlbnMgKyByX3BjdCArIFJQTF9USEVNRTEKICAgICAgICAgICAgICAgICAgICArIFJQTF9USEVNRTIgKyBSUExfVEhFTUUzICsgUlBMX1RIRU1FNCwKICAgICAgICAgICAgICAgZGF0YSA9IHBuZXVtb19jbGVhbjEpIApzdW1tYXJ5KHBuZXVtb19uYjMpCmJyb29tOjpnbGFuY2UocG5ldW1vX25iMykKYnJvb206OnRpZHkocG5ldW1vX25iMywgZXhwb25lbnRpYXRlID0gVFJVRSkKbW9kZWxfcGVyZm9ybWFuY2UocG5ldW1vX25iMykKdGJsX3JlZ3Jlc3Npb24ocG5ldW1vX25iMywgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJhY2VfNSB+ICJSYWNlIiwgUlBMX1RIRU1FMSB+ICJTb2NlaW9lY29ub21pYyBTdGF0dXMiLCBSUExfVEhFTUUyIH4gIkhvdXNlaG9sZCBDb21wb3NpdGlvbiIsIFJQTF9USEVNRTMgfiAiTWlub3JpdHkgU3RhdHVzIGFuZCBMYW5ndWFnZSIsIFJQTF9USEVNRTQgfiAiSG91c2luZyBhbmQgVHJhbnNwb3J0YXRpb24iLCByX3BjdCB+ICJQZXJjZW50IFJlcHVibGljYW4iLCByZWxpZ19hZmZpbCB+ICJBbnkgUmVsaWdpb3VzIEFmZmlsaWF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gRGVuc2l0eSIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBJQyB+ICJJbW11bm9jb21wcm9taXNlZCIsIGliZF8zIH4gIklCRCBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCgpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwocG5ldW1vX25iMywgcGFuZWwgPSBUUlVFKQpgYGAKCiMgRnVsbHkgVmFjY2luYXRlZCAobG9naXN0aWMgcmVncmVzc2lvbikgey50YWJzZXR9CgojIyBTVkkgQ29udGludW91cyAKYGBge3J9CnBuZXVtb19mdWxsMSA8LSBnbG0ocG5ldW1vXzIgfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyArIHJlbGlnX2FmZmlsICsgbXN0YXRfNSArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIHBvcF9kZW5zICsgcl9wY3QgKyBSUExfVEhFTUVTLAogICAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwsIAogICAgICAgICAgICAgICBkYXRhID0gcG5ldW1vX2NsZWFuMSkgCnN1bW1hcnkocG5ldW1vX2Z1bGwxKQpicm9vbTo6Z2xhbmNlKHBuZXVtb19mdWxsMSkKYnJvb206OnRpZHkocG5ldW1vX2Z1bGwxLCBleHBvbmVudGlhdGUgPSBUUlVFKQptb2RlbF9wZXJmb3JtYW5jZShwbmV1bW9fZnVsbDEpCnRibF9yZWdyZXNzaW9uKHBuZXVtb19mdWxsMSwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJhY2VfNSB+ICJSYWNlIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCByX3BjdCB+ICJQZXJjZW50IFJlcHVibGljYW4iLCByZWxpZ19hZmZpbCB+ICJBbnkgUmVsaWdpb3VzIEFmZmlsaWF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gRGVuc2l0eSIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBJQyB+ICJJbW11bm9jb21wcm9taXNlZCIsIGliZF8zIH4gIklCRCBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCgpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwocG5ldW1vX2Z1bGwxLCBwYW5lbCA9IFRSVUUpCmBgYAojIyBTVkkgUXVhcnRpbGVzIApgYGB7cn0KcG5ldW1vX2Z1bGwyIDwtIGdsbShwbmV1bW9fMiB+IGliZF8zICsgYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICsgcmVsaWdfYWZmaWwgKyBtc3RhdF81ICsgYWN0X3RvYiArIG1heF9jaCArIElDICsgcG9wX2RlbnMgKyByX3BjdCArIFJQTF80LAogICAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwsCiAgICAgICAgICAgICAgIGRhdGEgPSBwbmV1bW9fY2xlYW4xKSAKc3VtbWFyeShwbmV1bW9fZnVsbDIpCmJyb29tOjpnbGFuY2UocG5ldW1vX2Z1bGwyKQpicm9vbTo6dGlkeShwbmV1bW9fZnVsbDIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKHBuZXVtb19mdWxsMikKdGJsX3JlZ3Jlc3Npb24ocG5ldW1vX2Z1bGwyLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmFjZV81IH4gIlJhY2UiLCBSUExfNCB+ICJTVkkgUXVhcnRpbGUiLCByX3BjdCB+ICJQZXJjZW50IFJlcHVibGljYW4iLCByZWxpZ19hZmZpbCB+ICJBbnkgUmVsaWdpb3VzIEFmZmlsaWF0aW9uIiwgbXN0YXRfNSB+ICJNYXJpdGFsIFN0YXR1cyIsIHBvcF9kZW5zIH4gIlBvcHVsYXRpb24gRGVuc2l0eSIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBJQyB+ICJJbW11bm9jb21wcm9taXNlZCIsIGliZF8zIH4gIklCRCBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCgpwZXJmb3JtYW5jZTo6Y2hlY2tfbW9kZWwocG5ldW1vX2Z1bGwyLCBwYW5lbCA9IFRSVUUpCmBgYAoKIyMgQWxsIFRoZW1lcyAKYGBge3J9CnBuZXVtbW9fZnVsbDMgPC0gZ2xtKHBuZXVtb18yIH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgKyByZWxpZ19hZmZpbCArIG1zdGF0XzUgKyBhY3RfdG9iICsgbWF4X2NoICsgSUMgKyBwb3BfZGVucyArIHJfcGN0ICsgUlBMX1RIRU1FMQogICAgICAgICAgICAgICAgICAgICsgUlBMX1RIRU1FMiArIFJQTF9USEVNRTMgKyBSUExfVEhFTUU0LAogICAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwsCiAgICAgICAgICAgICAgIGRhdGEgPSBwbmV1bW9fY2xlYW4xKSAKc3VtbWFyeShwbmV1bW1vX2Z1bGwzKQpicm9vbTo6Z2xhbmNlKHBuZXVtbW9fZnVsbDMpCmJyb29tOjp0aWR5KHBuZXVtbW9fZnVsbDMsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKHBuZXVtbW9fZnVsbDMpCnRibF9yZWdyZXNzaW9uKHBuZXVtbW9fZnVsbDMsIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByYWNlXzUgfiAiUmFjZSIsIFJQTF9USEVNRTEgfiAiU29jZWlvZWNvbm9taWMgU3RhdHVzIiwgUlBMX1RIRU1FMiB+ICJIb3VzZWhvbGQgQ29tcG9zaXRpb24iLCBSUExfVEhFTUUzIH4gIk1pbm9yaXR5IFN0YXR1cyBhbmQgTGFuZ3VhZ2UiLCBSUExfVEhFTUU0IH4gIkhvdXNpbmcgYW5kIFRyYW5zcG9ydGF0aW9uIiwgcl9wY3QgfiAiUGVyY2VudCBSZXB1YmxpY2FuIiwgcmVsaWdfYWZmaWwgfiAiQW55IFJlbGlnaW91cyBBZmZpbGlhdGlvbiIsIG1zdGF0XzUgfiAiTWFyaXRhbCBTdGF0dXMiLCBwb3BfZGVucyB+ICJQb3B1bGF0aW9uIERlbnNpdHkiLCBhY3RfdG9iIH4iQWN0aXZlIFRvYmFjY28gVXNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgSUMgfiAiSW1tdW5vY29tcHJvbWlzZWQiLCBpYmRfMyB+ICJJQkQgVHlwZSIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKcGVyZm9ybWFuY2U6OmNoZWNrX21vZGVsKHBuZXVtbW9fZnVsbDMsIHBhbmVsID0gVFJVRSkKYGBgCgo=