#load processed survey data
load("C:/Users/court/Google Drive/Research/SRHS/landlord_survey_w_weights.RData")
# keep original data just in case
land_0 <- land
land <- land %>%
mutate(ll_size = case_when(
q7 >= 1 & q7 <=4 ~ "small (1-4 units)",
q7 >= 5 ~ "big (5+ units)")) %>%
set_variable_labels(ll_size = "Landlord size") %>%
mutate(land, ll_size = factor(ll_size, levels = c("small (1-4 units)", "big (5+ units)")))
land <- land %>%
mutate(ll_size_b = case_when(
ll_size == "small (1-4 units)" ~ 0,
ll_size == "big (5+ units)" ~ 1)) %>%
set_variable_labels(ll_size = "Landlord size")
| Business Practice | Binary Outcome |
|---|---|
| 1. Average household income of tenants | 1 “>$50,000”, 0 “<=50,000” |
| 2. Use of a third-party renter screening service | 1 “yes”, 0 “no” |
| 3. Flexible leasing decisions | 1 “yes”, 0 “no” |
| 4. Ever rented to a voucher holder? | 1 “yes”, 0 “no” |
| 5. Average monthly rent | 1 “> $15,000” , 0 “<= $1,500” |
| 6. Amount rent raised in last year | Quasi-linear outcome: 0%, 1%, 6%, 11%, 16%, 26% |
| 7. Raised rent due to changes in the market | 1 “yes”, 0 “no” |
| 8. Number of tenancies terminated in last year | 1 “1 or more”, 0 “none” |
| 9. Reason for terminating tenancy - fail to pay rent | 1 “failed rent”, 0 “terminated for other reason” |
| 10. Reason for terminating tenancy - paid rent late | 1 “paid late”, 0 “terminated for other reason” |
| 11. Reason for terminating tenancy - lost voucher | 1 “lost voucher”, 0 “terminated for other reason” |
| 12. Reason for terminating tenancy - broke rules | 1 “broke rules”, 0 “terminated for other reason” |
| 13. Reason for terminating tenancy - occupy | 1 “so LL could occupy unit”, 0 “terminated for other reason” |
| 14. Reason for terminating tenancy - sell unit | 1 “sell unit”, 0 “terminated for other reason” |
| 15. Reason for terminating tenancy - other reason | 1 “other reason”, 0 “previously listed specific reason” |
| 16. Terminating tenancy more often through court or directly with tenant | 1 “with courts”, 0 “with tenant” |
## Business Practices
# make binary for logistic regression
# tenant_income
land <- land %>%
mutate(tenant_income_b = case_when(
tenant_income == "Less than $25,000 per year" ~ 0,
tenant_income == "$25,000-50,000 per year" ~ 0,
TRUE ~ 1
)) %>%
set_value_labels(tenant_income_b = c("> $50,000" = 1, "<= $50,000" = 0)) %>%
set_variable_labels(tenant_income_b = "Avg tenant income")
# rent_screen
land <- land %>%
mutate(rent_screen_b = case_when(
rent_screen == "Yes" ~ 1,
TRUE ~ 0)) %>%
set_value_labels(rent_screen_b = c("yes" = 1, "no" = 0)) %>%
set_variable_labels(rent_screen_b = "Screening service")
# flex_decision = q26
land <- land %>%
mutate(flex_decision_b = case_when(
flex_decision == "Strongly agree" ~ 1,
flex_decision == "Agree" ~ 1,
flex_decision == "Neither agree nor disagree" ~ 0,
flex_decision == "Disagree" ~ 0,
flex_decision == "Strongly agree" ~ 0,
flex_decision == "Refused" ~ 0)) %>%
set_value_labels(flex_decision_b = c("agree" = 1, "disagree/neutral" = 0)) %>%
set_variable_labels(flex_decision_b = "Flexible decisions")
# rent_voucher = q57
land <- land %>%
mutate(rent_voucher_b = case_when(
rent_voucher == "Yes" ~ 1,
TRUE ~ 0)) %>%
set_value_labels(rent_voucher_b = c("yes" = 1, "no, dk, missing" = 0)) %>%
set_variable_labels(rent_voucher_b = "Rented to voucher")
# rent_monthly = q72
# NOTE - googled avg monthly rent in seattle: ~ $2000
# 214 missing (NA), 52 refused
land <- land %>%
mutate(rent_monthly_b = case_when(
rent_monthly == "Less than $500" ~ 0,
rent_monthly == "$500-1,000" ~ 0,
rent_monthly == "$1,001-1,500" ~ 0,
rent_monthly == "Refused" ~ NA_real_,
TRUE ~ 1)) %>%
set_value_labels(rent_monthly_b = c("> $1,500" = 1, "<= $1,500" = 0)) %>%
set_variable_labels(rent_monthly_b = "Avg. monthly rent")
# rent_raise = q85
# made quasi-numeric
land <- land %>%
mutate(rent_raise_b = case_when(
rent_raise == "0% (I have not raised the rent in a Seattle unit in the past year)" ~ 0,
rent_raise == "1-5%" ~ 1,
rent_raise == "6-10%" ~ 6,
rent_raise == "11-15%" ~ 11,
rent_raise == "16-25%" ~ 16,
rent_raise == "More than 25%" ~ 26,
rent_raise == "Refused" ~ NA_real_)) %>%
set_variable_labels(rent_raise_b = "Pct. raised rent")
land <- land %>%
mutate(rent_raise_market_b = case_when(
rent_raise_market == "No" ~ 0,
rent_raise_market == "Yes" ~ 1)) %>%
set_value_labels(rent_raise_market_b = c("yes" = 1, "no" = 0)) %>%
set_variable_labels(rent_raise_market_b = "Raise due to market")
# terminate_num = q67
land <- land %>%
mutate(terminate_num_b = case_when(
terminate_num == "0" ~ 0,
terminate_num == "Refused" ~ NA_real_,
TRUE ~ 1)) %>%
set_value_labels(terminate_num_b = c("none" = 0, "1 or more/dk" = 1)) %>%
set_variable_labels(terminate_num_b = "Number tenancies terminated")
# terminate_reason_pay = q68_1
land <- land %>%
mutate(terminate_reason_pay_b = case_when(
terminate_reason_pay == "Tenant(s) failed to pay rent or fees" ~ 1),
terminate_reason_pay_b = case_when(
terminate_reason_pay_b == 1 ~ 1,
terminate_num_b ==1 ~ 0)) %>%
set_value_labels(terminate_reason_pay_b = c("Failed to pay rent" = 1, "Other reason" = 0)) %>%
set_variable_labels(terminate_reason_pay_b = "Termination reason - pay rent")
# terminate_reason_paylate = q68_2
land <- land %>%
mutate(terminate_reason_paylate_b = case_when(
terminate_reason_paylate == "Tenant(s) consistently paid rent/fees late" ~ 1),
terminate_reason_paylate_b = case_when(
terminate_reason_paylate_b == 1 ~ 1,
terminate_num_b ==1 ~ 0)) %>%
set_value_labels(terminate_reason_paylate_b = c("Paid late" = 1, "Other reason" = 0)) %>%
set_variable_labels(terminate_reason_paylate_b = "Termination reason - late rent")
# terminate_reason_voucher = q68_3
land <- land %>%
mutate(terminate_reason_voucher_b = case_when(
terminate_reason_voucher == "Tenant lost their housing voucher" ~ 1),
terminate_reason_voucher_b = case_when(
terminate_reason_voucher_b == 1 ~ 1,
terminate_num_b ==1 ~ 0)) %>%
set_value_labels(terminate_reason_voucher_b = c("Lost voucher" = 1, "Other reason" = 0)) %>%
set_variable_labels(terminate_reason_voucher_b = "Termination reason - lost voucher")
# terminate_reason_rules = q68_4
land <- land %>%
mutate(terminate_reason_rules_b = case_when(
terminate_reason_rules == "Tenant(s) failed to comply with rules of rental agreement (other than regarding rent) " ~ 1),
terminate_reason_rules_b = case_when(
terminate_reason_rules_b == 1 ~ 1,
terminate_num_b ==1 ~ 0)) %>%
set_value_labels(terminate_reason_rules_b = c("Broke rules" = 1, "Other reason" = 0)) %>%
set_variable_labels(terminate_reason_rules_b = "Termination reason - rules")
# terminate_reason_occupy = q68_5
land <- land %>%
mutate(terminate_reason_occupy_b = case_when(
terminate_reason_occupy == "So that you or a family member could occupy the unit" ~ 1),
terminate_reason_occupy_b = case_when(
terminate_reason_occupy_b == 1 ~ 1,
terminate_num_b ==1 ~ 0)) %>%
set_value_labels(terminate_reason_occupy_b = c("LL occupy unit" = 1, "Other reason" = 0)) %>%
set_variable_labels(terminate_reason_occupy_b = "Termination reason - occupy unit")
# terminate_reason_sell = q68_6
land <- land %>%
mutate(terminate_reason_sell_b = case_when(
terminate_reason_sell == "So that you could sell the unit" ~ 1),
terminate_reason_sell_b = case_when(
terminate_reason_sell_b == 1 ~ 1,
terminate_num_b ==1 ~ 0)) %>%
set_value_labels(terminate_reason_sell_b = c("Sell unit" = 1, "Other reason" = 0)) %>%
set_variable_labels(terminate_reason_sell_b = "Termination reason - sell")
# terminate_reason_other = q68_7
land <- land %>%
mutate(terminate_reason_other_b = case_when(
terminate_reason_other == "Other" ~ 1),
terminate_reason_other_b = case_when(
terminate_reason_other_b == 1 ~ 1,
terminate_num_b ==1 ~ 0)) %>%
set_value_labels(terminate_reason_other_b = c("Other reason" = 1, "One of specific reasons" = 0)) %>%
set_variable_labels(terminate_reason_other_b = "Termination reason - other")
# terminate_court = q69
land <- land %>%
mutate(terminate_court_b = case_when(
terminate_court == " Always directly with the tenant" ~ 0,
terminate_court == "Through the courts and directly with the tenant, but more often directly with the tenant" ~ 0,
terminate_court == "Refulsed" ~ NA_real_,
TRUE ~ 1)) %>%
set_value_labels(terminate_court_b = c("with tenant" = 0, "with courts" = 1)) %>%
set_variable_labels(terminate_reason_other_b = "Termination within court")
waffle_data1 <- c(`Small Landlords (1-4 units)`=(2946),
`Large Landlords (5+ units)`=890)
# # weighted
# waffle_data2 <- c(`Small Landlords (1-4 units)`=(3235),
# `Large Landlords (5+ units)`=601)
w1 <- waffle(waffle_data1/100, rows=5, size=1, colors=c("pink", "red"),
title="77% of respondents are small landlords (unweighted)",
xlab="One square ~ 100 landlords")
# w2 <- waffle(waffle_data2/100, rows=5, size=1, colors=c("pink", "red"),
# title="weighted: 84% of respondents are small landlords",
# xlab="One square ~ 100 landlords")
grid.arrange(w1)
# PIE CHART - DIFFICULT TO FIGURE OUT ....
# land %>% ggplot(aes(x="",
# y=ll_size,
# fill=ll_size)) +
# geom_bar(stat="identity", width=1) +
# coord_polar("y", start=0) +
# theme_void() +
# labs(title = "Landlord size and financial role",
# fill = "Landlord Size")
One-third of big landlords have less than 10 years of tenure, while half of small landlords have 10 or less years.
land %>% ggplot(aes(x=ll_size,
fill=forcats::fct_rev(tenure))) +
geom_bar(position='fill') +
labs(y = "Prop",
x = "Landlord size",
title = "Landlord size and tenure")
Very few small landlords cited primary income, though over one-third of big landlords cite their rental units as primary income. Most small landlords use rental units as an investment.
land %>% ggplot(aes(x=ll_size,
fill=finrole_coll)) +
geom_bar(position='fill') +
labs(y = "Prop",
x = "Landlord size",
title = "Landlord size and financial role",
fill = "Financial Role")
Median number of units ranges from 1-3 regardless of tenure.
# create means to plot
mean1 <- aggregate(q7 ~ tenure, land, mean)
median1 <- aggregate(q7 ~ tenure, land, median)
land %>% select(tenure, q7, finrole_coll) %>% na.omit() %>%
ggplot(aes(x=tenure,
y=q7,
color=tenure)) +
geom_boxplot() +
geom_jitter(height = 0.15, alpha=0.3) +
geom_hline(yintercept=5,
color = "red", size=0.7) +
scale_y_continuous(limits=(c(NA,1000)),
trans='log10') +
labs(y = "Number of units",
x = "Tenure",
title = "Landlord characteristics and tenure",
subtitle = "Red line indicates threshold for *big landlords*") +
geom_text(data = mean1, aes(label = paste("mean = ",round(q7, 1)), y = 800), size = 3) +
geom_text(data = median1, aes(label = paste("median = ", round(q7, 1)), y = 1000), size = 3)
Median number of units ranges from 7-30 for landlords who use rental units as primary income.
# create means to plot
mean1 <- aggregate(q7 ~ tenure * finrole_coll, land, mean)
median1 <- aggregate(q7 ~ tenure * finrole_coll, land, median)
land %>% select(tenure, q7, finrole_coll) %>% na.omit() %>%
ggplot(aes(x=tenure,
y=q7,
color=finrole_coll,
na.rm=TRUE)) +
geom_boxplot() +
geom_point(position=position_jitterdodge(jitter.height = 0.15), alpha=0.3) +
geom_hline(yintercept=5,
color = "red", size=0.7) +
scale_y_continuous(limits=(c(NA,1000)),
trans='log10') +
theme(legend.position="bottom") +
labs(y = "Number of units",
x = "Tenure",
title = "Landlord characteristics, tenure, and finances",
subtitle = "Red line indicates threshold for *big landlords*",
color = "Financial Role") +
geom_text(data=median1, aes(label =paste("median = ", label=round(q7,1)),
y= 500,
group=finrole_coll),
size = 2.75,
position=ggstance::position_dodgev(height=0.45))
Initial look at model variables. Below I’ve forced the business practices to be binary outcomes or quasi-numeric for a correlation matrix. FYI - Q7 is the total number of units.
# correlation map
land %>% select(q7, total_bldgs_b, tenure_b,
tenant_income_b, rent_screen_b, flex_decision_b,
rent_voucher_b, rent_monthly_b, rent_raise_b, rent_raise_market_b, terminate_num_b,
terminate_court_b) %>%
ggcorr(,nbreaks = 5,
label=TRUE,
hjust = 1,
size = 4)
tbl_m1 <- tbl_regression(m1, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
tbl_m2 <- tbl_regression(m2, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
tbl_m3 <- tbl_regression(m3, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
tbl_m4 <- tbl_regression(m4, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
tbl_m5 <- tbl_regression(m5, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
tbl_m6 <- tbl_regression(m6, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
tbl_m7 <- tbl_regression(m7, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
tbl_m8 <- tbl_regression(m8, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
tbl_m9 <- tbl_regression(m9, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
tbl_m10 <- tbl_regression(m10, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
# tbl_m13 <- tbl_regression(m13, exponentiate = TRUE)%>%
# bold_p() %>% italicize_levels() %>%
# add_glance_source_note()
tbl_m14 <- tbl_regression(m14, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
tbl_m16 <- tbl_regression(m16, exponentiate = TRUE)%>%
bold_p() %>% italicize_levels() %>%
add_glance_source_note()
tbl_merge(
tbls = list(tbl_m1,
tbl_m2,
tbl_m3,
tbl_m4),
tab_spanner = c("Tenant income",
"Rent screen",
"Flex decision",
"Rent to vouchers"))
| Characteristic | Tenant income | Rent screen | Flex decision | Rent to vouchers | ||||
|---|---|---|---|---|---|---|---|---|
| OR (95% CI)1 | p-value | OR (95% CI)1 | p-value | OR (95% CI)1 | p-value | OR (95% CI)1 | p-value | |
| Landlord size | ||||||||
| small (1-4 units) | — | — | — | — | ||||
| big (5+ units) | 0.58 (0.48 to 0.69) | <0.001 | 1.78 (1.50 to 2.12) | <0.001 | 0.94 (0.79 to 1.13) | 0.53 | 6.30 (5.18 to 7.68) | <0.001 |
| tenure | ||||||||
| 0-2 yrs | — | — | — | — | ||||
| 2-4 yrs | 0.40 (0.22 to 0.67) | <0.001 | 0.60 (0.42 to 0.86) | 0.005 | 1.63 (1.13 to 2.36) | 0.010 | 2.37 (1.21 to 5.24) | 0.020 |
| 5-9 yrs | 0.67 (0.36 to 1.15) | 0.16 | 0.69 (0.48 to 1.01) | 0.054 | 1.54 (1.04 to 2.28) | 0.031 | 1.36 (0.66 to 3.14) | 0.43 |
| 10-19 yrs | 0.29 (0.16 to 0.48) | <0.001 | 0.41 (0.29 to 0.59) | <0.001 | 2.01 (1.39 to 2.91) | <0.001 | 4.11 (2.12 to 9.03) | <0.001 |
| 20+ yrs | 0.60 (0.33 to 1.02) | 0.074 | 0.65 (0.45 to 0.93) | 0.020 | 1.69 (1.16 to 2.48) | 0.006 | 1.24 (0.61 to 2.82) | 0.57 |
| Financial role | ||||||||
| Investment Income | — | — | — | — | ||||
| Multiple Roles | 1.02 (0.85 to 1.23) | 0.82 | 0.96 (0.82 to 1.12) | 0.60 | 1.12 (0.95 to 1.31) | 0.18 | 1.16 (0.93 to 1.44) | 0.19 |
| Primary Income | 0.84 (0.67 to 1.07) | 0.16 | 1.21 (0.97 to 1.51) | 0.086 | 1.21 (0.95 to 1.54) | 0.12 | 1.86 (1.44 to 2.40) | <0.001 |
| Null deviance = 4,109; Null df = 3,639; Log-likelihood = -1,972; AIC = 3,961; BIC = 4,010; Deviance = 3,945; Residual df = 3,632; No. Obs. = 3,640 | ||||||||
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||||||||
Monthly Rent
tbl_merge(
tbls = list(tbl_m5,
tbl_m6,
tbl_m7),
tab_spanner = c("Monthly rent",
"Raise rent",
"Raise rent due to market"))
| Characteristic | Monthly rent | Raise rent | Raise rent due to market | |||
|---|---|---|---|---|---|---|
| OR (95% CI)1 | p-value | exp(Beta) (95% CI)1 | p-value | OR (95% CI)1 | p-value | |
| Landlord size | ||||||
| small (1-4 units) | — | — | — | |||
| big (5+ units) | 0.30 (0.25 to 0.35) | <0.001 | 2.88 (1.91 to 4.34) | <0.001 | 1.05 (0.85 to 1.30) | 0.65 |
| tenure | ||||||
| 0-2 yrs | — | — | — | |||
| 2-4 yrs | 0.43 (0.25 to 0.70) | 0.001 | 7.70 (3.27 to 18.1) | <0.001 | 0.77 (0.38 to 1.63) | 0.48 |
| 5-9 yrs | 0.85 (0.48 to 1.44) | 0.55 | 4.32 (1.75 to 10.7) | 0.002 | 0.71 (0.34 to 1.52) | 0.36 |
| 10-19 yrs | 0.29 (0.17 to 0.47) | <0.001 | 5.44 (2.32 to 12.7) | <0.001 | 0.55 (0.27 to 1.16) | 0.10 |
| 20+ yrs | 0.61 (0.35 to 1.00) | 0.063 | 5.08 (2.12 to 12.2) | <0.001 | 0.83 (0.40 to 1.75) | 0.61 |
| Financial role | ||||||
| Investment Income | — | — | — | |||
| Multiple Roles | 1.10 (0.92 to 1.32) | 0.28 | 1.34 (0.92 to 1.94) | 0.12 | 1.29 (1.05 to 1.59) | 0.015 |
| Primary Income | 1.05 (0.83 to 1.33) | 0.68 | 1.91 (1.13 to 3.23) | 0.016 | 1.31 (1.00 to 1.72) | 0.049 |
| Null deviance = 4,371; Null df = 3,592; Log-likelihood = -1,995; AIC = 4,005; BIC = 4,055; Deviance = 3,989; Residual df = 3,585; No. Obs. = 3,593 | ||||||
|
1
OR = Odds Ratio, CI = Confidence Interval, CI = Confidence Interval
|
||||||
tbl_merge(
tbls = list(tbl_m8,
tbl_m9,
tbl_m10,
tbl_m14,
tbl_m16),
tab_spanner = c("Terminated tenancy",
"Terminate - fail to pay",
"Terminate - pay late",
"Terminate - sell",
"Terminate within court"))
| Characteristic | Terminated tenancy | Terminate - fail to pay | Terminate - pay late | Terminate - sell | Terminate within court | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| OR (95% CI)1 | p-value | OR (95% CI)1 | p-value | OR (95% CI)1 | p-value | OR (95% CI)1 | p-value | OR (95% CI)1 | p-value | |
| Landlord size | ||||||||||
| small (1-4 units) | — | — | — | — | — | |||||
| big (5+ units) | 3.79 (3.00 to 4.77) | <0.001 | 3.80 (2.45 to 5.96) | <0.001 | 1.58 (0.96 to 2.62) | 0.073 | 0.45 (0.23 to 0.85) | 0.016 | 0.11 (0.07 to 0.20) | <0.001 |
| tenure | ||||||||||
| 0-2 yrs | — | — | — | — | — | |||||
| 2-4 yrs | 1.16 (0.65 to 2.25) | 0.63 | 1.45 (0.40 to 5.67) | 0.58 | 0.92 (0.28 to 3.58) | 0.89 | 1.53 (0.27 to 29.0) | 0.69 | 1.29 (0.29 to 3.97) | 0.69 |
| 5-9 yrs | 0.93 (0.49 to 1.87) | 0.83 | 1.06 (0.26 to 4.50) | 0.94 | 0.64 (0.17 to 2.76) | 0.52 | 2.52 (0.39 to 49.6) | 0.41 | 1.03 (0.22 to 3.53) | 0.96 |
| 10-19 yrs | 0.97 (0.55 to 1.88) | 0.93 | 0.95 (0.27 to 3.69) | 0.94 | 0.51 (0.15 to 2.00) | 0.29 | 1.72 (0.31 to 32.4) | 0.61 | 1.84 (0.42 to 5.57) | 0.34 |
| 20+ yrs | 0.92 (0.50 to 1.82) | 0.80 | 1.33 (0.35 to 5.41) | 0.68 | 0.57 (0.16 to 2.36) | 0.41 | 1.26 (0.19 to 24.8) | 0.84 | 2.00 (0.43 to 6.96) | 0.31 |
| Financial role | ||||||||||
| Investment Income | — | — | — | — | — | |||||
| Multiple Roles | 0.94 (0.73 to 1.22) | 0.66 | 1.07 (0.64 to 1.79) | 0.79 | 0.79 (0.43 to 1.42) | 0.45 | 1.67 (0.82 to 3.35) | 0.15 | 1.14 (0.62 to 2.15) | 0.69 |
| Primary Income | 1.57 (1.18 to 2.08) | 0.002 | 1.96 (1.15 to 3.34) | 0.013 | 0.79 (0.43 to 1.42) | 0.43 | 1.48 (0.66 to 3.28) | 0.33 | 0.47 (0.28 to 0.80) | 0.006 |
| Null deviance = 2,663; Null df = 3,619; Log-likelihood = -1,232; AIC = 2,480; BIC = 2,529; Deviance = 2,464; Residual df = 3,612; No. Obs. = 3,620 | ||||||||||
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||||||||||
model_list <- list("Tenant income" = m1,
"Rent screen" = m2,
"Flex decision" = m3,
"Rent to vouchers" = m4,
"Monthly rent" = m5,
"Raise rent" = m6,
"Raise rent due to market" = m7,
"Terminated tenancy" = m8,
"Terminate - fail to pay" = m9,
"Terminate - pay late" = m10,
"Terminate - sell" = m14,
"Terminate within court" = m16)
# msummary(model_list,
# estimate = "{estimate}{stars}",
# title = "Business Practice Models")