you need to hand-load vax_dataset,
ibd_first_last_encounter,admit_count, ED_visits_11_22_22,
IBD_surgery_11_17_22 prior to running this code
Load Packages
library(tidyverse)
── Attaching packages ───────────────────────────────────── tidyverse 1.3.2 ──✔ ggplot2 3.3.6 ✔ purrr 0.3.5
✔ tibble 3.1.8 ✔ dplyr 1.0.10
✔ tidyr 1.2.1 ✔ stringr 1.4.1
✔ readr 2.1.3 ✔ forcats 0.5.2 ── Conflicts ──────────────────────────────────────── tidyverse_conflicts() ──
✖ lubridate::as.difftime() masks base::as.difftime()
✖ lubridate::date() masks base::date()
✖ dplyr::filter() masks stats::filter()
✖ lubridate::intersect() masks base::intersect()
✖ dplyr::lag() masks stats::lag()
✖ lubridate::setdiff() masks base::setdiff()
✖ lubridate::union() masks base::union()
library(codebookr)
library(broom)
library(performance)
library(gt)
library(gtsummary)
#StandWithUkraine
library(janitor)
Attaching package: ‘janitor’
The following objects are masked from ‘package:stats’:
chisq.test, fisher.test
library(forcats)
library(here)
here() starts at /nfs/isilon/path-ibdx/jsheehan
view(vax_dataset)
view(ibd_first_last_encounter)
Data Cleaning
Make person years variable, exclude those with less than 1 year of
data
ibd_first_last_encounter$pdays <- ibd_first_last_encounter$last_enc - ibd_first_last_encounter$first_enc
ibd_first_last_encounter$pdays = as.numeric(ibd_first_last_encounter$pdays)
ibd_first_last_encounter %>%
mutate(pyears = pdays/365) -> ibd_pyears
pyears_ibd <- subset(ibd_pyears, pyears >= 1)
pyears_ibd %>%
dplyr::select(sbj_id, pyears) -> sbj_pyears
Merge with vax_data_set
sbj_pyears$sbj_id = as.numeric(sbj_pyears$sbj_id)
use_1 <- left_join(x= vax_dataset, y = sbj_pyears, by = "sbj_id")
mutate(admit_2 = case_when(IBD_hosp>= 1 ~ '1',TRUE ~ "0")) %>%
dplyr::select(sbj_id, admit_2) -> admit_long
ddply(admit_long,.(sbj_id, admit_2),nrow) -> admit_count
Make new hospitalization variable
IBD_hospitalizations_11_30_22 %>%
dplyr::select(sbj_id, IBD_hosp) -> sbj_admits
sbj_admits[sbj_admits == 0] <- NA
sbj_admits.omit <- na.omit(sbj_admits)
ddply(sbj_admits.omit,.(sbj_id, IBD_hosp),nrow) -> admit_count
Merge admit_count data
admit_count$sbj_id = as.numeric(admit_count$sbj_id)
use_1$sbj_id = as.numeric(use_1$sbj_id)
left_join(x = use_1, y = admit_count, by = "sbj_id") -> utilize_2
Rename V1 to admit_count
colnames(utilize_2)[colnames(utilize_2) == "V1"] <- "num_admits"
utilize_2$num_admits = as.numeric(utilize_2$num_admits)
utilize_2 %>%
mutate(num_admits = coalesce(num_admits, 0)) -> utilize_3
Make ED Count Variable
ED_visits_11_22_22$sbj_id = as.factor(ED_visits_11_22_22$sbj_id)
ED_visits_11_22_22 %>%
mutate(ed_2 = case_when(ed_days>= 0 ~ '1',TRUE ~ "0")) %>%
dplyr::select(sbj_id, ed_2) -> ED_visits
ddply(ED_visits,.(sbj_id, ed_2),nrow) -> ED_count
Merge ED count data
utilize_3$sbj_id = as.numeric(utilize_3$sbj_id)
ED_count$sbj_id = as.numeric(ED_count$sbj_id)
left_join(x = utilize_3, y = ED_count, by = "sbj_id") -> use_4
Rename ED visit variable
colnames(use_4)[colnames(use_4) == "V1"] <- "ed_count"
use_4$ed_count = as.numeric(use_4$ed_count)
use_4 %>%
mutate(ed_count = coalesce(ed_count, 0)) -> use_5
Make surgery count variable
IBD_surgery_11_17_22 %>%
mutate(surg_2 = case_when(sbj_id>= 0 ~ '1',TRUE ~ "0")) %>%
dplyr::select(sbj_id, surg_2) -> surgeries
ddply(surgeries,.(sbj_id, surg_2),nrow) -> surg_count
Merge surgery data
use_5$sbj_id = as.numeric(use_5$sbj_id)
surg_count$sbj_id = as.numeric(surg_count$sbj_id)
left_join(x = use_5, y = surg_count, by = "sbj_id") -> use_6
Rename surg count variable and get change NA to zeros
colnames(use_6)[colnames(use_6) == "V1"] <- "surg_count"
use_6$surg_count = as.numeric(use_6$surg_count)
use_6 %>%
mutate(surg_count = coalesce(surg_count, 0)) -> use_7
Make readmission variable
IBD_hospitalizations_11_30_22 %>%
dplyr::select(sbj_id, readmit) -> readmits
readmits$readmit<-ifelse(readmits$readmit=="Y",1,0)
readmits[readmits == 0] <- NA
readmits.omit <- na.omit(readmits)
ddply(readmits.omit,.(sbj_id, readmit),nrow) -> readmit_count
Merge readmit data
readmit_count$sbj_id = as.numeric(readmit_count$sbj_id)
use_7$sbj_id = as.numeric(use_7$sbj_id)
left_join(x = use_7, y = readmit_count, by = "sbj_id") -> use_8
Rename readmission variable
colnames(use_8)[colnames(use_8) == "V1"] <- "readmit_count"
use_8$readmit_count = as.numeric(use_8$readmit_count)
use_8 %>%
mutate(readmit_count = coalesce(readmit_count, 0)) -> use_9
Make LOS long and average
IBD_hospitalizations_11_30_22 %>%
dplyr::select(sbj_id, inpatient_days) -> sbj_id_los
sbj_id_los %>%
# build grouping by combination of variables
dplyr::group_by(sbj_id) %>%
# add row number which works per group due to prior grouping
dplyr::mutate(numbers = dplyr::row_number()) %>%
# ungroup to prevent unexpected behaviour down stream
dplyr::ungroup() -> los_numbers
spread(los_numbers, key = numbers, value = inpatient_days) -> los_wide
los_wide$mean_los=rowMeans(los_wide[,c(2:41)], na.rm=TRUE)
los_wide%>%
dplyr::select(sbj_id, mean_los) -> mean_days
Merge LOS data
mean_days$sbj_id = as.numeric(mean_days$sbj_id)
use_9$sbj_id = as.numeric(use_9$sbj_id)
left_join(use_9, mean_days, by = "sbj_id") -> ut_clean1
ut_clean1$num_admits = as.factor(ut_clean1$num_admits)
ut_clean1$ed_count = as.factor(ut_clean1$ed_count)
ut_clean1$readmit_count = as.factor(ut_clean1$readmit_count)
Baseline Characteristics
ut_clean1 %>%
dplyr::select(ibd_3, age_yrs, gender, race_5, ethnic_3, lang_3, max_ch, IC, act_tob, num_admits, ed_count, surg_count, readmit_count, mean_los) -> ut_baseline
ut_baseline %>% tbl_summary(label = list(ibd_3 ~ "IBD Diagnosis", age_yrs ~ "Age", gender~ "Gender", race_5 ~ "Race", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language"),
statistic = list(all_continuous() ~ "{mean} ({sd})"),
missing_text = "(Missing)")
| Characteristic |
N = 15,208 |
| IBD Diagnosis |
|
| 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 |
| Preferred Language |
|
| English |
15,046 (99%) |
| Other |
162 (1.1%) |
| max_ch |
3.3 (4.9) |
| (Missing) |
435 |
| IC |
7,111 (47%) |
| act_tob |
|
| No |
12,593 (87%) |
| Yes |
1,878 (13%) |
| NOT ASKED |
0 (0%) |
| (Missing) |
737 |
| num_admits |
|
| 0 |
11,137 (73%) |
| 1 |
2,159 (14%) |
| 2 |
859 (5.6%) |
| 3 |
432 (2.8%) |
| 4 |
217 (1.4%) |
| 5 |
133 (0.9%) |
| 6 |
76 (0.5%) |
| 7 |
52 (0.3%) |
| 8 |
32 (0.2%) |
| 9 |
26 (0.2%) |
| 10 |
12 (<0.1%) |
| 11 |
17 (0.1%) |
| 12 |
8 (<0.1%) |
| 13 |
13 (<0.1%) |
| 14 |
9 (<0.1%) |
| 15 |
6 (<0.1%) |
| 16 |
1 (<0.1%) |
| 17 |
2 (<0.1%) |
| 18 |
1 (<0.1%) |
| 19 |
3 (<0.1%) |
| 20 |
4 (<0.1%) |
| 22 |
3 (<0.1%) |
| 26 |
2 (<0.1%) |
| 29 |
1 (<0.1%) |
| 30 |
1 (<0.1%) |
| 32 |
1 (<0.1%) |
| 35 |
1 (<0.1%) |
| ed_count |
|
| 0 |
13,231 (87%) |
| 1 |
1,308 (8.6%) |
| 2 |
370 (2.4%) |
| 3 |
114 (0.7%) |
| 4 |
62 (0.4%) |
| 5 |
33 (0.2%) |
| 6 |
26 (0.2%) |
| 7 |
17 (0.1%) |
| 8 |
7 (<0.1%) |
| 9 |
11 (<0.1%) |
| 10 |
8 (<0.1%) |
| 11 |
1 (<0.1%) |
| 12 |
3 (<0.1%) |
| 13 |
2 (<0.1%) |
| 14 |
5 (<0.1%) |
| 15 |
2 (<0.1%) |
| 16 |
3 (<0.1%) |
| 18 |
3 (<0.1%) |
| 19 |
1 (<0.1%) |
| 22 |
1 (<0.1%) |
| surg_count |
|
| 0 |
13,454 (88%) |
| 1 |
1,079 (7.1%) |
| 2 |
432 (2.8%) |
| 3 |
178 (1.2%) |
| 4 |
40 (0.3%) |
| 5 |
18 (0.1%) |
| 6 |
3 (<0.1%) |
| 7 |
2 (<0.1%) |
| 8 |
2 (<0.1%) |
| readmit_count |
|
| 0 |
14,356 (94%) |
| 1 |
564 (3.7%) |
| 2 |
145 (1.0%) |
| 3 |
71 (0.5%) |
| 4 |
25 (0.2%) |
| 5 |
12 (<0.1%) |
| 6 |
10 (<0.1%) |
| 7 |
4 (<0.1%) |
| 8 |
6 (<0.1%) |
| 9 |
1 (<0.1%) |
| 10 |
5 (<0.1%) |
| 11 |
3 (<0.1%) |
| 12 |
1 (<0.1%) |
| 14 |
2 (<0.1%) |
| 16 |
1 (<0.1%) |
| 18 |
2 (<0.1%) |
| mean_los |
5.3 (6.1) |
| (Missing) |
10,946 |
Bivariate analysis
Hospitalizations
Hospitalizations
Total SVI
library(MASS)
ut_clean1$num_admits = as.numeric(ut_clean1$num_admits)
admits.nb <- glm.nb(num_admits ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEMES,
offset(log(pyears)),
data = ut_clean1)
summary(admits.nb)
Call:
glm.nb(formula = num_admits ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEMES,
data = ut_clean1, weights = offset(log(pyears)), init.theta = 7.223965147,
link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.7926 -0.7421 -0.2962 0.0526 10.4417
Coefficients:
Estimate Std. Error z value
(Intercept) 0.3917295 0.0326036 12.015
ibd_3UC -0.0909401 0.0138504 -6.566
ibd_3Unspecified -0.3492108 0.1112171 -3.140
age_yrs -0.0056051 0.0004602 -12.180
genderFemale 0.0295595 0.0133026 2.222
race_5Black 0.1714237 0.0251101 6.827
race_5Asian -0.1644412 0.0477163 -3.446
race_5Native -0.2102921 0.1113673 -1.888
race_5Other -0.0102631 0.0411783 -0.249
ethnic_3Hispanic -0.0699396 0.0503400 -1.389
lang_3Other 0.0099557 0.0749167 0.133
mstat_5Unknown 0.1258660 0.0199318 6.315
mstat_5Unmarried -0.0214087 0.0173712 -1.232
mstat_5DivorcedSeparated 0.1020796 0.0354365 2.881
mstat_5Widow 0.2053962 0.0448163 4.583
act_tobYes 0.0934379 0.0198512 4.707
max_ch 0.0415718 0.0013175 31.553
IC 0.3768615 0.0148294 25.413
RPL_THEMES 0.1974175 0.0266912 7.396
Pr(>|z|)
(Intercept) < 2e-16 ***
ibd_3UC 5.17e-11 ***
ibd_3Unspecified 0.001690 **
age_yrs < 2e-16 ***
genderFemale 0.026277 *
race_5Black 8.68e-12 ***
race_5Asian 0.000568 ***
race_5Native 0.058989 .
race_5Other 0.803178
ethnic_3Hispanic 0.164728
lang_3Other 0.894280
mstat_5Unknown 2.70e-10 ***
mstat_5Unmarried 0.217791
mstat_5DivorcedSeparated 0.003969 **
mstat_5Widow 4.58e-06 ***
act_tobYes 2.51e-06 ***
max_ch < 2e-16 ***
IC < 2e-16 ***
RPL_THEMES 1.40e-13 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(7.224) family taken to be 1)
Null deviance: 13419 on 10930 degrees of freedom
Residual deviance: 11124 on 10912 degrees of freedom
(4269 observations deleted due to missingness)
AIC: 52476
Number of Fisher Scoring iterations: 1
Theta: 7.224
Std. Err.: 0.283
2 x log-likelihood: -52436.276
broom::glance(admits.nb)
broom::tidy(admits.nb, exponentiate = TRUE)
model_performance(admits.nb)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
52476.276 | 52622.263 | 0.268 | 1.708 | 1.010 | -1.578 | 0.009
tbl_regression(admits.nb, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Moderate to Severe Disease", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
0.91 |
0.89, 0.94 |
<0.001 |
| Unspecified |
0.71 |
0.56, 0.87 |
0.002 |
| Age |
0.99 |
0.99, 1.00 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.03 |
1.00, 1.06 |
0.026 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
1.19 |
1.13, 1.25 |
<0.001 |
| Asian |
0.85 |
0.77, 0.93 |
<0.001 |
| Native |
0.81 |
0.65, 1.00 |
0.059 |
| Other |
0.99 |
0.91, 1.07 |
0.8 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
0.93 |
0.84, 1.03 |
0.2 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
1.01 |
0.87, 1.17 |
0.9 |
| mstat_5 |
|
|
|
| Married |
— |
— |
|
| Unknown |
1.13 |
1.09, 1.18 |
<0.001 |
| Unmarried |
0.98 |
0.95, 1.01 |
0.2 |
| DivorcedSeparated |
1.11 |
1.03, 1.19 |
0.004 |
| Widow |
1.23 |
1.12, 1.34 |
<0.001 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
1.10 |
1.06, 1.14 |
<0.001 |
| Charlson Comorbidity Index |
1.04 |
1.04, 1.05 |
<0.001 |
| Moderate to Severe Disease |
1.46 |
1.42, 1.50 |
<0.001 |
| Total SVI |
1.22 |
1.16, 1.28 |
<0.001 |
NA
All Themes
admits.nb2 <- glm.nb(num_admits ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + mstat_5 + max_ch + IC + + act_tob + RPL_THEME1
+ RPL_THEME2 + RPL_THEME3 + RPL_THEME4,
offset(log(pyears)),
data = ut_clean1)
summary(admits.nb2)
Call:
glm.nb(formula = num_admits ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + mstat_5 + max_ch + IC + +act_tob + RPL_THEME1 +
RPL_THEME2 + RPL_THEME3 + RPL_THEME4, data = ut_clean1, weights = offset(log(pyears)),
init.theta = 7.183204388, link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.8477 -0.7385 -0.2989 0.0556 10.4045
Coefficients:
Estimate Std. Error z value
(Intercept) 0.389750 0.035358 11.023
ibd_3UC -0.090462 0.013902 -6.507
ibd_3Unspecified -0.350544 0.111272 -3.150
age_yrs -0.005596 0.000462 -12.113
genderFemale 0.028861 0.013349 2.162
race_5Black 0.166647 0.025626 6.503
race_5Asian -0.149410 0.048403 -3.087
race_5Native -0.215938 0.111496 -1.937
race_5Other -0.008467 0.041454 -0.204
ethnic_3Hispanic -0.060883 0.050507 -1.205
lang_3Other -0.008891 0.075818 -0.117
mstat_5Unknown 0.125518 0.019991 6.279
mstat_5Unmarried -0.021131 0.017458 -1.210
mstat_5DivorcedSeparated 0.103796 0.035506 2.923
mstat_5Widow 0.209667 0.044907 4.669
max_ch 0.041594 0.001323 31.449
IC 0.375128 0.014892 25.191
act_tobYes 0.087452 0.019938 4.386
RPL_THEME1 0.228140 0.038053 5.995
RPL_THEME2 0.022217 0.033291 0.667
RPL_THEME3 -0.002511 0.024186 -0.104
RPL_THEME4 -0.022670 0.027659 -0.820
Pr(>|z|)
(Intercept) < 2e-16 ***
ibd_3UC 7.65e-11 ***
ibd_3Unspecified 0.00163 **
age_yrs < 2e-16 ***
genderFemale 0.03062 *
race_5Black 7.87e-11 ***
race_5Asian 0.00202 **
race_5Native 0.05278 .
race_5Other 0.83817
ethnic_3Hispanic 0.22803
lang_3Other 0.90665
mstat_5Unknown 3.41e-10 ***
mstat_5Unmarried 0.22614
mstat_5DivorcedSeparated 0.00346 **
mstat_5Widow 3.03e-06 ***
max_ch < 2e-16 ***
IC < 2e-16 ***
act_tobYes 1.15e-05 ***
RPL_THEME1 2.03e-09 ***
RPL_THEME2 0.50454
RPL_THEME3 0.91732
RPL_THEME4 0.41242
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(7.1832) family taken to be 1)
Null deviance: 13351 on 10869 degrees of freedom
Residual deviance: 11053 on 10848 degrees of freedom
(4330 observations deleted due to missingness)
AIC: 52168
Number of Fisher Scoring iterations: 1
Theta: 7.183
Std. Err.: 0.281
2 x log-likelihood: -52122.063
broom::glance(admits.nb2)
broom::tidy(admits.nb2, exponentiate = TRUE)
model_performance(admits.nb2)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
52168.063 | 52335.819 | 0.270 | 1.711 | 1.009 | -1.579 | 0.009
tbl_regression(admits.nb2, 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", max_ch ~ "Charlson Comorbidity Index", IC ~ "Moderate to Severe Disease", ibd_3 ~ "IBD Type", act_tob ~ "Active Tobacco Use"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
0.91 |
0.89, 0.94 |
<0.001 |
| Unspecified |
0.70 |
0.56, 0.87 |
0.002 |
| Age |
0.99 |
0.99, 1.00 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.03 |
1.00, 1.06 |
0.031 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
1.18 |
1.12, 1.24 |
<0.001 |
| Asian |
0.86 |
0.78, 0.95 |
0.002 |
| Native |
0.81 |
0.64, 1.00 |
0.053 |
| Other |
0.99 |
0.91, 1.07 |
0.8 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
0.94 |
0.85, 1.04 |
0.2 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.99 |
0.85, 1.15 |
>0.9 |
| mstat_5 |
|
|
|
| Married |
— |
— |
|
| Unknown |
1.13 |
1.09, 1.18 |
<0.001 |
| Unmarried |
0.98 |
0.95, 1.01 |
0.2 |
| DivorcedSeparated |
1.11 |
1.03, 1.19 |
0.003 |
| Widow |
1.23 |
1.13, 1.35 |
<0.001 |
| Charlson Comorbidity Index |
1.04 |
1.04, 1.05 |
<0.001 |
| Moderate to Severe Disease |
1.46 |
1.41, 1.50 |
<0.001 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
1.09 |
1.05, 1.13 |
<0.001 |
| Soceioeconomic Status |
1.26 |
1.17, 1.35 |
<0.001 |
| Household Composition |
1.02 |
0.96, 1.09 |
0.5 |
| Minority Status and Language |
1.00 |
0.95, 1.05 |
>0.9 |
| Housing and Transportation |
0.98 |
0.93, 1.03 |
0.4 |
NA
ED Visits
SVI
ut_clean1$ed_count = as.numeric(ut_clean1$ed_count)
ed.nb <- glm.nb(ed_count ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + act_tob + mstat_5 + max_ch + IC + RPL_THEMES,
offset(log(pyears)),
data = use_7)
summary(ed.nb)
Call:
glm.nb(formula = ed_count ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + act_tob + mstat_5 + max_ch + IC + RPL_THEMES,
data = use_7, weights = offset(log(pyears)), init.theta = 0.1514506594,
link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.0473 -0.7522 -0.6451 -0.4113 6.4678
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.582752 0.128723 -12.296 < 2e-16 ***
ibd_3UC -0.033155 0.054751 -0.606 0.544809
ibd_3Unspecified 0.378116 0.346825 1.090 0.275616
age_yrs 0.001509 0.001828 0.826 0.408855
genderFemale 0.184720 0.052802 3.498 0.000468 ***
race_5Black -0.282472 0.112957 -2.501 0.012394 *
race_5Asian 0.057952 0.169176 0.343 0.731935
race_5Native -0.111512 0.417718 -0.267 0.789504
race_5Other 0.261556 0.154482 1.693 0.090433 .
ethnic_3Hispanic -0.124695 0.194623 -0.641 0.521716
lang_3Other 0.427002 0.258857 1.650 0.099032 .
act_tobYes -0.020520 0.082313 -0.249 0.803133
mstat_5Unknown -0.737323 0.089768 -8.214 < 2e-16 ***
mstat_5Unmarried -0.039180 0.067317 -0.582 0.560552
mstat_5DivorcedSeparated 0.140240 0.136489 1.027 0.304193
mstat_5Widow 0.143838 0.174693 0.823 0.410293
max_ch 0.004108 0.005527 0.743 0.457340
IC 0.076803 0.057309 1.340 0.180192
RPL_THEMES 0.109823 0.107205 1.024 0.305637
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(0.1515) family taken to be 1)
Null deviance: 6370.4 on 10930 degrees of freedom
Residual deviance: 6259.5 on 10912 degrees of freedom
(4269 observations deleted due to missingness)
AIC: 18001
Number of Fisher Scoring iterations: 1
Theta: 0.15145
Std. Err.: 0.00566
2 x log-likelihood: -17960.88500
broom::glance(ed.nb)
broom::tidy(ed.nb, exponentiate = TRUE)
model_performance(ed.nb)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
18000.885 | 18146.872 | 0.023 | 0.927 | 0.757 | -0.647 | 0.009
tbl_regression(ed.nb, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", max_ch ~ "Charlson Comorbidity Index", IC ~ "Moderate to Severe Disease", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
0.97 |
0.87, 1.08 |
0.5 |
| Unspecified |
1.46 |
0.75, 3.00 |
0.3 |
| Age |
1.00 |
1.00, 1.01 |
0.4 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.20 |
1.08, 1.33 |
<0.001 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.75 |
0.60, 0.94 |
0.012 |
| Asian |
1.06 |
0.76, 1.49 |
0.7 |
| Native |
0.89 |
0.39, 2.11 |
0.8 |
| Other |
1.30 |
0.96, 1.78 |
0.090 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
0.88 |
0.61, 1.30 |
0.5 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
1.53 |
0.93, 2.61 |
0.10 |
| act_tob |
|
|
|
| No |
— |
— |
|
| Yes |
0.98 |
0.83, 1.15 |
0.8 |
| mstat_5 |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.48 |
0.40, 0.57 |
<0.001 |
| Unmarried |
0.96 |
0.84, 1.10 |
0.6 |
| DivorcedSeparated |
1.15 |
0.88, 1.51 |
0.3 |
| Widow |
1.15 |
0.82, 1.64 |
0.4 |
| Charlson Comorbidity Index |
1.00 |
0.99, 1.02 |
0.5 |
| Moderate to Severe Disease |
1.08 |
0.96, 1.21 |
0.2 |
| Total SVI |
1.12 |
0.90, 1.38 |
0.3 |
View(IBD_surgery_11_17_22)
View(use_7)
View(use_7)
Quartiles
ut_clean1$ed_count = as.numeric(ut_clean1$ed_count)
ed.nb2 <- glm.nb(ed_count ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + act_tob + mstat_5 + max_ch + IC + RPL_4,
offset(log(pyears)),
data = use_7)
summary(ed.nb2)
Call:
glm.nb(formula = ed_count ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + act_tob + mstat_5 + max_ch + IC + RPL_4,
data = use_7, weights = offset(log(pyears)), init.theta = 0.1515050523,
link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.0516 -0.7523 -0.6438 -0.4112 6.3669
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.573679 0.127708 -12.322 < 2e-16 ***
ibd_3UC -0.035929 0.054754 -0.656 0.511699
ibd_3Unspecified 0.402735 0.345870 1.164 0.244257
age_yrs 0.001693 0.001827 0.927 0.354182
genderFemale 0.185660 0.052808 3.516 0.000439 ***
race_5Black -0.267866 0.113266 -2.365 0.018033 *
race_5Asian 0.055434 0.169196 0.328 0.743192
race_5Native -0.105068 0.416800 -0.252 0.800977
race_5Other 0.264951 0.154383 1.716 0.086127 .
ethnic_3Hispanic -0.115186 0.194301 -0.593 0.553299
lang_3Other 0.429221 0.259187 1.656 0.097717 .
act_tobYes -0.011579 0.082258 -0.141 0.888058
mstat_5Unknown -0.730288 0.089764 -8.136 4.1e-16 ***
mstat_5Unmarried -0.026653 0.067278 -0.396 0.691982
mstat_5DivorcedSeparated 0.145395 0.136534 1.065 0.286921
mstat_5Widow 0.151982 0.174510 0.871 0.383806
max_ch 0.004115 0.005528 0.744 0.456621
IC 0.074345 0.057299 1.297 0.194466
RPL_4Second 0.053945 0.061623 0.875 0.381352
RPL_4Third -0.045668 0.073688 -0.620 0.535421
RPL_4Fourth 0.069829 0.100254 0.697 0.486104
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(0.1515) family taken to be 1)
Null deviance: 6371.6 on 10930 degrees of freedom
Residual deviance: 6259.5 on 10910 degrees of freedom
(4269 observations deleted due to missingness)
AIC: 18004
Number of Fisher Scoring iterations: 1
Theta: 0.15151
Std. Err.: 0.00567
2 x log-likelihood: -17959.72200
broom::glance(ed.nb2)
broom::tidy(ed.nb2, exponentiate = TRUE)
model_performance(ed.nb2)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
18003.722 | 18164.308 | 0.023 | 0.927 | 0.757 | -0.646 | 0.009
tbl_regression(ed.nb2, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_4 ~ "SVI Quartiles", max_ch ~ "Charlson Comorbidity Index", IC ~ "Moderate to Severe Disease", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
0.96 |
0.87, 1.07 |
0.5 |
| Unspecified |
1.50 |
0.77, 3.08 |
0.2 |
| Age |
1.00 |
1.00, 1.01 |
0.4 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.20 |
1.09, 1.34 |
<0.001 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.77 |
0.61, 0.96 |
0.018 |
| Asian |
1.06 |
0.76, 1.48 |
0.7 |
| Native |
0.90 |
0.39, 2.13 |
0.8 |
| Other |
1.30 |
0.96, 1.78 |
0.086 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
0.89 |
0.61, 1.31 |
0.6 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
1.54 |
0.93, 2.62 |
0.10 |
| act_tob |
|
|
|
| No |
— |
— |
|
| Yes |
0.99 |
0.84, 1.16 |
0.9 |
| mstat_5 |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.48 |
0.40, 0.57 |
<0.001 |
| Unmarried |
0.97 |
0.85, 1.11 |
0.7 |
| DivorcedSeparated |
1.16 |
0.89, 1.52 |
0.3 |
| Widow |
1.16 |
0.83, 1.65 |
0.4 |
| Charlson Comorbidity Index |
1.00 |
0.99, 1.02 |
0.5 |
| Moderate to Severe Disease |
1.08 |
0.96, 1.21 |
0.2 |
| SVI Quartiles |
|
|
|
| First |
— |
— |
|
| Second |
1.06 |
0.94, 1.19 |
0.4 |
| Third |
0.96 |
0.83, 1.11 |
0.5 |
| Fourth |
1.07 |
0.88, 1.31 |
0.5 |
All themes
ut_clean1$ed_count = as.numeric(ut_clean1$ed_count)
ed.nb3 <- glm.nb(ed_count ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + act_tob + mstat_5 + max_ch + IC + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + RPL_THEME4,
offset(log(pyears)),
data = use_7)
summary(ed.nb3)
Call:
glm.nb(formula = ed_count ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + act_tob + mstat_5 + max_ch + IC + RPL_THEME1 +
RPL_THEME2 + RPL_THEME3 + RPL_THEME4, data = use_7, weights = offset(log(pyears)),
init.theta = 0.1517000316, link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.0634 -0.7508 -0.6428 -0.4109 6.4619
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.554546 0.139369 -11.154 < 2e-16 ***
ibd_3UC -0.030151 0.054938 -0.549 0.583132
ibd_3Unspecified 0.362560 0.347374 1.044 0.296617
age_yrs 0.001318 0.001834 0.719 0.472419
genderFemale 0.185748 0.052980 3.506 0.000455 ***
race_5Black -0.316058 0.114763 -2.754 0.005887 **
race_5Asian 0.048257 0.172315 0.280 0.779439
race_5Native -0.118942 0.417861 -0.285 0.775916
race_5Other 0.290557 0.154634 1.879 0.060245 .
ethnic_3Hispanic -0.139477 0.195480 -0.714 0.475530
lang_3Other 0.326029 0.262810 1.241 0.214772
act_tobYes -0.032128 0.082656 -0.389 0.697507
mstat_5Unknown -0.734552 0.089913 -8.170 3.09e-16 ***
mstat_5Unmarried -0.042803 0.067646 -0.633 0.526894
mstat_5DivorcedSeparated 0.142611 0.136680 1.043 0.296767
mstat_5Widow 0.157399 0.174933 0.900 0.368245
max_ch 0.004088 0.005549 0.737 0.461332
IC 0.063982 0.057534 1.112 0.266103
RPL_THEME1 0.427581 0.151668 2.819 0.004815 **
RPL_THEME2 -0.156605 0.132466 -1.182 0.237118
RPL_THEME3 0.024274 0.095333 0.255 0.799016
RPL_THEME4 -0.155772 0.110143 -1.414 0.157280
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(0.1517) family taken to be 1)
Null deviance: 6334.4 on 10869 degrees of freedom
Residual deviance: 6217.9 on 10848 degrees of freedom
(4330 observations deleted due to missingness)
AIC: 17881
Number of Fisher Scoring iterations: 1
Theta: 0.15170
Std. Err.: 0.00570
2 x log-likelihood: -17834.60700
broom::glance(ed.nb3)
broom::tidy(ed.nb3, exponentiate = TRUE)
model_performance(ed.nb3)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
17880.607 | 18048.364 | 0.024 | 0.927 | 0.757 | -0.647 | 0.009
tbl_regression(ed.nb3, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", max_ch ~ "Charlson Comorbidity Index", IC ~ "Moderate to Severe Disease", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
0.97 |
0.87, 1.08 |
0.6 |
| Unspecified |
1.44 |
0.74, 2.96 |
0.3 |
| Age |
1.00 |
1.00, 1.01 |
0.5 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.20 |
1.09, 1.34 |
<0.001 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
0.73 |
0.58, 0.91 |
0.006 |
| Asian |
1.05 |
0.75, 1.48 |
0.8 |
| Native |
0.89 |
0.39, 2.09 |
0.8 |
| Other |
1.34 |
0.98, 1.83 |
0.060 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
0.87 |
0.60, 1.28 |
0.5 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
1.39 |
0.83, 2.38 |
0.2 |
| act_tob |
|
|
|
| No |
— |
— |
|
| Yes |
0.97 |
0.82, 1.14 |
0.7 |
| mstat_5 |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.48 |
0.40, 0.57 |
<0.001 |
| Unmarried |
0.96 |
0.84, 1.09 |
0.5 |
| DivorcedSeparated |
1.15 |
0.88, 1.52 |
0.3 |
| Widow |
1.17 |
0.84, 1.66 |
0.4 |
| Charlson Comorbidity Index |
1.00 |
0.99, 1.02 |
0.5 |
| Moderate to Severe Disease |
1.07 |
0.95, 1.19 |
0.3 |
| RPL_THEME1 |
1.53 |
1.13, 2.09 |
0.005 |
| RPL_THEME2 |
0.86 |
0.65, 1.12 |
0.2 |
| RPL_THEME3 |
1.02 |
0.85, 1.24 |
0.8 |
| RPL_THEME4 |
0.86 |
0.68, 1.07 |
0.2 |
Surgeries
ut_clean1$surg_count = as.numeric(ut_clean1$surg_count)
surg.nb <- glm.nb(surg_count ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEMES,
offset(log(pyears)),
data = ut_clean1)
summary(surg.nb)
Call:
glm.nb(formula = surg_count ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEMES,
data = ut_clean1, weights = offset(log(pyears)), init.theta = 0.3285786911,
link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.5977 -0.8019 -0.5629 -0.3522 5.0741
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.394565 0.110548 -12.615 < 2e-16 ***
ibd_3UC -0.140971 0.046376 -3.040 0.00237 **
ibd_3Unspecified 0.313783 0.319754 0.981 0.32643
age_yrs -0.023594 0.001594 -14.805 < 2e-16 ***
genderFemale -0.084468 0.043752 -1.931 0.05353 .
race_5Black 0.119419 0.080838 1.477 0.13961
race_5Asian -0.877973 0.196266 -4.473 7.70e-06 ***
race_5Native -0.509517 0.406911 -1.252 0.21051
race_5Other -0.647724 0.157355 -4.116 3.85e-05 ***
ethnic_3Hispanic -0.016385 0.166006 -0.099 0.92137
lang_3Other -0.236229 0.301073 -0.785 0.43267
mstat_5Unknown 0.120547 0.067414 1.788 0.07375 .
mstat_5Unmarried -0.005805 0.057707 -0.101 0.91987
mstat_5DivorcedSeparated 0.333602 0.112981 2.953 0.00315 **
mstat_5Widow 0.187385 0.178803 1.048 0.29464
act_tobYes 0.182114 0.062275 2.924 0.00345 **
max_ch 0.061792 0.004635 13.332 < 2e-16 ***
IC 0.989474 0.052986 18.674 < 2e-16 ***
RPL_THEMES 0.557573 0.086487 6.447 1.14e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(0.3286) family taken to be 1)
Null deviance: 9070.8 on 11250 degrees of freedom
Residual deviance: 7824.4 on 11232 degrees of freedom
(4275 observations deleted due to missingness)
AIC: 19192
Number of Fisher Scoring iterations: 1
Theta: 0.3286
Std. Err.: 0.0144
2 x log-likelihood: -19152.0590
broom::glance(surg.nb)
broom::tidy(surg.nb, exponentiate = TRUE)
model_performance(surg.nb)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
19192.059 | 19338.623 | 0.189 | 0.667 | 0.835 | -0.598 | 0.009
tbl_regression(surg.nb, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Moderate to Severe Disease", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
0.87 |
0.79, 0.95 |
0.002 |
| Unspecified |
1.37 |
0.69, 2.62 |
0.3 |
| Age |
0.98 |
0.97, 0.98 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
0.92 |
0.84, 1.00 |
0.054 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
1.13 |
0.96, 1.32 |
0.14 |
| Asian |
0.42 |
0.28, 0.60 |
<0.001 |
| Native |
0.60 |
0.27, 1.26 |
0.2 |
| Other |
0.52 |
0.38, 0.71 |
<0.001 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
0.98 |
0.71, 1.37 |
>0.9 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.79 |
0.44, 1.38 |
0.4 |
| mstat_5 |
|
|
|
| Married |
— |
— |
|
| Unknown |
1.13 |
0.99, 1.29 |
0.074 |
| Unmarried |
0.99 |
0.89, 1.11 |
>0.9 |
| DivorcedSeparated |
1.40 |
1.12, 1.74 |
0.003 |
| Widow |
1.21 |
0.83, 1.72 |
0.3 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
1.20 |
1.06, 1.36 |
0.003 |
| Charlson Comorbidity Index |
1.06 |
1.05, 1.07 |
<0.001 |
| Moderate to Severe Disease |
2.69 |
2.42, 2.99 |
<0.001 |
| Total SVI |
1.75 |
1.47, 2.07 |
<0.001 |
All themes
surg.nb2 <- glm.nb(surg_count ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + RPL_THEME4,
offset(log(pyears)),
data = ut_clean1)
summary(surg.nb2)
Call:
glm.nb(formula = surg_count ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEME1 +
RPL_THEME2 + RPL_THEME3 + RPL_THEME4, data = ut_clean1, weights = offset(log(pyears)),
init.theta = 0.3308139959, link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.6090 -0.7997 -0.5606 -0.3482 4.9820
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.359512 0.119175 -11.408 < 2e-16 ***
ibd_3UC -0.135858 0.046452 -2.925 0.003448 **
ibd_3Unspecified 0.309797 0.319725 0.969 0.332571
age_yrs -0.023865 0.001597 -14.940 < 2e-16 ***
genderFemale -0.085866 0.043806 -1.960 0.049981 *
race_5Black 0.153340 0.082210 1.865 0.062150 .
race_5Asian -0.763508 0.197333 -3.869 0.000109 ***
race_5Native -0.533707 0.408381 -1.307 0.191252
race_5Other -0.621963 0.158542 -3.923 8.74e-05 ***
ethnic_3Hispanic 0.026972 0.166065 0.162 0.870977
lang_3Other -0.216466 0.302775 -0.715 0.474647
mstat_5Unknown 0.119926 0.067415 1.779 0.075252 .
mstat_5Unmarried -0.005907 0.057911 -0.102 0.918757
mstat_5DivorcedSeparated 0.311452 0.113640 2.741 0.006131 **
mstat_5Widow 0.205566 0.178907 1.149 0.250551
act_tobYes 0.171750 0.062296 2.757 0.005833 **
max_ch 0.061604 0.004644 13.266 < 2e-16 ***
IC 0.984178 0.053109 18.531 < 2e-16 ***
RPL_THEME1 0.506688 0.125040 4.052 5.07e-05 ***
RPL_THEME2 0.351011 0.108294 3.241 0.001190 **
RPL_THEME3 -0.122337 0.080186 -1.526 0.127091
RPL_THEME4 -0.163951 0.091553 -1.791 0.073330 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(0.3308) family taken to be 1)
Null deviance: 9052.2 on 11189 degrees of freedom
Residual deviance: 7784.8 on 11168 degrees of freedom
(4336 observations deleted due to missingness)
AIC: 19116
Number of Fisher Scoring iterations: 1
Theta: 0.3308
Std. Err.: 0.0145
2 x log-likelihood: -19070.4560
broom::glance(surg.nb2)
broom::tidy(surg.nb2, exponentiate = TRUE)
model_performance(surg.nb2)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
19116.456 | 19284.880 | 0.193 | 0.668 | 0.835 | -0.598 | 0.009
tbl_regression(surg.nb2, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Moderate to Severe Disease", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
0.87 |
0.80, 0.96 |
0.003 |
| Unspecified |
1.36 |
0.69, 2.60 |
0.3 |
| Age |
0.98 |
0.97, 0.98 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
0.92 |
0.84, 1.00 |
0.050 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
1.17 |
0.99, 1.37 |
0.062 |
| Asian |
0.47 |
0.31, 0.68 |
<0.001 |
| Native |
0.59 |
0.27, 1.23 |
0.2 |
| Other |
0.54 |
0.39, 0.73 |
<0.001 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
1.03 |
0.74, 1.43 |
0.9 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.81 |
0.45, 1.41 |
0.5 |
| mstat_5 |
|
|
|
| Married |
— |
— |
|
| Unknown |
1.13 |
0.99, 1.29 |
0.075 |
| Unmarried |
0.99 |
0.89, 1.11 |
>0.9 |
| DivorcedSeparated |
1.37 |
1.10, 1.70 |
0.006 |
| Widow |
1.23 |
0.85, 1.75 |
0.3 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
1.19 |
1.05, 1.34 |
0.006 |
| Charlson Comorbidity Index |
1.06 |
1.05, 1.07 |
<0.001 |
| Moderate to Severe Disease |
2.68 |
2.41, 2.98 |
<0.001 |
| RPL_THEME1 |
1.66 |
1.30, 2.13 |
<0.001 |
| RPL_THEME2 |
1.42 |
1.15, 1.76 |
0.001 |
| RPL_THEME3 |
0.88 |
0.76, 1.04 |
0.13 |
| RPL_THEME4 |
0.85 |
0.71, 1.02 |
0.073 |
Readmissions
SVI
ut_clean1$readmit_count = as.numeric(ut_clean1$readmit_count)
readmit.nb <- glm.nb(readmit_count ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEMES,
offset(log(pyears)),
data = ut_clean1)
Warning: iteration limit reachedWarning: iteration limit reached
summary(readmit.nb)
Call:
glm.nb(formula = readmit_count ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEMES,
data = ut_clean1, weights = offset(log(pyears)), init.theta = 49510.38307,
link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.9232 -0.2401 -0.1316 -0.0072 10.1003
Coefficients:
Estimate Std. Error z value
(Intercept) 0.1091401 0.0362461 3.011
ibd_3UC -0.0154505 0.0154689 -0.999
ibd_3Unspecified -0.0560662 0.1091470 -0.514
age_yrs -0.0032447 0.0005142 -6.310
genderFemale 0.0075701 0.0148541 0.510
race_5Black 0.1073172 0.0286804 3.742
race_5Asian -0.0616009 0.0506021 -1.217
race_5Native -0.0279398 0.1165397 -0.240
race_5Other 0.0526996 0.0446290 1.181
ethnic_3Hispanic -0.0714176 0.0557525 -1.281
lang_3Other -0.0476137 0.0826788 -0.576
mstat_5Unknown 0.0481555 0.0225502 2.135
mstat_5Unmarried -0.0265728 0.0193416 -1.374
mstat_5DivorcedSeparated 0.0653761 0.0395136 1.655
mstat_5Widow 0.0658805 0.0519369 1.268
act_tobYes 0.0631236 0.0223934 2.819
max_ch 0.0173344 0.0015171 11.426
IC 0.1286881 0.0163188 7.886
RPL_THEMES 0.1009949 0.0300033 3.366
Pr(>|z|)
(Intercept) 0.002603 **
ibd_3UC 0.317887
ibd_3Unspecified 0.607479
age_yrs 2.78e-10 ***
genderFemale 0.610310
race_5Black 0.000183 ***
race_5Asian 0.223469
race_5Native 0.810528
race_5Other 0.237667
ethnic_3Hispanic 0.200202
lang_3Other 0.564691
mstat_5Unknown 0.032722 *
mstat_5Unmarried 0.169483
mstat_5DivorcedSeparated 0.098022 .
mstat_5Widow 0.204630
act_tobYes 0.004820 **
max_ch < 2e-16 ***
IC 3.12e-15 ***
RPL_THEMES 0.000762 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(49510.38) family taken to be 1)
Null deviance: 3821.3 on 10931 degrees of freedom
Residual deviance: 3527.4 on 10913 degrees of freedom
(4269 observations deleted due to missingness)
AIC: 37166
Number of Fisher Scoring iterations: 1
Theta: 49510
Std. Err.: 60103
Warning while fitting theta: iteration limit reached
2 x log-likelihood: -37126.07
broom::glance(readmit.nb)
broom::tidy(readmit.nb, exponentiate = TRUE)
model_performance(readmit.nb)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
37166.073 | 37312.062 | 0.090 | 0.675 | 0.569 | -1.326 | 0.009
tbl_regression(readmit.nb, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", RPL_THEMES ~ "Total SVI", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Moderate to Severe Disease", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
0.98 |
0.96, 1.01 |
0.3 |
| Unspecified |
0.95 |
0.76, 1.16 |
0.6 |
| Age |
1.00 |
1.00, 1.00 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.01 |
0.98, 1.04 |
0.6 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
1.11 |
1.05, 1.18 |
<0.001 |
| Asian |
0.94 |
0.85, 1.04 |
0.2 |
| Native |
0.97 |
0.77, 1.21 |
0.8 |
| Other |
1.05 |
0.96, 1.15 |
0.2 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
0.93 |
0.83, 1.04 |
0.2 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.95 |
0.81, 1.12 |
0.6 |
| mstat_5 |
|
|
|
| Married |
— |
— |
|
| Unknown |
1.05 |
1.00, 1.10 |
0.033 |
| Unmarried |
0.97 |
0.94, 1.01 |
0.2 |
| DivorcedSeparated |
1.07 |
0.99, 1.15 |
0.10 |
| Widow |
1.07 |
0.96, 1.18 |
0.2 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
1.07 |
1.02, 1.11 |
0.005 |
| Charlson Comorbidity Index |
1.02 |
1.01, 1.02 |
<0.001 |
| Moderate to Severe Disease |
1.14 |
1.10, 1.17 |
<0.001 |
| Total SVI |
1.11 |
1.04, 1.17 |
<0.001 |
All themes
readmit.nb2 <- glm.nb(readmit_count ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + RPL_THEME4,
offset(log(pyears)),
data = ut_clean1)
Warning: iteration limit reachedWarning: iteration limit reached
summary(readmit.nb2)
Call:
glm.nb(formula = readmit_count ~ ibd_3 + age_yrs + gender + race_5 +
ethnic_3 + lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEME1 +
RPL_THEME2 + RPL_THEME3 + RPL_THEME4, data = ut_clean1, weights = offset(log(pyears)),
init.theta = 49491.15318, link = log)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.9409 -0.2417 -0.1299 -0.0064 10.0386
Coefficients:
Estimate Std. Error z value
(Intercept) 0.096163 0.039340 2.444
ibd_3UC -0.014901 0.015520 -0.960
ibd_3Unspecified -0.056561 0.109156 -0.518
age_yrs -0.003231 0.000516 -6.261
genderFemale 0.007223 0.014902 0.485
race_5Black 0.098433 0.029240 3.366
race_5Asian -0.062208 0.051308 -1.212
race_5Native -0.028323 0.116557 -0.243
race_5Other 0.050844 0.044885 1.133
ethnic_3Hispanic -0.069651 0.055960 -1.245
lang_3Other -0.059464 0.083403 -0.713
mstat_5Unknown 0.047657 0.022610 2.108
mstat_5Unmarried -0.027323 0.019430 -1.406
mstat_5DivorcedSeparated 0.066691 0.039570 1.685
mstat_5Widow 0.066730 0.052051 1.282
act_tobYes 0.061494 0.022481 2.735
max_ch 0.017360 0.001523 11.402
IC 0.128656 0.016384 7.853
RPL_THEME1 0.120746 0.042620 2.833
RPL_THEME2 0.008033 0.037248 0.216
RPL_THEME3 0.033301 0.026996 1.234
RPL_THEME4 -0.024206 0.030946 -0.782
Pr(>|z|)
(Intercept) 0.014510 *
ibd_3UC 0.336971
ibd_3Unspecified 0.604343
age_yrs 3.84e-10 ***
genderFemale 0.627892
race_5Black 0.000762 ***
race_5Asian 0.225343
race_5Native 0.808007
race_5Other 0.257318
ethnic_3Hispanic 0.213259
lang_3Other 0.475863
mstat_5Unknown 0.035048 *
mstat_5Unmarried 0.159659
mstat_5DivorcedSeparated 0.091919 .
mstat_5Widow 0.199840
act_tobYes 0.006230 **
max_ch < 2e-16 ***
IC 4.08e-15 ***
RPL_THEME1 0.004611 **
RPL_THEME2 0.829256
RPL_THEME3 0.217372
RPL_THEME4 0.434096
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for Negative Binomial(49491.15) family taken to be 1)
Null deviance: 3814.3 on 10870 degrees of freedom
Residual deviance: 3516.5 on 10849 degrees of freedom
(4330 observations deleted due to missingness)
AIC: 36939
Number of Fisher Scoring iterations: 1
Theta: 49491
Std. Err.: 60384
Warning while fitting theta: iteration limit reached
2 x log-likelihood: -36892.62
broom::glance(readmit.nb2)
broom::tidy(readmit.nb2, exponentiate = TRUE)
model_performance(readmit.nb2)
# Indices of model performance
AIC | BIC | Nagelkerke's R2 | RMSE | Sigma | Score_log | Score_spherical
-------------------------------------------------------------------------------------
36938.618 | 37106.376 | 0.091 | 0.677 | 0.569 | -1.326 | 0.009
tbl_regression(readmit.nb2, label = list(age_yrs ~ "Age", gender~ "Gender", ethnic_3 ~ "Ethnicity", lang_3 ~ "Preferred Language", race_5 ~ "Race", act_tob ~"Active Tobacco Use", max_ch ~ "Charlson Comorbidity Index", IC ~ "Moderate to Severe Disease", ibd_3 ~ "IBD Type"), exponentiate = TRUE)
| Characteristic |
IRR |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
0.99 |
0.96, 1.02 |
0.3 |
| Unspecified |
0.95 |
0.76, 1.16 |
0.6 |
| Age |
1.00 |
1.00, 1.00 |
<0.001 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
1.01 |
0.98, 1.04 |
0.6 |
| Race |
|
|
|
| White |
— |
— |
|
| Black |
1.10 |
1.04, 1.17 |
<0.001 |
| Asian |
0.94 |
0.85, 1.04 |
0.2 |
| Native |
0.97 |
0.77, 1.21 |
0.8 |
| Other |
1.05 |
0.96, 1.15 |
0.3 |
| Ethnicity |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
0.93 |
0.83, 1.04 |
0.2 |
| Preferred Language |
|
|
|
| English |
— |
— |
|
| Other |
0.94 |
0.80, 1.11 |
0.5 |
| mstat_5 |
|
|
|
| Married |
— |
— |
|
| Unknown |
1.05 |
1.00, 1.10 |
0.035 |
| Unmarried |
0.97 |
0.94, 1.01 |
0.2 |
| DivorcedSeparated |
1.07 |
0.99, 1.15 |
0.092 |
| Widow |
1.07 |
0.96, 1.18 |
0.2 |
| Active Tobacco Use |
|
|
|
| No |
— |
— |
|
| Yes |
1.06 |
1.02, 1.11 |
0.006 |
| Charlson Comorbidity Index |
1.02 |
1.01, 1.02 |
<0.001 |
| Moderate to Severe Disease |
1.14 |
1.10, 1.17 |
<0.001 |
| RPL_THEME1 |
1.13 |
1.04, 1.23 |
0.005 |
| RPL_THEME2 |
1.01 |
0.94, 1.08 |
0.8 |
| RPL_THEME3 |
1.03 |
0.98, 1.09 |
0.2 |
| RPL_THEME4 |
0.98 |
0.92, 1.04 |
0.4 |
LOS
SVI
LOS1 <- lm(mean_los ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3
+ mstat_5 + act_tob + max_ch + IC + RPL_THEMES,
data = ut_clean1)
summary(LOS1)
Call:
lm(formula = mean_los ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 +
lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEMES, data = ut_clean1)
Residuals:
Min 1Q Median 3Q Max
-7.241 -2.880 -1.308 1.041 190.494
Coefficients:
Estimate Std. Error t value
(Intercept) 4.617986 0.473440 9.754
ibd_3UC 0.383490 0.198973 1.927
ibd_3Unspecified -0.330775 1.472417 -0.225
age_yrs -0.001101 0.006445 -0.171
genderFemale -0.741483 0.191195 -3.878
race_5Black -0.249550 0.351987 -0.709
race_5Asian -0.225567 0.754134 -0.299
race_5Native 0.715623 1.746401 0.410
race_5Other -0.493310 0.581214 -0.849
ethnic_3Hispanic 0.943411 0.667113 1.414
lang_3Other 0.179694 0.958232 0.188
mstat_5Unknown 0.655235 0.260748 2.513
mstat_5Unmarried 0.491969 0.254576 1.933
mstat_5DivorcedSeparated 0.018758 0.504688 0.037
mstat_5Widow 0.493465 0.618031 0.798
act_tobYes -0.397432 0.287285 -1.383
max_ch 0.106951 0.019330 5.533
IC -0.257667 0.215850 -1.194
RPL_THEMES 1.003162 0.375009 2.675
Pr(>|t|)
(Intercept) < 2e-16 ***
ibd_3UC 0.054005 .
ibd_3Unspecified 0.822265
age_yrs 0.864319
genderFemale 0.000107 ***
race_5Black 0.478380
race_5Asian 0.764874
race_5Native 0.681996
race_5Other 0.396066
ethnic_3Hispanic 0.157388
lang_3Other 0.851257
mstat_5Unknown 0.012012 *
mstat_5Unmarried 0.053367 .
mstat_5DivorcedSeparated 0.970354
mstat_5Widow 0.424658
act_tobYes 0.166616
max_ch 3.34e-08 ***
IC 0.232651
RPL_THEMES 0.007502 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 6.028 on 4106 degrees of freedom
(11084 observations deleted due to missingness)
Multiple R-squared: 0.02022, Adjusted R-squared: 0.01592
F-statistic: 4.707 on 18 and 4106 DF, p-value: 1.679e-10
broom::glance(LOS1)
broom::tidy(LOS1)
model_performance(LOS1)
# Indices of model performance
AIC | BIC | R2 | R2 (adj.) | RMSE | Sigma
---------------------------------------------------------
26548.016 | 26674.512 | 0.020 | 0.016 | 6.014 | 6.028
tbl_regression(LOS1, label = list(age_yrs ~ "Age", gender~ "Gender", ibd_3 ~ "IBD Type"))
| Characteristic |
Beta |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
0.38 |
-0.01, 0.77 |
0.054 |
| Unspecified |
-0.33 |
-3.2, 2.6 |
0.8 |
| Age |
0.00 |
-0.01, 0.01 |
0.9 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
-0.74 |
-1.1, -0.37 |
<0.001 |
| race_5 |
|
|
|
| White |
— |
— |
|
| Black |
-0.25 |
-0.94, 0.44 |
0.5 |
| Asian |
-0.23 |
-1.7, 1.3 |
0.8 |
| Native |
0.72 |
-2.7, 4.1 |
0.7 |
| Other |
-0.49 |
-1.6, 0.65 |
0.4 |
| ethnic_3 |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
0.94 |
-0.36, 2.3 |
0.2 |
| lang_3 |
|
|
|
| English |
— |
— |
|
| Other |
0.18 |
-1.7, 2.1 |
0.9 |
| mstat_5 |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.66 |
0.14, 1.2 |
0.012 |
| Unmarried |
0.49 |
-0.01, 0.99 |
0.053 |
| DivorcedSeparated |
0.02 |
-0.97, 1.0 |
>0.9 |
| Widow |
0.49 |
-0.72, 1.7 |
0.4 |
| act_tob |
|
|
|
| No |
— |
— |
|
| Yes |
-0.40 |
-0.96, 0.17 |
0.2 |
| max_ch |
0.11 |
0.07, 0.14 |
<0.001 |
| IC |
-0.26 |
-0.68, 0.17 |
0.2 |
| RPL_THEMES |
1.0 |
0.27, 1.7 |
0.008 |
All themes
LOS2 <- lm(mean_los ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 + lang_3
+ mstat_5 + act_tob + max_ch + IC + RPL_THEME1 + RPL_THEME2 + RPL_THEME3 + RPL_THEME4,
data = ut_clean1)
summary(LOS2)
Call:
lm(formula = mean_los ~ ibd_3 + age_yrs + gender + race_5 + ethnic_3 +
lang_3 + mstat_5 + act_tob + max_ch + IC + RPL_THEME1 + RPL_THEME2 +
RPL_THEME3 + RPL_THEME4, data = ut_clean1)
Residuals:
Min 1Q Median 3Q Max
-7.453 -2.857 -1.242 1.107 189.850
Coefficients:
Estimate Std. Error t value
(Intercept) 4.7660360 0.5077701 9.386
ibd_3UC 0.3669323 0.1993127 1.841
ibd_3Unspecified -0.3511920 1.4705746 -0.239
age_yrs -0.0005296 0.0064560 -0.082
genderFemale -0.7427117 0.1914089 -3.880
race_5Black 0.0035331 0.3585456 0.010
race_5Asian 0.3282376 0.7658361 0.429
race_5Native 0.7940245 1.7442224 0.455
race_5Other -0.2975341 0.5850926 -0.509
ethnic_3Hispanic 0.9932351 0.6667261 1.490
lang_3Other 0.6100951 0.9725180 0.627
mstat_5Unknown 0.7023405 0.2614293 2.687
mstat_5Unmarried 0.5613192 0.2555348 2.197
mstat_5DivorcedSeparated -0.0090254 0.5041620 -0.018
mstat_5Widow 0.5162948 0.6200364 0.833
act_tobYes -0.4143760 0.2874691 -1.441
max_ch 0.1045399 0.0193927 5.391
IC -0.2482566 0.2161495 -1.149
RPL_THEME1 0.3676135 0.5412177 0.679
RPL_THEME2 1.0232129 0.4736323 2.160
RPL_THEME3 -1.1303273 0.3486785 -3.242
RPL_THEME4 0.3138061 0.3962756 0.792
Pr(>|t|)
(Intercept) < 2e-16 ***
ibd_3UC 0.065696 .
ibd_3Unspecified 0.811263
age_yrs 0.934629
genderFemale 0.000106 ***
race_5Black 0.992138
race_5Asian 0.668237
race_5Native 0.648967
race_5Other 0.611113
ethnic_3Hispanic 0.136375
lang_3Other 0.530474
mstat_5Unknown 0.007249 **
mstat_5Unmarried 0.028102 *
mstat_5DivorcedSeparated 0.985718
mstat_5Widow 0.405071
act_tobYes 0.149531
max_ch 7.42e-08 ***
IC 0.250812
RPL_THEME1 0.497028
RPL_THEME2 0.030803 *
RPL_THEME3 0.001198 **
RPL_THEME4 0.428472
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 6.018 on 4081 degrees of freedom
(11106 observations deleted due to missingness)
Multiple R-squared: 0.02529, Adjusted R-squared: 0.02028
F-statistic: 5.043 on 21 and 4081 DF, p-value: 4.065e-13
broom::glance(LOS2)
broom::tidy(LOS2)
model_performance(LOS2)
# Indices of model performance
AIC | BIC | R2 | R2 (adj.) | RMSE | Sigma
---------------------------------------------------------
26396.064 | 26541.411 | 0.025 | 0.020 | 6.002 | 6.018
tbl_regression(LOS2, label = list(age_yrs ~ "Age", gender~ "Gender", ibd_3 ~ "IBD Type"))
| Characteristic |
Beta |
95% CI |
p-value |
| IBD Type |
|
|
|
| CD |
— |
— |
|
| UC |
0.37 |
-0.02, 0.76 |
0.066 |
| Unspecified |
-0.35 |
-3.2, 2.5 |
0.8 |
| Age |
0.00 |
-0.01, 0.01 |
>0.9 |
| Gender |
|
|
|
| Male |
— |
— |
|
| Female |
-0.74 |
-1.1, -0.37 |
<0.001 |
| race_5 |
|
|
|
| White |
— |
— |
|
| Black |
0.00 |
-0.70, 0.71 |
>0.9 |
| Asian |
0.33 |
-1.2, 1.8 |
0.7 |
| Native |
0.79 |
-2.6, 4.2 |
0.6 |
| Other |
-0.30 |
-1.4, 0.85 |
0.6 |
| ethnic_3 |
|
|
|
| NonHispanic |
— |
— |
|
| Hispanic |
0.99 |
-0.31, 2.3 |
0.14 |
| lang_3 |
|
|
|
| English |
— |
— |
|
| Other |
0.61 |
-1.3, 2.5 |
0.5 |
| mstat_5 |
|
|
|
| Married |
— |
— |
|
| Unknown |
0.70 |
0.19, 1.2 |
0.007 |
| Unmarried |
0.56 |
0.06, 1.1 |
0.028 |
| DivorcedSeparated |
-0.01 |
-1.0, 0.98 |
>0.9 |
| Widow |
0.52 |
-0.70, 1.7 |
0.4 |
| act_tob |
|
|
|
| No |
— |
— |
|
| Yes |
-0.41 |
-0.98, 0.15 |
0.15 |
| max_ch |
0.10 |
0.07, 0.14 |
<0.001 |
| IC |
-0.25 |
-0.67, 0.18 |
0.3 |
| RPL_THEME1 |
0.37 |
-0.69, 1.4 |
0.5 |
| RPL_THEME2 |
1.0 |
0.09, 2.0 |
0.031 |
| RPL_THEME3 |
-1.1 |
-1.8, -0.45 |
0.001 |
| RPL_THEME4 |
0.31 |
-0.46, 1.1 |
0.4 |
save(ut_clean1, file = "ut_clean1.rda")
LS0tCnRpdGxlOiAiSGVhbHRoY2FyZSBVdGlsaXphdGlvbiIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOgogICB0aGVtZXM6IHBhcGVyCiAgIHRvYzogeWVzCiAgIHRvY19mbG9hdDogeWVzCmVkaXRvcl9vcHRpb25zOiAKICBjaHVua19vdXRwdXRfdHlwZTogaW5saW5lCi0tLQojIyB5b3UgbmVlZCB0byBoYW5kLWxvYWQgdmF4X2RhdGFzZXQsIGliZF9maXJzdF9sYXN0X2VuY291bnRlcixhZG1pdF9jb3VudCwgRURfdmlzaXRzXzExXzIyXzIyLCBJQkRfc3VyZ2VyeV8xMV8xN18yMiBwcmlvciB0byBydW5uaW5nIHRoaXMgY29kZSAKCiMgTG9hZCBQYWNrYWdlcwpgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoY29kZWJvb2tyKQpsaWJyYXJ5KGJyb29tKQpsaWJyYXJ5KHBlcmZvcm1hbmNlKQpsaWJyYXJ5KGd0KQpsaWJyYXJ5KGd0c3VtbWFyeSkKbGlicmFyeShqYW5pdG9yKQpsaWJyYXJ5KGZvcmNhdHMpCmxpYnJhcnkoaGVyZSkKYGBgCgpgYGB7cn0Kdmlldyh2YXhfZGF0YXNldCkKdmlldyhpYmRfZmlyc3RfbGFzdF9lbmNvdW50ZXIpCmBgYAoKIyBEYXRhIENsZWFuaW5nIHsudGFic2V0fQojIyBNYWtlIHBlcnNvbiB5ZWFycyB2YXJpYWJsZSwgZXhjbHVkZSB0aG9zZSB3aXRoIGxlc3MgdGhhbiAxIHllYXIgb2YgZGF0YSAKYGBge3J9CmliZF9maXJzdF9sYXN0X2VuY291bnRlciRwZGF5cyA8LSBpYmRfZmlyc3RfbGFzdF9lbmNvdW50ZXIkbGFzdF9lbmMgLSBpYmRfZmlyc3RfbGFzdF9lbmNvdW50ZXIkZmlyc3RfZW5jCgppYmRfZmlyc3RfbGFzdF9lbmNvdW50ZXIkcGRheXMgPSBhcy5udW1lcmljKGliZF9maXJzdF9sYXN0X2VuY291bnRlciRwZGF5cykKCmliZF9maXJzdF9sYXN0X2VuY291bnRlciAlPiUgCiAgbXV0YXRlKHB5ZWFycyA9IHBkYXlzLzM2NSkgLT4gaWJkX3B5ZWFycwoKcHllYXJzX2liZCA8LSBzdWJzZXQoaWJkX3B5ZWFycywgcHllYXJzID49IDEpCgpweWVhcnNfaWJkICU+JSAKICBkcGx5cjo6c2VsZWN0KHNial9pZCwgcHllYXJzKSAtPiBzYmpfcHllYXJzCgpgYGAKCiMjIE1lcmdlIHdpdGggdmF4X2RhdGFfc2V0CmBgYHtyfQpzYmpfcHllYXJzJHNial9pZCA9IGFzLm51bWVyaWMoc2JqX3B5ZWFycyRzYmpfaWQpCnVzZV8xIDwtIGxlZnRfam9pbih4PSB2YXhfZGF0YXNldCwgeSA9IHNial9weWVhcnMsIGJ5ID0gInNial9pZCIpCmBgYAoKYGBge3J9CiAgbXV0YXRlKGFkbWl0XzIgPSBjYXNlX3doZW4oSUJEX2hvc3A+PSAxIH4gJzEnLFRSVUUgfiAiMCIpKSAlPiUgCiAgZHBseXI6OnNlbGVjdChzYmpfaWQsIGFkbWl0XzIpIC0+IGFkbWl0X2xvbmcKZGRwbHkoYWRtaXRfbG9uZywuKHNial9pZCwgYWRtaXRfMiksbnJvdykgLT4gYWRtaXRfY291bnQKYGBgCgoKIyMgTWFrZSBuZXcgaG9zcGl0YWxpemF0aW9uIHZhcmlhYmxlIApgYGB7cn0KSUJEX2hvc3BpdGFsaXphdGlvbnNfMTFfMzBfMjIgJT4lIAogIGRwbHlyOjpzZWxlY3Qoc2JqX2lkLCBJQkRfaG9zcCkgLT4gc2JqX2FkbWl0cwpzYmpfYWRtaXRzW3Nial9hZG1pdHMgPT0gMF0gPC0gTkEKc2JqX2FkbWl0cy5vbWl0IDwtIG5hLm9taXQoc2JqX2FkbWl0cykKCmRkcGx5KHNial9hZG1pdHMub21pdCwuKHNial9pZCwgSUJEX2hvc3ApLG5yb3cpIC0+IGFkbWl0X2NvdW50CiAgCmBgYAoKIyMgTWVyZ2UgYWRtaXRfY291bnQgZGF0YSAKYGBge3J9CmFkbWl0X2NvdW50JHNial9pZCA9IGFzLm51bWVyaWMoYWRtaXRfY291bnQkc2JqX2lkKQp1c2VfMSRzYmpfaWQgPSBhcy5udW1lcmljKHVzZV8xJHNial9pZCkKbGVmdF9qb2luKHggPSB1c2VfMSwgeSA9IGFkbWl0X2NvdW50LCBieSA9ICJzYmpfaWQiKSAtPiB1dGlsaXplXzIKYGBgCgojIyBSZW5hbWUgVjEgdG8gYWRtaXRfY291bnQKYGBge3J9CmNvbG5hbWVzKHV0aWxpemVfMilbY29sbmFtZXModXRpbGl6ZV8yKSA9PSAiVjEiXSA8LSAibnVtX2FkbWl0cyIKdXRpbGl6ZV8yJG51bV9hZG1pdHMgPSBhcy5udW1lcmljKHV0aWxpemVfMiRudW1fYWRtaXRzKQoKdXRpbGl6ZV8yICU+JSAKICBtdXRhdGUobnVtX2FkbWl0cyA9IGNvYWxlc2NlKG51bV9hZG1pdHMsIDApKSAtPiB1dGlsaXplXzMKYGBgCgojIyBNYWtlIEVEIENvdW50IFZhcmlhYmxlICAKYGBge3J9CgpFRF92aXNpdHNfMTFfMjJfMjIkc2JqX2lkID0gYXMuZmFjdG9yKEVEX3Zpc2l0c18xMV8yMl8yMiRzYmpfaWQpCkVEX3Zpc2l0c18xMV8yMl8yMiAlPiUgCiAgbXV0YXRlKGVkXzIgPSBjYXNlX3doZW4oZWRfZGF5cz49IDAgfiAnMScsVFJVRSB+ICIwIikpICU+JSAKICBkcGx5cjo6c2VsZWN0KHNial9pZCwgZWRfMikgLT4gRURfdmlzaXRzCmRkcGx5KEVEX3Zpc2l0cywuKHNial9pZCwgZWRfMiksbnJvdykgLT4gRURfY291bnQKCmBgYAoKIyMgTWVyZ2UgRUQgY291bnQgZGF0YSAKYGBge3J9CnV0aWxpemVfMyRzYmpfaWQgPSBhcy5udW1lcmljKHV0aWxpemVfMyRzYmpfaWQpCkVEX2NvdW50JHNial9pZCA9IGFzLm51bWVyaWMoRURfY291bnQkc2JqX2lkKQpsZWZ0X2pvaW4oeCA9IHV0aWxpemVfMywgeSA9IEVEX2NvdW50LCBieSA9ICJzYmpfaWQiKSAtPiB1c2VfNApgYGAKCiMjIFJlbmFtZSBFRCB2aXNpdCB2YXJpYWJsZSAKYGBge3J9CmNvbG5hbWVzKHVzZV80KVtjb2xuYW1lcyh1c2VfNCkgPT0gIlYxIl0gPC0gImVkX2NvdW50Igp1c2VfNCRlZF9jb3VudCA9IGFzLm51bWVyaWModXNlXzQkZWRfY291bnQpCnVzZV80ICU+JSAKICBtdXRhdGUoZWRfY291bnQgPSBjb2FsZXNjZShlZF9jb3VudCwgMCkpIC0+IHVzZV81CmBgYAoKIyMgTWFrZSBzdXJnZXJ5IGNvdW50IHZhcmlhYmxlIApgYGB7cn0KSUJEX3N1cmdlcnlfMTFfMTdfMjIgJT4lIAogIG11dGF0ZShzdXJnXzIgPSBjYXNlX3doZW4oc2JqX2lkPj0gMCB+ICcxJyxUUlVFIH4gIjAiKSkgJT4lIAogIGRwbHlyOjpzZWxlY3Qoc2JqX2lkLCBzdXJnXzIpIC0+IHN1cmdlcmllcwpkZHBseShzdXJnZXJpZXMsLihzYmpfaWQsIHN1cmdfMiksbnJvdykgLT4gc3VyZ19jb3VudApgYGAKCiMjIE1lcmdlIHN1cmdlcnkgZGF0YSAKYGBge3J9CnVzZV81JHNial9pZCA9IGFzLm51bWVyaWModXNlXzUkc2JqX2lkKQpzdXJnX2NvdW50JHNial9pZCA9IGFzLm51bWVyaWMoc3VyZ19jb3VudCRzYmpfaWQpCmxlZnRfam9pbih4ID0gdXNlXzUsIHkgPSBzdXJnX2NvdW50LCBieSA9ICJzYmpfaWQiKSAtPiB1c2VfNgpgYGAKCiMjIFJlbmFtZSBzdXJnIGNvdW50IHZhcmlhYmxlIGFuZCBnZXQgY2hhbmdlIE5BIHRvIHplcm9zIApgYGB7cn0KY29sbmFtZXModXNlXzYpW2NvbG5hbWVzKHVzZV82KSA9PSAiVjEiXSA8LSAic3VyZ19jb3VudCIKdXNlXzYkc3VyZ19jb3VudCA9IGFzLm51bWVyaWModXNlXzYkc3VyZ19jb3VudCkKdXNlXzYgJT4lIAogIG11dGF0ZShzdXJnX2NvdW50ID0gY29hbGVzY2Uoc3VyZ19jb3VudCwgMCkpIC0+IHVzZV83CiAgICAgIApgYGAKCiMjIE1ha2UgcmVhZG1pc3Npb24gdmFyaWFibGUgCmBgYHtyfQoKSUJEX2hvc3BpdGFsaXphdGlvbnNfMTFfMzBfMjIgJT4lIAogIGRwbHlyOjpzZWxlY3Qoc2JqX2lkLCByZWFkbWl0KSAtPiByZWFkbWl0cwpyZWFkbWl0cyRyZWFkbWl0PC1pZmVsc2UocmVhZG1pdHMkcmVhZG1pdD09IlkiLDEsMCkKcmVhZG1pdHNbcmVhZG1pdHMgPT0gMF0gPC0gTkEKcmVhZG1pdHMub21pdCA8LSBuYS5vbWl0KHJlYWRtaXRzKQpkZHBseShyZWFkbWl0cy5vbWl0LC4oc2JqX2lkLCByZWFkbWl0KSxucm93KSAtPiByZWFkbWl0X2NvdW50CgoKYGBgCgojIyBNZXJnZSByZWFkbWl0IGRhdGEgCmBgYHtyfQpyZWFkbWl0X2NvdW50JHNial9pZCA9IGFzLm51bWVyaWMocmVhZG1pdF9jb3VudCRzYmpfaWQpCnVzZV83JHNial9pZCA9IGFzLm51bWVyaWModXNlXzckc2JqX2lkKQpsZWZ0X2pvaW4oeCA9IHVzZV83LCB5ID0gcmVhZG1pdF9jb3VudCwgYnkgPSAic2JqX2lkIikgLT4gdXNlXzgKYGBgCgojIyBSZW5hbWUgcmVhZG1pc3Npb24gdmFyaWFibGUgCmBgYHtyfQpjb2xuYW1lcyh1c2VfOClbY29sbmFtZXModXNlXzgpID09ICJWMSJdIDwtICJyZWFkbWl0X2NvdW50Igp1c2VfOCRyZWFkbWl0X2NvdW50ID0gYXMubnVtZXJpYyh1c2VfOCRyZWFkbWl0X2NvdW50KQp1c2VfOCAlPiUgCiAgbXV0YXRlKHJlYWRtaXRfY291bnQgPSBjb2FsZXNjZShyZWFkbWl0X2NvdW50LCAwKSkgLT4gdXNlXzkKYGBgCgojIyBNYWtlIExPUyBsb25nIGFuZCBhdmVyYWdlIApgYGB7cn0KSUJEX2hvc3BpdGFsaXphdGlvbnNfMTFfMzBfMjIgJT4lIAogIGRwbHlyOjpzZWxlY3Qoc2JqX2lkLCBpbnBhdGllbnRfZGF5cykgLT4gc2JqX2lkX2xvcwpzYmpfaWRfbG9zICU+JSAKICAgICMgYnVpbGQgZ3JvdXBpbmcgYnkgY29tYmluYXRpb24gb2YgdmFyaWFibGVzCiAgICBkcGx5cjo6Z3JvdXBfYnkoc2JqX2lkKSAlPiUKICAgICMgYWRkIHJvdyBudW1iZXIgd2hpY2ggd29ya3MgcGVyIGdyb3VwIGR1ZSB0byBwcmlvciBncm91cGluZwogICAgZHBseXI6Om11dGF0ZShudW1iZXJzID0gZHBseXI6OnJvd19udW1iZXIoKSkgJT4lCiAgICAjIHVuZ3JvdXAgdG8gcHJldmVudCB1bmV4cGVjdGVkIGJlaGF2aW91ciBkb3duIHN0cmVhbQogICAgZHBseXI6OnVuZ3JvdXAoKSAtPiBsb3NfbnVtYmVycwoKc3ByZWFkKGxvc19udW1iZXJzLCBrZXkgPSBudW1iZXJzLCB2YWx1ZSA9IGlucGF0aWVudF9kYXlzKSAtPiBsb3Nfd2lkZQoKbG9zX3dpZGUkbWVhbl9sb3M9cm93TWVhbnMobG9zX3dpZGVbLGMoMjo0MSldLCBuYS5ybT1UUlVFKSAKCmxvc193aWRlJT4lIAogIGRwbHlyOjpzZWxlY3Qoc2JqX2lkLCBtZWFuX2xvcykgLT4gbWVhbl9kYXlzCmBgYAoKIyMgTWVyZ2UgTE9TIGRhdGEgCmBgYHtyfQoKbWVhbl9kYXlzJHNial9pZCA9IGFzLm51bWVyaWMobWVhbl9kYXlzJHNial9pZCkKdXNlXzkkc2JqX2lkID0gYXMubnVtZXJpYyh1c2VfOSRzYmpfaWQpCmxlZnRfam9pbih1c2VfOSwgbWVhbl9kYXlzLCBieSA9ICJzYmpfaWQiKSAtPiB1dF9jbGVhbjEKCmBgYAoKIyMgCmBgYHtyfQp1dF9jbGVhbjEkbnVtX2FkbWl0cyA9IGFzLmZhY3Rvcih1dF9jbGVhbjEkbnVtX2FkbWl0cykKdXRfY2xlYW4xJGVkX2NvdW50ID0gYXMuZmFjdG9yKHV0X2NsZWFuMSRlZF9jb3VudCkKdXRfY2xlYW4xJHJlYWRtaXRfY291bnQgPSBhcy5mYWN0b3IodXRfY2xlYW4xJHJlYWRtaXRfY291bnQpCmBgYAoKIyBCYXNlbGluZSBDaGFyYWN0ZXJpc3RpY3MgCmBgYHtyfQp1dF9jbGVhbjEgJT4lIAogIGRwbHlyOjpzZWxlY3QoaWJkXzMsIGFnZV95cnMsIGdlbmRlciwgcmFjZV81LCBldGhuaWNfMywgbGFuZ18zLCBtYXhfY2gsIElDLCBhY3RfdG9iLCBudW1fYWRtaXRzLCBlZF9jb3VudCwgc3VyZ19jb3VudCwgcmVhZG1pdF9jb3VudCwgbWVhbl9sb3MpIC0+IHV0X2Jhc2VsaW5lCnV0X2Jhc2VsaW5lICU+JSB0Ymxfc3VtbWFyeShsYWJlbCA9IGxpc3QoaWJkXzMgfiAiSUJEIERpYWdub3NpcyIsIGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgcmFjZV81IH4gIlJhY2UiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiksCiAgICAgICAgc3RhdGlzdGljID0gbGlzdChhbGxfY29udGludW91cygpIH4gInttZWFufSAoe3NkfSkiKSwKICAgICAgICBtaXNzaW5nX3RleHQgPSAiKE1pc3NpbmcpIikKYGBgCiMgQml2YXJpYXRlIGFuYWx5c2lzIHsudGFic2V0fQojIyBIb3NwaXRhbGl6YXRpb25zIApgYGB7cn0KCmBgYAoKIyBIb3NwaXRhbGl6YXRpb25zIHsudGFic2V0fQojIyBUb3RhbCBTVkkgCmBgYHtyfQpsaWJyYXJ5KE1BU1MpCnV0X2NsZWFuMSRudW1fYWRtaXRzID0gYXMubnVtZXJpYyh1dF9jbGVhbjEkbnVtX2FkbWl0cykKYWRtaXRzLm5iIDwtIGdsbS5uYihudW1fYWRtaXRzIH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgICsgbXN0YXRfNSArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIFJQTF9USEVNRVMsCiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0KGxvZyhweWVhcnMpKSwKICAgICAgICAgICAgICAgZGF0YSA9IHV0X2NsZWFuMSkgCnN1bW1hcnkoYWRtaXRzLm5iKQpicm9vbTo6Z2xhbmNlKGFkbWl0cy5uYikKYnJvb206OnRpZHkoYWRtaXRzLm5iLCBleHBvbmVudGlhdGUgPSBUUlVFKQptb2RlbF9wZXJmb3JtYW5jZShhZG1pdHMubmIpCnRibF9yZWdyZXNzaW9uKGFkbWl0cy5uYiwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJhY2VfNSB+ICJSYWNlIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBhY3RfdG9iIH4iQWN0aXZlIFRvYmFjY28gVXNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgSUMgfiAiTW9kZXJhdGUgdG8gU2V2ZXJlIERpc2Vhc2UiLCBpYmRfMyB+ICJJQkQgVHlwZSIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQoKYGBgCiMjIEFsbCBUaGVtZXMgCmBgYHtyfQphZG1pdHMubmIyIDwtIGdsbS5uYihudW1fYWRtaXRzIH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgICsgbXN0YXRfNSAgKyBtYXhfY2ggKyBJQyArICsgYWN0X3RvYiArIFJQTF9USEVNRTEKICAgICAgICAgICAgICAgICAgICArIFJQTF9USEVNRTIgKyBSUExfVEhFTUUzICsgUlBMX1RIRU1FNCwKICAgICAgICAgICAgICAgICAgICBvZmZzZXQobG9nKHB5ZWFycykpLAogICAgICAgICAgICAgICBkYXRhID0gdXRfY2xlYW4xKSAKc3VtbWFyeShhZG1pdHMubmIyKQpicm9vbTo6Z2xhbmNlKGFkbWl0cy5uYjIpCmJyb29tOjp0aWR5KGFkbWl0cy5uYjIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGFkbWl0cy5uYjIpCnRibF9yZWdyZXNzaW9uKGFkbWl0cy5uYjIsIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByYWNlXzUgfiAiUmFjZSIsIFJQTF9USEVNRTEgfiAiU29jZWlvZWNvbm9taWMgU3RhdHVzIiwgUlBMX1RIRU1FMiB+ICJIb3VzZWhvbGQgQ29tcG9zaXRpb24iLCBSUExfVEhFTUUzIH4gIk1pbm9yaXR5IFN0YXR1cyBhbmQgTGFuZ3VhZ2UiLCBSUExfVEhFTUU0IH4gIkhvdXNpbmcgYW5kIFRyYW5zcG9ydGF0aW9uIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgSUMgfiAiTW9kZXJhdGUgdG8gU2V2ZXJlIERpc2Vhc2UiLCBpYmRfMyB+ICJJQkQgVHlwZSIsIGFjdF90b2IgfiAiQWN0aXZlIFRvYmFjY28gVXNlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCgpgYGAKCiMgRUQgVmlzaXRzIHsudGFic2V0fQoKIyMgU1ZJIApgYGB7cn0KdXRfY2xlYW4xJGVkX2NvdW50ID0gYXMubnVtZXJpYyh1dF9jbGVhbjEkZWRfY291bnQpCmVkLm5iIDwtIGdsbS5uYihlZF9jb3VudCB+IGliZF8zICsgYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICsgYWN0X3RvYiArIG1zdGF0XzUgKyBtYXhfY2ggKyBJQyArIFJQTF9USEVNRVMsCiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0KGxvZyhweWVhcnMpKSwKICAgICAgICAgICAgICAgZGF0YSA9IHVzZV83KSAKc3VtbWFyeShlZC5uYikKYnJvb206OmdsYW5jZShlZC5uYikKYnJvb206OnRpZHkoZWQubmIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKGVkLm5iKQp0YmxfcmVncmVzc2lvbihlZC5uYiwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJhY2VfNSB+ICJSYWNlIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBJQyB+ICJNb2RlcmF0ZSB0byBTZXZlcmUgRGlzZWFzZSIsIGliZF8zIH4gIklCRCBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCmBgYAoKIyMgUXVhcnRpbGVzIApgYGB7cn0KdXRfY2xlYW4xJGVkX2NvdW50ID0gYXMubnVtZXJpYyh1dF9jbGVhbjEkZWRfY291bnQpCmVkLm5iMiA8LSBnbG0ubmIoZWRfY291bnQgfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyArIGFjdF90b2IgKyBtc3RhdF81ICsgbWF4X2NoICsgSUMgKyBSUExfNCwKICAgICAgICAgICAgICAgICAgICBvZmZzZXQobG9nKHB5ZWFycykpLAogICAgICAgICAgICAgICBkYXRhID0gdXNlXzcpIApzdW1tYXJ5KGVkLm5iMikKYnJvb206OmdsYW5jZShlZC5uYjIpCmJyb29tOjp0aWR5KGVkLm5iMiwgZXhwb25lbnRpYXRlID0gVFJVRSkKbW9kZWxfcGVyZm9ybWFuY2UoZWQubmIyKQp0YmxfcmVncmVzc2lvbihlZC5uYjIsIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByYWNlXzUgfiAiUmFjZSIsIFJQTF80IH4gIlNWSSBRdWFydGlsZXMiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBJQyB+ICJNb2RlcmF0ZSB0byBTZXZlcmUgRGlzZWFzZSIsIGliZF8zIH4gIklCRCBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCmBgYAoKIyMgQWxsIHRoZW1lcyAKYGBge3J9CnV0X2NsZWFuMSRlZF9jb3VudCA9IGFzLm51bWVyaWModXRfY2xlYW4xJGVkX2NvdW50KQplZC5uYjMgPC0gZ2xtLm5iKGVkX2NvdW50IH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgKyBhY3RfdG9iICsgbXN0YXRfNSArIG1heF9jaCArIElDICsgUlBMX1RIRU1FMSArIFJQTF9USEVNRTIgKyBSUExfVEhFTUUzICsgUlBMX1RIRU1FNCwKICAgICAgICAgICAgICAgICAgICBvZmZzZXQobG9nKHB5ZWFycykpLAogICAgICAgICAgICAgICBkYXRhID0gdXNlXzcpIApzdW1tYXJ5KGVkLm5iMykKYnJvb206OmdsYW5jZShlZC5uYjMpCmJyb29tOjp0aWR5KGVkLm5iMywgZXhwb25lbnRpYXRlID0gVFJVRSkKbW9kZWxfcGVyZm9ybWFuY2UoZWQubmIzKQp0YmxfcmVncmVzc2lvbihlZC5uYjMsIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByYWNlXzUgfiAiUmFjZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIElDIH4gIk1vZGVyYXRlIHRvIFNldmVyZSBEaXNlYXNlIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKYGBgCgojIFN1cmdlcmllcyB7LnRhYnNldH0KYGBge3J9CnV0X2NsZWFuMSRzdXJnX2NvdW50ID0gYXMubnVtZXJpYyh1dF9jbGVhbjEkc3VyZ19jb3VudCkKc3VyZy5uYiA8LSBnbG0ubmIoc3VyZ19jb3VudCB+IGliZF8zICsgYWdlX3lycyArIGdlbmRlciArIHJhY2VfNSArIGV0aG5pY18zICsgbGFuZ18zICArIG1zdGF0XzUgKyBhY3RfdG9iICsgbWF4X2NoICsgSUMgKyBSUExfVEhFTUVTLAogICAgICAgICAgICAgICAgICAgIG9mZnNldChsb2cocHllYXJzKSksCiAgICAgICAgICAgICAgIGRhdGEgPSB1dF9jbGVhbjEpIApzdW1tYXJ5KHN1cmcubmIpCmJyb29tOjpnbGFuY2Uoc3VyZy5uYikKYnJvb206OnRpZHkoc3VyZy5uYiwgZXhwb25lbnRpYXRlID0gVFJVRSkKbW9kZWxfcGVyZm9ybWFuY2Uoc3VyZy5uYikKdGJsX3JlZ3Jlc3Npb24oc3VyZy5uYiwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJhY2VfNSB+ICJSYWNlIiwgUlBMX1RIRU1FUyB+ICJUb3RhbCBTVkkiLCBhY3RfdG9iIH4iQWN0aXZlIFRvYmFjY28gVXNlIiwgbWF4X2NoIH4gIkNoYXJsc29uIENvbW9yYmlkaXR5IEluZGV4IiwgSUMgfiAiTW9kZXJhdGUgdG8gU2V2ZXJlIERpc2Vhc2UiLCBpYmRfMyB+ICJJQkQgVHlwZSIpLCBleHBvbmVudGlhdGUgPSBUUlVFKQpgYGAKCiMjIEFsbCB0aGVtZXMgCmBgYHtyfQoKc3VyZy5uYjIgPC0gZ2xtLm5iKHN1cmdfY291bnQgfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyAgKyBtc3RhdF81ICsgYWN0X3RvYiArIG1heF9jaCArIElDICsgUlBMX1RIRU1FMSArIFJQTF9USEVNRTIgKyBSUExfVEhFTUUzICsgUlBMX1RIRU1FNCwKICAgICAgICAgICAgICAgICAgICBvZmZzZXQobG9nKHB5ZWFycykpLAogICAgICAgICAgICAgICBkYXRhID0gdXRfY2xlYW4xKSAKc3VtbWFyeShzdXJnLm5iMikKYnJvb206OmdsYW5jZShzdXJnLm5iMikKYnJvb206OnRpZHkoc3VyZy5uYjIsIGV4cG9uZW50aWF0ZSA9IFRSVUUpCm1vZGVsX3BlcmZvcm1hbmNlKHN1cmcubmIyKQp0YmxfcmVncmVzc2lvbihzdXJnLm5iMiwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgZXRobmljXzMgfiAiRXRobmljaXR5IiwgbGFuZ18zIH4gIlByZWZlcnJlZCBMYW5ndWFnZSIsIHJhY2VfNSB+ICJSYWNlIiwgYWN0X3RvYiB+IkFjdGl2ZSBUb2JhY2NvIFVzZSIsIG1heF9jaCB+ICJDaGFybHNvbiBDb21vcmJpZGl0eSBJbmRleCIsIElDIH4gIk1vZGVyYXRlIHRvIFNldmVyZSBEaXNlYXNlIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSwgZXhwb25lbnRpYXRlID0gVFJVRSkKYGBgCgojIFJlYWRtaXNzaW9ucyB7LnRhYnNldH0KIyMgU1ZJIApgYGB7cn0KdXRfY2xlYW4xJHJlYWRtaXRfY291bnQgPSBhcy5udW1lcmljKHV0X2NsZWFuMSRyZWFkbWl0X2NvdW50KQpyZWFkbWl0Lm5iIDwtIGdsbS5uYihyZWFkbWl0X2NvdW50IH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgICsgbXN0YXRfNSArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIFJQTF9USEVNRVMsCiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0KGxvZyhweWVhcnMpKSwKICAgICAgICAgICAgICAgZGF0YSA9IHV0X2NsZWFuMSkgCnN1bW1hcnkocmVhZG1pdC5uYikKYnJvb206OmdsYW5jZShyZWFkbWl0Lm5iKQpicm9vbTo6dGlkeShyZWFkbWl0Lm5iLCBleHBvbmVudGlhdGUgPSBUUlVFKQptb2RlbF9wZXJmb3JtYW5jZShyZWFkbWl0Lm5iKQp0YmxfcmVncmVzc2lvbihyZWFkbWl0Lm5iLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCBldGhuaWNfMyB+ICJFdGhuaWNpdHkiLCBsYW5nXzMgfiAiUHJlZmVycmVkIExhbmd1YWdlIiwgcmFjZV81IH4gIlJhY2UiLCBSUExfVEhFTUVTIH4gIlRvdGFsIFNWSSIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBJQyB+ICJNb2RlcmF0ZSB0byBTZXZlcmUgRGlzZWFzZSIsIGliZF8zIH4gIklCRCBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCmBgYAoKIyMgQWxsIHRoZW1lcyAKYGBge3J9CnJlYWRtaXQubmIyIDwtIGdsbS5uYihyZWFkbWl0X2NvdW50IH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgICsgbXN0YXRfNSArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIFJQTF9USEVNRTEgKyBSUExfVEhFTUUyICsgUlBMX1RIRU1FMyArIFJQTF9USEVNRTQsCiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0KGxvZyhweWVhcnMpKSwKICAgICAgICAgICAgICAgZGF0YSA9IHV0X2NsZWFuMSkgCnN1bW1hcnkocmVhZG1pdC5uYjIpCmJyb29tOjpnbGFuY2UocmVhZG1pdC5uYjIpCmJyb29tOjp0aWR5KHJlYWRtaXQubmIyLCBleHBvbmVudGlhdGUgPSBUUlVFKQptb2RlbF9wZXJmb3JtYW5jZShyZWFkbWl0Lm5iMikKdGJsX3JlZ3Jlc3Npb24ocmVhZG1pdC5uYjIsIGxhYmVsID0gbGlzdChhZ2VfeXJzIH4gIkFnZSIsIGdlbmRlcn4gIkdlbmRlciIsIGV0aG5pY18zIH4gIkV0aG5pY2l0eSIsIGxhbmdfMyB+ICJQcmVmZXJyZWQgTGFuZ3VhZ2UiLCByYWNlXzUgfiAiUmFjZSIsIGFjdF90b2IgfiJBY3RpdmUgVG9iYWNjbyBVc2UiLCBtYXhfY2ggfiAiQ2hhcmxzb24gQ29tb3JiaWRpdHkgSW5kZXgiLCBJQyB+ICJNb2RlcmF0ZSB0byBTZXZlcmUgRGlzZWFzZSIsIGliZF8zIH4gIklCRCBUeXBlIiksIGV4cG9uZW50aWF0ZSA9IFRSVUUpCmBgYAoKIyBMT1Mgey50YWJzZXR9CiMjIFNWSSAKYGBge3J9CkxPUzEgPC0gbG0obWVhbl9sb3MgfiBpYmRfMyArIGFnZV95cnMgKyBnZW5kZXIgKyByYWNlXzUgKyBldGhuaWNfMyArIGxhbmdfMyAgCiAgICAgICAgICAgKyBtc3RhdF81ICsgYWN0X3RvYiArIG1heF9jaCArIElDICsgUlBMX1RIRU1FUywKICAgICAgICAgICAgICAgZGF0YSA9IHV0X2NsZWFuMSkgCnN1bW1hcnkoTE9TMSkKYnJvb206OmdsYW5jZShMT1MxKQpicm9vbTo6dGlkeShMT1MxKQptb2RlbF9wZXJmb3JtYW5jZShMT1MxKQp0YmxfcmVncmVzc2lvbihMT1MxLCBsYWJlbCA9IGxpc3QoYWdlX3lycyB+ICJBZ2UiLCBnZW5kZXJ+ICJHZW5kZXIiLCBpYmRfMyB+ICJJQkQgVHlwZSIpKQpgYGAKCiMjIEFsbCB0aGVtZXMgCmBgYHtyfQpMT1MyIDwtIGxtKG1lYW5fbG9zIH4gaWJkXzMgKyBhZ2VfeXJzICsgZ2VuZGVyICsgcmFjZV81ICsgZXRobmljXzMgKyBsYW5nXzMgIAogICAgICAgICAgICsgbXN0YXRfNSArIGFjdF90b2IgKyBtYXhfY2ggKyBJQyArIFJQTF9USEVNRTEgKyBSUExfVEhFTUUyICsgUlBMX1RIRU1FMyArIFJQTF9USEVNRTQsCiAgICAgICAgICAgICAgIGRhdGEgPSB1dF9jbGVhbjEpIApzdW1tYXJ5KExPUzIpCmJyb29tOjpnbGFuY2UoTE9TMikKYnJvb206OnRpZHkoTE9TMikKbW9kZWxfcGVyZm9ybWFuY2UoTE9TMikKdGJsX3JlZ3Jlc3Npb24oTE9TMiwgbGFiZWwgPSBsaXN0KGFnZV95cnMgfiAiQWdlIiwgZ2VuZGVyfiAiR2VuZGVyIiwgaWJkXzMgfiAiSUJEIFR5cGUiKSkKYGBgCgpgYGB7cn0Kc2F2ZSh1dF9jbGVhbjEsIGZpbGUgPSAidXRfY2xlYW4xLnJkYSIpCmBgYAoK