coded_df <- readRDS(here("SRHS_coded.RDS"))
df <- coded_df %>% select(
   ll_size,
   bp_income_b,
   bp_fair_b,
   bp_dec_offer_b,
   bp_any3,
   bp_terminate_b,
   bp_rent_raise_b,
   zip_region,
   ll_comm_unit,
   ll_finrole)


df <- df %>% rename("Financial_role" = ll_finrole,
                    "Landlord_size_" = ll_size,
                    "Region" = zip_region,
                    "Offers_to_nonstandard" = bp_dec_offer_b,
                    "Fair_market_price" = bp_fair_b,
                    "Raised_rent" = bp_rent_raise_b,
                    "Rents_to_vulnerable" = bp_any3,
                     "Ever_terminated" = bp_terminate_b,
                     "Renter_income" = bp_income_b,
                    "Common_unit_size" = ll_comm_unit)

Average renter income

Outcome:

  • 1: > $50,000
  • 0: <= $50,000

Crosstabs:

df %>% 
  tbl_summary(
    by = Renter_income,
    percent = "row",
    missing = "no",
    include = c(Landlord_size_, Common_unit_size, Region, Financial_role),
    statistic = list(all_categorical() ~ "{n} ({p}%)")) %>%
  add_p() %>%
  bold_labels() %>%
  modify_header(update = all_stat_cols() ~ "**{level}**") %>% # Remove the Ns from the header row
modify_spanning_header(starts_with("stat_") ~ "**Renter Income**")
Characteristic Renter Income p-value1
0 1
Landlord_size_, n (%) <0.001
big 340 (38%) 550 (62%)
small 642 (22%) 2,304 (78%)
Common_unit_size, n (%) <0.001
Studio 297 (33%) 591 (67%)
1 bedroom 318 (22%) 1,124 (78%)
2 bedroom 141 (17%) 705 (83%)
3 bedroom 82 (28%) 216 (72%)
4+ bedroom 84 (57%) 64 (43%)
Region, n (%) <0.001
central 112 (16%) 573 (84%)
northcentral 321 (29%) 803 (71%)
southcentral 161 (32%) 342 (68%)
northwest 81 (21%) 303 (79%)
southwest 110 (25%) 332 (75%)
multiple 197 (28%) 501 (72%)
Financial_role, n (%) <0.001
Investment Income 516 (23%) 1,726 (77%)
Multiple Roles 245 (26%) 711 (74%)
Primary Income 160 (35%) 297 (65%)

1 Pearson's Chi-squared test


Models:

m1 <- glm(Renter_income ~1 + Landlord_size_,
          family=binomial(link="logit"), data=df)

m2 <- glm(Renter_income ~1 + Landlord_size_ + Common_unit_size,
          family=binomial(link="logit"), data=df)

m3 <- glm(Renter_income ~1 + Landlord_size_ + Common_unit_size + Region,
          family=binomial(link="logit"), data=df)

m4 <- glm(Renter_income ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m4_income <- glm(Renter_income ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m1_t <- tbl_regression(m1, exponentiate=TRUE) %>% add_significance_stars(hide_se = T) %>%
  add_glance_table(include = c(AIC, BIC))
m2_t <- tbl_regression(m2, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m3_t <- tbl_regression(m3, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m4_t <- tbl_regression(m4, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))


tbl_merge (
  tbls = list(m1_t, m2_t, m3_t, m4_t),
  tab_spanner = c("**M1**", "**M2**", "**M3**", "**M4**")) %>%
  modify_table_body(~.x %>% arrange(row_type == "glance_statistic"))
Characteristic M1 M2 M3 M4
OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2
Landlord_size_
big
small 2.22*** 1.88*** 1.97*** 1.86***
Common_unit_size
Studio
1 bedroom 1.59*** 1.76*** 1.76***
2 bedroom 1.99*** 2.38*** 2.47***
3 bedroom 1.06 1.27 1.32
4+ bedroom 0.39*** 0.38*** 0.39***
Region
central
northcentral 0.37*** 0.37***
southcentral 0.33*** 0.34***
northwest 0.58** 0.57**
southwest 0.44*** 0.42***
multiple 0.58*** 0.58***
Financial_role
Investment Income
Multiple Roles 0.88
Primary Income 0.86
AIC 4,277 3,933 3,864 3,668
BIC 4,289 3,970 3,932 3,748

1 *p<0.05; **p<0.01; ***p<0.001

2 OR = Odds Ratio, CI = Confidence Interval



Offers to nonstandard

Outcome: how often offer tenancy to low-resource applicants who do not meet standard requirements

  • 1: always or often
  • 0: sometimes or rarely


Crosstabs:

df %>% 
  tbl_summary(
    by = Offers_to_nonstandard,
    percent = "row",
    missing = "no",
    include = c(Landlord_size_, Common_unit_size, Region, Financial_role),
    statistic = list(all_categorical() ~ "{n} ({p}%)")) %>%
  add_p() %>%
  bold_labels() %>%
  modify_header(update = all_stat_cols() ~ "**{level}**") %>% # Remove the Ns from the header row
modify_spanning_header(starts_with("stat_") ~ "**Offers to nonstandard**")
Characteristic Offers to nonstandard p-value1
0 1
Landlord_size_, n (%) <0.001
big 773 (88%) 105 (12%)
small 2,619 (92%) 236 (8.3%)
Common_unit_size, n (%) <0.001
Studio 786 (90%) 84 (9.7%)
1 bedroom 1,295 (92%) 113 (8.0%)
2 bedroom 749 (92%) 66 (8.1%)
3 bedroom 261 (89%) 32 (11%)
4+ bedroom 117 (80%) 30 (20%)
Region, n (%) 0.011
central 609 (91%) 61 (9.1%)
northcentral 996 (92%) 83 (7.7%)
southcentral 449 (91%) 45 (9.1%)
northwest 346 (93%) 26 (7.0%)
southwest 390 (91%) 39 (9.1%)
multiple 602 (87%) 87 (13%)
Financial_role, n (%) <0.001
Investment Income 2,014 (92%) 169 (7.7%)
Multiple Roles 851 (91%) 81 (8.7%)
Primary Income 379 (84%) 71 (16%)

1 Pearson's Chi-squared test


Models:

m1 <- glm(Offers_to_nonstandard ~1 + Landlord_size_,
          family=binomial(link="logit"), data=df)

m2 <- glm(Offers_to_nonstandard ~1 + Landlord_size_ + Common_unit_size,
          family=binomial(link="logit"), data=df)

m3 <- glm(Offers_to_nonstandard ~1 + Landlord_size_ + Common_unit_size + Region,
          family=binomial(link="logit"), data=df)


m4 <- glm(Offers_to_nonstandard ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m4_offer <- glm(Offers_to_nonstandard ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m1_t <- tbl_regression(m1, exponentiate=TRUE) %>% add_significance_stars(hide_se = T) %>%
  add_glance_table(include = c(AIC, BIC))
m2_t <- tbl_regression(m2, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m3_t <- tbl_regression(m3, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m4_t <- tbl_regression(m4, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))


tbl_merge (
  tbls = list(m1_t, m2_t, m3_t, m4_t),
  tab_spanner = c("**M1**", "**M2**", "**M3**", "**M4**")) %>%
  modify_table_body(~.x %>% arrange(row_type == "glance_statistic"))
Characteristic M1 M2 M3 M4
OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2
Landlord_size_
big
small 0.66*** 0.69** 0.80 0.98
Common_unit_size
Studio
1 bedroom 0.88 0.88 0.92
2 bedroom 0.95 0.96 1.07
3 bedroom 1.31 1.36 1.51
4+ bedroom 2.34*** 2.40*** 2.18**
Region
central
northcentral 0.83 0.75
southcentral 1.04 1.04
northwest 0.83 0.68
southwest 1.05 0.99
multiple 1.36 1.21
Financial_role
Investment Income
Multiple Roles 1.09
Primary Income 1.99***
AIC 2,276 2,153 2,154 2,034
BIC 2,288 2,190 2,222 2,113

1 *p<0.05; **p<0.01; ***p<0.001

2 OR = Odds Ratio, CI = Confidence Interval



Rent to vulnerable

Outomce: ever rented to tenant using vouchers, criminal history, or had disability requests

  • 0: no
  • 1: yes


Crosstabs:

df %>% 
  tbl_summary(
    by = Rents_to_vulnerable,
    percent = "row",
    missing = "no",
    include = c(Landlord_size_, Common_unit_size, Region, Financial_role),
    statistic = list(all_categorical() ~ "{n} ({p}%)")) %>%
  add_p() %>%
  bold_labels() %>%
  modify_header(update = all_stat_cols() ~ "**{level}**") %>% # Remove the Ns from the header row
modify_spanning_header(starts_with("stat_") ~ "**Rent to vulnerable**")
Characteristic Rent to vulnerable p-value1
0 1
Landlord_size_, n (%) <0.001
big 286 (32%) 604 (68%)
small 2,344 (80%) 602 (20%)
Common_unit_size, n (%) <0.001
Studio 522 (59%) 366 (41%)
1 bedroom 994 (69%) 448 (31%)
2 bedroom 638 (75%) 208 (25%)
3 bedroom 225 (76%) 73 (24%)
4+ bedroom 79 (53%) 69 (47%)
Region, n (%) <0.001
central 535 (78%) 150 (22%)
northcentral 865 (77%) 259 (23%)
southcentral 325 (65%) 178 (35%)
northwest 292 (76%) 92 (24%)
southwest 296 (67%) 146 (33%)
multiple 317 (45%) 381 (55%)
Financial_role, n (%) <0.001
Investment Income 1,674 (75%) 568 (25%)
Multiple Roles 652 (68%) 304 (32%)
Primary Income 173 (38%) 284 (62%)

1 Pearson's Chi-squared test


Models:

m1 <- glm(Rents_to_vulnerable ~1 + Landlord_size_,
          family=binomial(link="logit"), data=df)

m2 <- glm(Rents_to_vulnerable ~1 + Landlord_size_ + Common_unit_size,
          family=binomial(link="logit"), data=df)

m3 <- glm(Rents_to_vulnerable ~1 + Landlord_size_ + Common_unit_size + Region,
          family=binomial(link="logit"), data=df)


m4 <- glm(Rents_to_vulnerable ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m4_any3 <- glm(Rents_to_vulnerable ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m1_t <- tbl_regression(m1, exponentiate=TRUE) %>% add_significance_stars(hide_se = T) %>%
  add_glance_table(include = c(AIC, BIC))
m2_t <- tbl_regression(m2, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m3_t <- tbl_regression(m3, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m4_t <- tbl_regression(m4, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))


tbl_merge (
  tbls = list(m1_t, m2_t, m3_t, m4_t),
  tab_spanner = c("**M1**", "**M2**", "**M3**", "**M4**")) %>%
  modify_table_body(~.x %>% arrange(row_type == "glance_statistic"))
Characteristic M1 M2 M3 M4
OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2
Landlord_size_
big
small 0.12*** 0.12*** 0.14*** 0.17***
Common_unit_size
Studio
1 bedroom 0.92 0.86 0.89
2 bedroom 1.02 0.93 0.94
3 bedroom 0.98 0.94 0.98
4+ bedroom 1.10 1.16 1.12
Region
central
northcentral 1.27 1.18
southcentral 2.39*** 2.24***
northwest 1.42* 1.25
southwest 2.29*** 2.17***
multiple 2.49*** 2.21***
Financial_role
Investment Income
Multiple Roles 1.16
Primary Income 2.19***
AIC 4,105 3,906 3,837 3,654
BIC 4,118 3,943 3,905 3,734

1 *p<0.05; **p<0.01; ***p<0.001

2 OR = Odds Ratio, CI = Confidence Interval



Fair market price

Outcome: average monthly rent for most common unit size above or below fair market price

  • 0: below or equal to fair market price
  • 1: above fair market price
  • note: here are 2018 king county fair market prices
    • 1br=$1,108
    • 2br=$1,243
    • 3br=$1,527
    • 4br=$2,211
    • 5br=$2,617


Crosstabs:

df %>% 
  tbl_summary(
    by = Fair_market_price,
    percent = "row",
    missing = "no",
    include = c(Landlord_size_, Common_unit_size, Region, Financial_role),
    statistic = list(all_categorical() ~ "{n} ({p}%)")) %>%
  add_p() %>%
  bold_labels() %>%
  modify_header(update = all_stat_cols() ~ "**{level}**") %>% # Remove the Ns from the header row
modify_spanning_header(starts_with("stat_") ~ "**Fair market price**")
Characteristic Fair market price p-value1
0 1
Landlord_size_, n (%) <0.001
big 148 (17%) 742 (83%)
small 797 (27%) 2,149 (73%)
Common_unit_size, n (%) <0.001
Studio 0 (0%) 888 (100%)
1 bedroom 369 (26%) 1,073 (74%)
2 bedroom 488 (58%) 358 (42%)
3 bedroom 88 (30%) 210 (70%)
4+ bedroom 0 (0%) 148 (100%)
Region, n (%) <0.001
central 57 (8.3%) 628 (92%)
northcentral 327 (29%) 797 (71%)
southcentral 153 (30%) 350 (70%)
northwest 105 (27%) 279 (73%)
southwest 160 (36%) 282 (64%)
multiple 143 (20%) 555 (80%)
Financial_role, n (%) <0.001
Investment Income 585 (26%) 1,657 (74%)
Multiple Roles 241 (25%) 715 (75%)
Primary Income 73 (16%) 384 (84%)

1 Pearson's Chi-squared test


Models:

m1 <- glm(Fair_market_price ~1 + Landlord_size_,
          family=binomial(link="logit"), data=df)

m2 <- glm(Fair_market_price ~1 + Landlord_size_ + Common_unit_size,
          family=binomial(link="logit"), data=df)

m3 <- glm(Fair_market_price ~1 + Landlord_size_ + Common_unit_size + Region,
          family=binomial(link="logit"), data=df)


m4 <- glm(Fair_market_price ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m4_fair <- glm(Fair_market_price ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m1_t <- tbl_regression(m1, exponentiate=TRUE) %>% add_significance_stars(hide_se = T) %>%
  add_glance_table(include = c(AIC, BIC))
m2_t <- tbl_regression(m2, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m3_t <- tbl_regression(m3, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m4_t <- tbl_regression(m4, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))


tbl_merge (
  tbls = list(m1_t, m2_t, m3_t, m4_t),
  tab_spanner = c("**M1**", "**M2**", "**M3**", "**M4**")) %>%
  modify_table_body(~.x %>% arrange(row_type == "glance_statistic"))
Characteristic M1 M2 M3 M4
OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2
Landlord_size_
big
small 0.54*** 1.30* 1.41** 1.52**
Common_unit_size
Studio
1 bedroom 0.00 0.00 0.00
2 bedroom 0.00 0.00 0.00
3 bedroom 0.00 0.00 0.00
4+ bedroom 1.02 1.00 0.96
Region
central
northcentral 0.32*** 0.34***
southcentral 0.25*** 0.27***
northwest 0.36*** 0.37***
southwest 0.19*** 0.21***
multiple 0.42*** 0.44***
Financial_role
Investment Income
Multiple Roles 1.01
Primary Income 1.34
AIC 4,245 3,162 3,073 2,945
BIC 4,257 3,199 3,141 3,025

1 *p<0.05; **p<0.01; ***p<0.001

2 OR = Odds Ratio, CI = Confidence Interval



Raised rent

Outcome: raised rent in past year

  • 0: no
  • 1: yes


Crosstabs:

df %>% 
  tbl_summary(
    by = Raised_rent,
    percent = "row",
    missing = "no",
    include = c(Landlord_size_, Common_unit_size, Region, Financial_role),
    statistic = list(all_categorical() ~ "{n} ({p}%)")) %>%
  add_p() %>%
  bold_labels() %>%
  modify_header(update = all_stat_cols() ~ "**{level}**") %>% # Remove the Ns from the header row
modify_spanning_header(starts_with("stat_") ~ "**Raised rent**")
Characteristic Raised rent p-value1
0 1
Landlord_size_, n (%) <0.001
big 122 (14%) 755 (86%)
small 1,236 (43%) 1,666 (57%)
Common_unit_size, n (%) <0.001
Studio 271 (31%) 608 (69%)
1 bedroom 496 (35%) 932 (65%)
2 bedroom 343 (41%) 495 (59%)
3 bedroom 119 (40%) 178 (60%)
4+ bedroom 35 (24%) 111 (76%)
Region, n (%) <0.001
central 246 (37%) 427 (63%)
northcentral 427 (39%) 680 (61%)
southcentral 190 (38%) 310 (62%)
northwest 149 (40%) 226 (60%)
southwest 184 (42%) 251 (58%)
multiple 162 (24%) 527 (76%)
Financial_role, n (%) <0.001
Investment Income 888 (40%) 1,325 (60%)
Multiple Roles 311 (33%) 629 (67%)
Primary Income 82 (18%) 369 (82%)

1 Pearson's Chi-squared test


Models:

m1 <- glm(Raised_rent ~1 + Landlord_size_,
          family=binomial(link="logit"), data=df)

m2 <- glm(Raised_rent ~1 + Landlord_size_ + Common_unit_size,
          family=binomial(link="logit"), data=df)

m3 <- glm(Raised_rent ~1 + Landlord_size_ + Common_unit_size + Region,
          family=binomial(link="logit"), data=df)

m4 <- glm(Raised_rent ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m4_raise <- glm(Raised_rent ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m1_t <- tbl_regression(m1, exponentiate=TRUE) %>% add_significance_stars(hide_se = T) %>%
  add_glance_table(include = c(AIC, BIC))
m2_t <- tbl_regression(m2, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m3_t <- tbl_regression(m3, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m4_t <- tbl_regression(m4, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))


tbl_merge (
  tbls = list(m1_t, m2_t, m3_t, m4_t),
  tab_spanner = c("**M1**", "**M2**", "**M3**", "**M4**")) %>%
  modify_table_body(~.x %>% arrange(row_type == "glance_statistic"))
Characteristic M1 M2 M3 M4
OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2
Landlord_size_
big
small 0.22*** 0.22*** 0.23*** 0.26***
Common_unit_size
Studio
1 bedroom 1.06 1.08 1.09
2 bedroom 1.00 1.03 1.06
3 bedroom 1.03 1.04 1.05
4+ bedroom 1.29 1.29 1.20
Region
central
northcentral 0.93 0.96
southcentral 0.97 0.95
northwest 0.90 0.93
southwest 0.77 0.77
multiple 1.12 1.05
Financial_role
Investment Income
Multiple Roles 1.26**
Primary Income 1.77***
AIC 4,671 4,405 4,408 4,179
BIC 4,683 4,443 4,476 4,259

1 *p<0.05; **p<0.01; ***p<0.001

2 OR = Odds Ratio, CI = Confidence Interval



Ever terminated

Outcome: in 2017, did you terminate tenancies

  • 0: none
  • 1: 1 or more


Crosstabs:

df %>% 
  tbl_summary(
    by = Ever_terminated,
    percent = "row",
    missing = "no",
    include = c(Landlord_size_, Common_unit_size, Region, Financial_role),
    statistic = list(all_categorical() ~ "{n} ({p}%)")) %>%
  add_p() %>%
  bold_labels() %>%
  modify_header(update = all_stat_cols() ~ "**{level}**") %>% # Remove the Ns from the header row
modify_spanning_header(starts_with("stat_") ~ "**Ever terminated**")
Characteristic Ever terminated p-value1
0 1
Landlord_size_, n (%) <0.001
big 648 (73%) 236 (27%)
small 2,705 (92%) 220 (7.5%)
Common_unit_size, n (%) <0.001
Studio 753 (85%) 130 (15%)
1 bedroom 1,267 (88%) 173 (12%)
2 bedroom 785 (93%) 58 (6.9%)
3 bedroom 262 (88%) 36 (12%)
4+ bedroom 107 (73%) 40 (27%)
Region, n (%) <0.001
central 613 (91%) 64 (9.5%)
northcentral 1,015 (91%) 102 (9.1%)
southcentral 449 (90%) 51 (10%)
northwest 352 (92%) 30 (7.9%)
southwest 385 (88%) 53 (12%)
multiple 539 (78%) 156 (22%)
Financial_role, n (%) <0.001
Investment Income 2,007 (90%) 221 (9.9%)
Multiple Roles 846 (89%) 103 (11%)
Primary Income 342 (75%) 114 (25%)

1 Pearson's Chi-squared test


Models:

m1 <- glm(Ever_terminated ~1 + Landlord_size_,
          family=binomial(link="logit"), data=df)

m2 <- glm(Ever_terminated ~1 + Landlord_size_ + Common_unit_size,
          family=binomial(link="logit"), data=df)

m3 <- glm(Ever_terminated ~1 + Landlord_size_ + Common_unit_size + Region,
          family=binomial(link="logit"), data=df)

m4 <- glm(Ever_terminated ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m4_terminate <- glm(Ever_terminated ~1 + Landlord_size_ + Common_unit_size + Region + Financial_role,
          family=binomial(link="logit"), data=df)

m1_t <- tbl_regression(m1, exponentiate=TRUE) %>% add_significance_stars(hide_se = T) %>%
  add_glance_table(include = c(AIC, BIC))
m2_t <- tbl_regression(m2, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m3_t <- tbl_regression(m3, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))
m4_t <- tbl_regression(m4, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))


tbl_merge (
  tbls = list(m1_t, m2_t, m3_t, m4_t),
  tab_spanner = c("**M1**", "**M2**", "**M3**", "**M4**")) %>%
  modify_table_body(~.x %>% arrange(row_type == "glance_statistic"))
Characteristic M1 M2 M3 M4
OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2
Landlord_size_
big
small 0.22*** 0.23*** 0.27*** 0.31***
Common_unit_size
Studio
1 bedroom 1.06 1.03 1.10
2 bedroom 0.81 0.77 0.81
3 bedroom 1.49 1.46 1.56*
4+ bedroom 2.05*** 2.13*** 2.19***
Region
central
northcentral 1.07 1.05
southcentral 1.21 1.25
northwest 1.02 1.01
southwest 1.60* 1.59*
multiple 1.77** 1.74**
Financial_role
Investment Income
Multiple Roles 0.93
Primary Income 1.50**
AIC 2,591 2,455 2,447 2,353
BIC 2,604 2,493 2,515 2,433

1 *p<0.05; **p<0.01; ***p<0.001

2 OR = Odds Ratio, CI = Confidence Interval



COMPARE ALL MODELS

m4_t_offer <- tbl_regression(m4_offer, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))

m4_t_income <- tbl_regression(m4_income, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))

m4_t_any3 <- tbl_regression(m4_any3, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))

m4_t_fair <- tbl_regression(m4_fair, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))

m4_t_raise <- tbl_regression(m4_raise, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))

m4_t_terminate <- tbl_regression(m4_terminate, exponentiate=TRUE) %>% add_significance_stars(hide_se=T) %>%
  add_glance_table(include = c(AIC, BIC))






tbl_merge (
  tbls = list(m4_t_income, m4_t_offer, m4_t_any3, m4_t_fair, m4_t_raise, m4_t_terminate),
  tab_spanner = c("**Renter income**", "**Offers to nonstandard**", "**Rents to vulnerable**", "**Fair market price**", "**Raised rent**", "**Terminated lease**")) %>%
  modify_table_body(~.x %>% arrange(row_type == "glance_statistic"))
Characteristic Renter income Offers to nonstandard Rents to vulnerable Fair market price Raised rent Terminated lease
OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2 OR (95% CI)1,2
Landlord_size_
big
small 1.86*** 0.98 0.17*** 1.52** 0.26*** 0.31***
Common_unit_size
Studio
1 bedroom 1.76*** 0.92 0.89 0.00 1.09 1.10
2 bedroom 2.47*** 1.07 0.94 0.00 1.06 0.81
3 bedroom 1.32 1.51 0.98 0.00 1.05 1.56*
4+ bedroom 0.39*** 2.18** 1.12 0.96 1.20 2.19***
Region
central
northcentral 0.37*** 0.75 1.18 0.34*** 0.96 1.05
southcentral 0.34*** 1.04 2.24*** 0.27*** 0.95 1.25
northwest 0.57** 0.68 1.25 0.37*** 0.93 1.01
southwest 0.42*** 0.99 2.17*** 0.21*** 0.77 1.59*
multiple 0.58*** 1.21 2.21*** 0.44*** 1.05 1.74**
Financial_role
Investment Income
Multiple Roles 0.88 1.09 1.16 1.01 1.26** 0.93
Primary Income 0.86 1.99*** 2.19*** 1.34 1.77*** 1.50**
AIC 3,668 2,034 3,654 2,945 4,179 2,353
BIC 3,748 2,113 3,734 3,025 4,259 2,433

1 *p<0.05; **p<0.01; ***p<0.001

2 OR = Odds Ratio, CI = Confidence Interval