coded_df <- readRDS("C:/Users/court/Google Drive/Research/SRHS/SRHS_coded.RDS")
coded_df <- coded_df %>%
mutate_if(
is.labelled,
~(as_factor(.)))
df <- coded_df %>% select(
ll_finrole2,
ll_size,
ll_size2,
ll_comm_unit,
bp_advert_b,
bp_screen_b,
bp_dec_flex_b,
bp_dec_standard_b,
bp_dec_offer_b,
bp_vouch_b,
bp_crim_b,
bp_dis_b,
bp_keep_pct_num,
bp_keep_rsn,
bp_install_b,
bp_comm_unit_fee_app_b,
bp_comm_unit_fee_sec_b,
bp_comm_unit_fee_clean_b,
bp_comm_unit_fee_park_b,
bp_fair_b,
bp_comm_unit_fee_incl_b,
bp_comm_unit_deposit_b,
bp_rent_raise_b,
bp_rent_raise_num,
bp_rent_raise_rising,
bp_rent_raise_regulation,
bp_rent_raise_market,
bp_rent_raise_s_tax,
bp_rent_raise_s_repair,
bp_rent_raise_s_new,
bp_rent_raise_s_market,
bp_rent_raise_s_reg,
bp_terminate_b,
bp_terminate_num,
bp_terminate_paylate,
bp_terminate_pay,
bp_court_b,
bp_income_b,
bp_income_num,
ll_remain_1or5yr_b,
ll_remain_reg
)
df <- df %>% mutate(
ll_size = relevel(as.factor(ll_size), ref="small"),
ll_comm_unit = relevel(as.factor(ll_comm_unit), ref="2 bedroom"),
ll_finrole2 = as.factor(ll_finrole2)
)
df <- df %>% rename(
"Landlord_size_" = ll_size2,
"Financial_role_" = ll_finrole2,
"Common_unit_" = ll_comm_unit,
"Advertising" = bp_advert_b,
"Screening" = bp_screen_b,
"Flexible_decision" = bp_dec_flex_b,
"Standard_criteria" = bp_dec_standard_b,
"Offers_to_nonstandard" = bp_dec_offer_b,
"Rent_to_vouchers" = bp_vouch_b,
"Rent_to_criminal" = bp_crim_b,
"Disability_accom." = bp_dis_b,
"Deposit_pct_kept" = bp_keep_pct_num,
"Deposit_kept_reason" = bp_keep_rsn,
"Allow_installments" = bp_install_b,
"Fair_market_price" = bp_fair_b,
"App_fee" = bp_comm_unit_fee_app_b,
"Security_deposit" = bp_comm_unit_fee_sec_b,
"Cleaning_fee" = bp_comm_unit_fee_clean_b,
"Parking_fee" = bp_comm_unit_fee_park_b,
"Utilities_included" = bp_comm_unit_fee_incl_b,
"Last_month_required" = bp_comm_unit_deposit_b,
"Raised_rent" = bp_rent_raise_b,
"Raised_rent_pct" = bp_rent_raise_num,
"Raised_rent_rising_costs" = bp_rent_raise_rising,
"Raised_rent_regulations" = bp_rent_raise_regulation,
"Raised_rent_market" = bp_rent_raise_market,
"Raised_rent_only_tax" = bp_rent_raise_s_tax,
"Raised_rent_only_repairs" =bp_rent_raise_s_repair,
"Raised_rent_only_newproperty" = bp_rent_raise_s_new,
"Raised_rent_only_market" =bp_rent_raise_s_market,
"Raised_rent_only_regulation" =bp_rent_raise_s_reg,
"Ever_terminated" = bp_terminate_b,
"Num_of_terminations" = bp_terminate_num,
"Terminated_paid_late" = bp_terminate_paylate,
"Terminated_non_payment" = bp_terminate_pay,
"Terminated_use_courts" = bp_court_b,
"Renterincome_above_avg_Seattle" = bp_income_b,
"Renter_income_estimate" = bp_income_num,
"Still_mngr_1_5yrs" = ll_remain_1or5yr_b,
"Stop_mngr_burdensome_regs" = ll_remain_reg)
# --------------------------
This document shows simple crosstabs and models for:
Most variables were forced into a binary (likert scale included) and odds ratios are presented. Where possible, numbers were left numeric.
What’s new from our last discussion:
Cross tab of covariate variables:
df %>%
tbl_summary(
by = Financial_role_,
percent = "row",
missing = "no",
include = c(Landlord_size_),
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_") ~ "**Landlord size & financial role**")
| Characteristic | Landlord size & financial role | p-value1 | |
|---|---|---|---|
| Other | Primary Income | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 1,639 (95%) | 82 (4.8%) | |
| small (non single-fam) | 1,128 (93%) | 87 (7.2%) | |
| big (single-fam) | 40 (74%) | 14 (26%) | |
| big (non single-fam) | 554 (67%) | 274 (33%) | |
|
1
Pearson's Chi-squared test
|
|||
Outcome:
Crosstabs:
df %>%
tbl_summary(
by = Advertising,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Advertising**")
| Characteristic | Advertising | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 1,506 (87%) | 221 (13%) | |
| small (non single-fam) | 1,097 (90%) | 122 (10%) | |
| big (single-fam) | 50 (89%) | 6 (11%) | |
| big (non single-fam) | 806 (97%) | 28 (3.4%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 2,997 (89%) | 364 (11%) | |
| Primary Income | 445 (97%) | 12 (2.6%) | |
| Common_unit_, n (%) | 0.018 | ||
| 2 bedroom | 1,325 (92%) | 117 (8.1%) | |
| 0 bedroom (studio/efficiency) | 138 (93%) | 10 (6.8%) | |
| 1 bedroom | 805 (91%) | 83 (9.3%) | |
| 3 bedroom | 751 (89%) | 95 (11%) | |
| 4 bedroom | 192 (86%) | 31 (14%) | |
| 5+ bedroom | 65 (87%) | 10 (13%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Advertising~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Advertising~1 + Landlord_size_ + Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.76 (0.60 to 0.96) | 0.020 |
| big (single-fam) | 0.82 (0.31 to 1.79) | 0.65 |
| big (non single-fam) | 0.24 (0.16 to 0.35) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate = TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.66 (0.49 to 0.87) | 0.004 |
| big (single-fam) | 1.00 (0.38 to 2.21) | >0.99 |
| big (non single-fam) | 0.26 (0.16 to 0.40) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 0.32 (0.16 to 0.57) | <0.001 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.38 (0.65 to 2.64) | 0.37 |
| 1 bedroom | 1.54 (1.13 to 2.09) | 0.006 |
| 3 bedroom | 1.08 (0.80 to 1.45) | 0.62 |
| 4 bedroom | 1.32 (0.84 to 2.02) | 0.21 |
| 5+ bedroom | 1.41 (0.66 to 2.73) | 0.34 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: use of third party screening service
Crosstabs:
df %>%
tbl_summary(
by = Screening,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Screening**")
| Characteristic | Screening | p-value1 | |
|---|---|---|---|
| no | yes | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 1,096 (63%) | 631 (37%) | |
| small (non single-fam) | 714 (59%) | 505 (41%) | |
| big (single-fam) | 30 (54%) | 26 (46%) | |
| big (non single-fam) | 403 (48%) | 431 (52%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 2,001 (60%) | 1,360 (40%) | |
| Primary Income | 230 (50%) | 227 (50%) | |
| Common_unit_, n (%) | 0.76 | ||
| 2 bedroom | 839 (58%) | 603 (42%) | |
| 0 bedroom (studio/efficiency) | 83 (56%) | 65 (44%) | |
| 1 bedroom | 514 (58%) | 374 (42%) | |
| 3 bedroom | 497 (59%) | 349 (41%) | |
| 4 bedroom | 129 (58%) | 94 (42%) | |
| 5+ bedroom | 50 (67%) | 25 (33%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Screening~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Screening~1 + Landlord_size_ + Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.23 (1.06 to 1.43) | 0.007 |
| big (single-fam) | 1.51 (0.88 to 2.57) | 0.13 |
| big (non single-fam) | 1.86 (1.57 to 2.20) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.40 (1.17 to 1.67) | <0.001 |
| big (single-fam) | 1.43 (0.82 to 2.46) | 0.20 |
| big (non single-fam) | 2.11 (1.73 to 2.59) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.15 (0.93 to 1.43) | 0.19 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 0.83 (0.58 to 1.18) | 0.31 |
| 1 bedroom | 0.87 (0.73 to 1.04) | 0.13 |
| 3 bedroom | 1.22 (1.01 to 1.47) | 0.036 |
| 4 bedroom | 1.29 (0.96 to 1.74) | 0.091 |
| 5+ bedroom | 0.85 (0.51 to 1.38) | 0.51 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: criteria used to make leasing decisions is flexible
Crosstabs:
df %>%
tbl_summary(
by = Flexible_decision,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Flexible decision**")
| Characteristic | Flexible decision | p-value1 | |
|---|---|---|---|
| disagree/neutral | agree | ||
| Landlord_size_, n (%) | 0.82 | ||
| small (single-fam) | 676 (43%) | 907 (57%) | |
| small (non single-fam) | 474 (42%) | 644 (58%) | |
| big (single-fam) | 19 (38%) | 31 (62%) | |
| big (non single-fam) | 297 (41%) | 426 (59%) | |
| Financial_role_, n (%) | 0.16 | ||
| Other | 1,311 (43%) | 1,762 (57%) | |
| Primary Income | 149 (39%) | 234 (61%) | |
| Common_unit_, n (%) | 0.63 | ||
| 2 bedroom | 550 (42%) | 763 (58%) | |
| 0 bedroom (studio/efficiency) | 44 (34%) | 84 (66%) | |
| 1 bedroom | 343 (42%) | 467 (58%) | |
| 3 bedroom | 325 (43%) | 432 (57%) | |
| 4 bedroom | 88 (43%) | 116 (57%) | |
| 5+ bedroom | 29 (41%) | 41 (59%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Flexible_decision~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Flexible_decision~1 + Landlord_size_ + Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.01 (0.87 to 1.18) | 0.87 |
| big (single-fam) | 1.22 (0.69 to 2.21) | 0.51 |
| big (non single-fam) | 1.07 (0.89 to 1.28) | 0.46 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.00 (0.83 to 1.19) | 0.96 |
| big (single-fam) | 1.22 (0.68 to 2.26) | 0.51 |
| big (non single-fam) | 0.99 (0.80 to 1.23) | 0.95 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.14 (0.90 to 1.45) | 0.27 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.36 (0.93 to 2.02) | 0.12 |
| 1 bedroom | 0.98 (0.82 to 1.17) | 0.82 |
| 3 bedroom | 0.95 (0.78 to 1.15) | 0.59 |
| 4 bedroom | 0.95 (0.70 to 1.29) | 0.73 |
| 5+ bedroom | 1.02 (0.62 to 1.68) | 0.95 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: decisions based on a standard set of criteria
Crosstabs:
df %>%
tbl_summary(
by = Standard_criteria,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Standard criteria**")
| Characteristic | Standard criteria | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 502 (29%) | 1,208 (71%) | |
| small (non single-fam) | 337 (28%) | 867 (72%) | |
| big (single-fam) | 17 (31%) | 38 (69%) | |
| big (non single-fam) | 162 (20%) | 668 (80%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 924 (28%) | 2,403 (72%) | |
| Primary Income | 89 (20%) | 365 (80%) | |
| Common_unit_, n (%) | 0.83 | ||
| 2 bedroom | 369 (26%) | 1,057 (74%) | |
| 0 bedroom (studio/efficiency) | 39 (27%) | 108 (73%) | |
| 1 bedroom | 235 (27%) | 650 (73%) | |
| 3 bedroom | 233 (28%) | 605 (72%) | |
| 4 bedroom | 54 (24%) | 167 (76%) | |
| 5+ bedroom | 23 (31%) | 52 (69%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Standard_criteria~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Standard_criteria~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.07 (0.91 to 1.26) | 0.42 |
| big (single-fam) | 0.93 (0.53 to 1.70) | 0.80 |
| big (non single-fam) | 1.71 (1.40 to 2.10) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.21 (1.00 to 1.46) | 0.054 |
| big (single-fam) | 0.81 (0.46 to 1.50) | 0.48 |
| big (non single-fam) | 1.77 (1.40 to 2.25) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.39 (1.07 to 1.82) | 0.015 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 0.76 (0.52 to 1.15) | 0.18 |
| 1 bedroom | 0.84 (0.69 to 1.03) | 0.089 |
| 3 bedroom | 1.05 (0.86 to 1.29) | 0.63 |
| 4 bedroom | 1.29 (0.92 to 1.82) | 0.14 |
| 5+ bedroom | 0.88 (0.54 to 1.50) | 0.64 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: how often offer tenancy to low-resource applicants who do not meet standard requirements
Crosstabs:
df %>%
tbl_summary(
by = Offers_to_nonstandard,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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.009 | ||
| small (single-fam) | 1,535 (92%) | 136 (8.1%) | |
| small (non single-fam) | 1,084 (92%) | 100 (8.4%) | |
| big (single-fam) | 50 (91%) | 5 (9.1%) | |
| big (non single-fam) | 723 (88%) | 100 (12%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 2,998 (92%) | 269 (8.2%) | |
| Primary Income | 379 (84%) | 71 (16%) | |
| Common_unit_, n (%) | <0.001 | ||
| 2 bedroom | 1,295 (92%) | 113 (8.0%) | |
| 0 bedroom (studio/efficiency) | 117 (80%) | 30 (20%) | |
| 1 bedroom | 786 (90%) | 84 (9.7%) | |
| 3 bedroom | 749 (92%) | 66 (8.1%) | |
| 4 bedroom | 200 (91%) | 19 (8.7%) | |
| 5+ bedroom | 61 (82%) | 13 (18%) | |
|
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_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.04 (0.79 to 1.36) | 0.77 |
| big (single-fam) | 1.13 (0.39 to 2.62) | 0.80 |
| big (non single-fam) | 1.56 (1.19 to 2.05) | 0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.99 (0.72 to 1.36) | 0.95 |
| big (single-fam) | 1.02 (0.35 to 2.40) | 0.97 |
| big (non single-fam) | 1.21 (0.85 to 1.70) | 0.28 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.83 (1.32 to 2.49) | <0.001 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 2.54 (1.58 to 3.99) | <0.001 |
| 1 bedroom | 1.10 (0.81 to 1.50) | 0.53 |
| 3 bedroom | 1.09 (0.77 to 1.52) | 0.62 |
| 4 bedroom | 1.19 (0.69 to 1.98) | 0.51 |
| 5+ bedroom | 2.46 (1.25 to 4.55) | 0.006 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outomce: ever rented to tenant using vouchers
Crosstabs:
df %>%
tbl_summary(
by = Rent_to_vouchers,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 vouchers**")
| Characteristic | Rent to vouchers | p-value1 | |
|---|---|---|---|
| no, dk, missing | yes | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 1,589 (92%) | 138 (8.0%) | |
| small (non single-fam) | 1,061 (87%) | 158 (13%) | |
| big (single-fam) | 39 (70%) | 17 (30%) | |
| big (non single-fam) | 404 (48%) | 430 (52%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 2,823 (84%) | 538 (16%) | |
| Primary Income | 259 (57%) | 198 (43%) | |
| Common_unit_, n (%) | <0.001 | ||
| 2 bedroom | 1,165 (81%) | 277 (19%) | |
| 0 bedroom (studio/efficiency) | 98 (66%) | 50 (34%) | |
| 1 bedroom | 629 (71%) | 259 (29%) | |
| 3 bedroom | 746 (88%) | 100 (12%) | |
| 4 bedroom | 197 (88%) | 26 (12%) | |
| 5+ bedroom | 64 (85%) | 11 (15%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Rent_to_vouchers~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Rent_to_vouchers~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.71 (1.35 to 2.18) | <0.001 |
| big (single-fam) | 5.02 (2.70 to 8.96) | <0.001 |
| big (non single-fam) | 12.3 (9.85 to 15.3) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.93 (1.47 to 2.54) | <0.001 |
| big (single-fam) | 4.76 (2.53 to 8.60) | <0.001 |
| big (non single-fam) | 11.3 (8.64 to 14.8) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.64 (1.28 to 2.09) | <0.001 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.09 (0.72 to 1.63) | 0.69 |
| 1 bedroom | 1.12 (0.90 to 1.40) | 0.32 |
| 3 bedroom | 1.15 (0.86 to 1.54) | 0.34 |
| 4 bedroom | 1.25 (0.77 to 1.97) | 0.36 |
| 5+ bedroom | 1.35 (0.63 to 2.66) | 0.41 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: ever rented to tenant you knew had criminal record
Crosstabs:
df %>%
tbl_summary(
by = Rent_to_criminal,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Rents to criminal hx**")
| Characteristic | Rents to criminal hx | p-value1 | |
|---|---|---|---|
| no, dk, missing | yes | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 1,561 (90%) | 166 (9.6%) | |
| small (non single-fam) | 1,089 (89%) | 130 (11%) | |
| big (single-fam) | 43 (77%) | 13 (23%) | |
| big (non single-fam) | 527 (63%) | 307 (37%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 2,923 (87%) | 438 (13%) | |
| Primary Income | 286 (63%) | 171 (37%) | |
| Common_unit_, n (%) | <0.001 | ||
| 2 bedroom | 1,226 (85%) | 216 (15%) | |
| 0 bedroom (studio/efficiency) | 103 (70%) | 45 (30%) | |
| 1 bedroom | 699 (79%) | 189 (21%) | |
| 3 bedroom | 735 (87%) | 111 (13%) | |
| 4 bedroom | 198 (89%) | 25 (11%) | |
| 5+ bedroom | 63 (84%) | 12 (16%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Rent_to_criminal~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Rent_to_criminal~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.12 (0.88 to 1.43) | 0.35 |
| big (single-fam) | 2.84 (1.44 to 5.25) | 0.001 |
| big (non single-fam) | 5.48 (4.43 to 6.79) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.30 (0.98 to 1.71) | 0.067 |
| big (single-fam) | 2.51 (1.25 to 4.72) | 0.006 |
| big (non single-fam) | 4.93 (3.77 to 6.47) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 2.15 (1.69 to 2.73) | <0.001 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.47 (0.97 to 2.22) | 0.066 |
| 1 bedroom | 1.04 (0.82 to 1.31) | 0.75 |
| 3 bedroom | 1.41 (1.07 to 1.87) | 0.015 |
| 4 bedroom | 1.24 (0.76 to 1.95) | 0.37 |
| 5+ bedroom | 1.57 (0.77 to 2.97) | 0.19 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: ever had tenant request disability accomodations
Crosstabs:
df %>%
tbl_summary(
by = Disability_accom.,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Disability accommodations**")
| Characteristic | Disability accommodations | p-value1 | |
|---|---|---|---|
| no, dk, missing | yes | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 1,668 (97%) | 59 (3.4%) | |
| small (non single-fam) | 1,134 (93%) | 85 (7.0%) | |
| big (single-fam) | 50 (89%) | 6 (11%) | |
| big (non single-fam) | 604 (72%) | 230 (28%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 3,098 (92%) | 263 (7.8%) | |
| Primary Income | 343 (75%) | 114 (25%) | |
| Common_unit_, n (%) | <0.001 | ||
| 2 bedroom | 1,307 (91%) | 135 (9.4%) | |
| 0 bedroom (studio/efficiency) | 121 (82%) | 27 (18%) | |
| 1 bedroom | 756 (85%) | 132 (15%) | |
| 3 bedroom | 791 (93%) | 55 (6.5%) | |
| 4 bedroom | 211 (95%) | 12 (5.4%) | |
| 5+ bedroom | 74 (99%) | 1 (1.3%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Disability_accom.~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Disability_accom.~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 2.12 (1.51 to 2.99) | <0.001 |
| big (single-fam) | 3.39 (1.26 to 7.66) | 0.007 |
| big (non single-fam) | 10.8 (8.02 to 14.7) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 2.32 (1.57 to 3.43) | <0.001 |
| big (single-fam) | 2.96 (1.09 to 6.77) | 0.018 |
| big (non single-fam) | 10.5 (7.29 to 15.3) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.83 (1.38 to 2.41) | <0.001 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.09 (0.66 to 1.76) | 0.72 |
| 1 bedroom | 1.08 (0.82 to 1.42) | 0.59 |
| 3 bedroom | 1.59 (1.09 to 2.31) | 0.016 |
| 4 bedroom | 1.44 (0.72 to 2.68) | 0.28 |
| 5+ bedroom | 0.23 (0.01 to 1.09) | 0.15 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: what percentage of security/pet deposits did you retain
Crosstabs:
df %>%
tbl_summary(
by = Deposit_pct_kept,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Deposit pct kept**")
| Characteristic | Deposit pct kept | p-value1 | ||||
|---|---|---|---|---|---|---|
| 0 | 25 | 50 | 75 | 100 | ||
| Landlord_size_, n (%) | ||||||
| small (single-fam) | 775 (57%) | 341 (25%) | 60 (4.4%) | 38 (2.8%) | 153 (11%) | |
| small (non single-fam) | 640 (62%) | 228 (22%) | 48 (4.6%) | 26 (2.5%) | 92 (8.9%) | |
| big (single-fam) | 25 (47%) | 14 (26%) | 3 (5.7%) | 3 (5.7%) | 8 (15%) | |
| big (non single-fam) | 359 (45%) | 278 (35%) | 66 (8.3%) | 18 (2.3%) | 78 (9.8%) | |
| Financial_role_, n (%) | <0.001 | |||||
| Other | 1,611 (57%) | 699 (25%) | 138 (4.9%) | 71 (2.5%) | 293 (10%) | |
| Primary Income | 185 (43%) | 157 (37%) | 36 (8.4%) | 14 (3.3%) | 35 (8.2%) | |
| Common_unit_, n (%) | ||||||
| 2 bedroom | 697 (55%) | 337 (27%) | 76 (6.0%) | 23 (1.8%) | 127 (10%) | |
| 0 bedroom (studio/efficiency) | 79 (61%) | 27 (21%) | 9 (6.9%) | 3 (2.3%) | 12 (9.2%) | |
| 1 bedroom | 440 (56%) | 202 (26%) | 43 (5.5%) | 22 (2.8%) | 75 (9.6%) | |
| 3 bedroom | 349 (51%) | 198 (29%) | 30 (4.4%) | 27 (4.0%) | 74 (11%) | |
| 4 bedroom | 103 (55%) | 48 (26%) | 10 (5.4%) | 4 (2.2%) | 21 (11%) | |
| 5+ bedroom | 35 (54%) | 21 (32%) | 1 (1.5%) | 3 (4.6%) | 5 (7.7%) | |
|
1
Pearson's Chi-squared test
|
||||||
Models:
m1 <- glm(Deposit_pct_kept~1 + Landlord_size_,
family=gaussian(link="identity"), data=df)
m2 <- glm(Deposit_pct_kept~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=gaussian(link="identity"), data=df)
tbl_regression(m1)
| Characteristic | Beta (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | -3.1 (-5.6 to -0.54) | 0.018 |
| big (single-fam) | 7.1 (-1.6 to 16) | 0.11 |
| big (non single-fam) | 2.6 (-0.19 to 5.3) | 0.068 |
|
1
CI = Confidence Interval
|
||
tbl_regression(m2)
| Characteristic | Beta (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | -2.4 (-5.3 to 0.57) | 0.11 |
| big (single-fam) | 6.9 (-2.0 to 16) | 0.13 |
| big (non single-fam) | 3.6 (0.34 to 7.0) | 0.031 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.2 (-2.2 to 4.7) | 0.48 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | -2.3 (-8.1 to 3.5) | 0.43 |
| 1 bedroom | -0.86 (-3.8 to 2.0) | 0.56 |
| 3 bedroom | 2.4 (-0.72 to 5.6) | 0.13 |
| 4 bedroom | 1.0 (-4.0 to 6.1) | 0.69 |
| 5+ bedroom | -1.1 (-9.0 to 6.9) | 0.79 |
|
1
CI = Confidence Interval
|
||
Outcome: why did you retain some or all of deposit
Crosstabs:
df %>%
tbl_summary(
by = Deposit_kept_reason,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Deposit kept reason**")
| Characteristic | Deposit kept reason | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.055 | ||
| small (single-fam) | 429 (79%) | 111 (21%) | |
| small (non single-fam) | 266 (81%) | 63 (19%) | |
| big (single-fam) | 18 (78%) | 5 (22%) | |
| big (non single-fam) | 261 (73%) | 97 (27%) | |
| Financial_role_, n (%) | 0.049 | ||
| Other | 819 (79%) | 220 (21%) | |
| Primary Income | 148 (73%) | 56 (27%) | |
| Common_unit_, n (%) | 0.007 | ||
| 2 bedroom | 364 (78%) | 101 (22%) | |
| 0 bedroom (studio/efficiency) | 25 (58%) | 18 (42%) | |
| 1 bedroom | 228 (78%) | 64 (22%) | |
| 3 bedroom | 234 (79%) | 63 (21%) | |
| 4 bedroom | 68 (87%) | 10 (13%) | |
| 5+ bedroom | 18 (67%) | 9 (33%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Deposit_kept_reason~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Deposit_kept_reason~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.92 (0.65 to 1.29) | 0.62 |
| big (single-fam) | 1.07 (0.35 to 2.76) | 0.89 |
| big (non single-fam) | 1.44 (1.05 to 1.96) | 0.023 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.84 (0.56 to 1.25) | 0.40 |
| big (single-fam) | 1.21 (0.39 to 3.19) | 0.71 |
| big (non single-fam) | 1.27 (0.85 to 1.89) | 0.25 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.13 (0.77 to 1.65) | 0.53 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 2.18 (1.10 to 4.25) | 0.022 |
| 1 bedroom | 0.93 (0.64 to 1.35) | 0.72 |
| 3 bedroom | 1.01 (0.68 to 1.48) | 0.98 |
| 4 bedroom | 0.54 (0.25 to 1.08) | 0.10 |
| 5+ bedroom | 1.84 (0.76 to 4.18) | 0.16 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: prior to 2017, allow fees or deposits in installments
Crosstabs:
df %>%
tbl_summary(
by = Allow_installments,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Allow installments**")
| Characteristic | Allow installments | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 972 (60%) | 661 (40%) | |
| small (non single-fam) | 640 (56%) | 508 (44%) | |
| big (single-fam) | 21 (40%) | 32 (60%) | |
| big (non single-fam) | 302 (37%) | 510 (63%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 1,742 (55%) | 1,446 (45%) | |
| Primary Income | 186 (42%) | 257 (58%) | |
| Common_unit_, n (%) | 0.008 | ||
| 2 bedroom | 683 (49%) | 700 (51%) | |
| 0 bedroom (studio/efficiency) | 77 (55%) | 63 (45%) | |
| 1 bedroom | 455 (53%) | 396 (47%) | |
| 3 bedroom | 462 (57%) | 342 (43%) | |
| 4 bedroom | 120 (56%) | 94 (44%) | |
| 5+ bedroom | 33 (47%) | 37 (53%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Allow_installments~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Allow_installments~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.17 (1.00 to 1.36) | 0.047 |
| big (single-fam) | 2.24 (1.29 to 3.97) | 0.005 |
| big (non single-fam) | 2.48 (2.09 to 2.96) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.31 (1.10 to 1.56) | 0.003 |
| big (single-fam) | 2.46 (1.39 to 4.46) | 0.002 |
| big (non single-fam) | 2.81 (2.28 to 3.47) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.15 (0.92 to 1.44) | 0.22 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 0.56 (0.39 to 0.81) | 0.002 |
| 1 bedroom | 0.68 (0.56 to 0.81) | <0.001 |
| 3 bedroom | 0.92 (0.76 to 1.11) | 0.37 |
| 4 bedroom | 0.98 (0.72 to 1.33) | 0.90 |
| 5+ bedroom | 1.40 (0.85 to 2.29) | 0.18 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: do you include utilities in rent for most common unit size
Crosstabs:
df %>%
tbl_summary(
by = Utilities_included,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Utilities included**")
| Characteristic | Utilities included | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 1,375 (81%) | 329 (19%) | |
| small (non single-fam) | 386 (39%) | 610 (61%) | |
| big (single-fam) | 46 (85%) | 8 (15%) | |
| big (non single-fam) | 341 (42%) | 475 (58%) | |
| Financial_role_, n (%) | 0.024 | ||
| Other | 1,900 (61%) | 1,219 (39%) | |
| Primary Income | 241 (55%) | 195 (45%) | |
| Common_unit_, n (%) | <0.001 | ||
| 2 bedroom | 839 (59%) | 582 (41%) | |
| 0 bedroom (studio/efficiency) | 52 (36%) | 91 (64%) | |
| 1 bedroom | 299 (34%) | 579 (66%) | |
| 3 bedroom | 696 (84%) | 135 (16%) | |
| 4 bedroom | 202 (91%) | 21 (9.4%) | |
| 5+ bedroom | 60 (81%) | 14 (19%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Utilities_included~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Utilities_included~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 6.60 (5.55 to 7.88) | <0.001 |
| big (single-fam) | 0.73 (0.32 to 1.47) | 0.41 |
| big (non single-fam) | 5.82 (4.85 to 7.00) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 4.37 (3.62 to 5.29) | <0.001 |
| big (single-fam) | 0.72 (0.29 to 1.57) | 0.44 |
| big (non single-fam) | 3.48 (2.80 to 4.33) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 0.66 (0.52 to 0.84) | <0.001 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.62 (1.13 to 2.36) | 0.010 |
| 1 bedroom | 2.46 (2.05 to 2.97) | <0.001 |
| 3 bedroom | 0.45 (0.36 to 0.57) | <0.001 |
| 4 bedroom | 0.27 (0.16 to 0.42) | <0.001 |
| 5+ bedroom | 0.59 (0.31 to 1.06) | 0.094 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: average security deposit fee for most common unit size
Crosstabs:
df %>%
tbl_summary(
by = Security_deposit,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Security deposit**")
| Characteristic | Security deposit | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 994 (63%) | 591 (37%) | |
| small (non single-fam) | 581 (61%) | 378 (39%) | |
| big (single-fam) | 39 (75%) | 13 (25%) | |
| big (non single-fam) | 564 (71%) | 234 (29%) | |
| Financial_role_, n (%) | 0.016 | ||
| Other | 1,866 (63%) | 1,080 (37%) | |
| Primary Income | 300 (69%) | 133 (31%) | |
| Common_unit_, n (%) | <0.001 | ||
| 2 bedroom | 824 (61%) | 536 (39%) | |
| 0 bedroom (studio/efficiency) | 105 (77%) | 31 (23%) | |
| 1 bedroom | 505 (60%) | 333 (40%) | |
| 3 bedroom | 585 (75%) | 193 (25%) | |
| 4 bedroom | 118 (56%) | 93 (44%) | |
| 5+ bedroom | 41 (58%) | 30 (42%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Security_deposit~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Security_deposit~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.09 (0.93 to 1.29) | 0.28 |
| big (single-fam) | 0.56 (0.29 to 1.03) | 0.074 |
| big (non single-fam) | 0.70 (0.58 to 0.84) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.90 (0.75 to 1.09) | 0.28 |
| big (single-fam) | 0.54 (0.27 to 1.02) | 0.070 |
| big (non single-fam) | 0.55 (0.44 to 0.69) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 0.91 (0.72 to 1.15) | 0.45 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 0.54 (0.35 to 0.82) | 0.005 |
| 1 bedroom | 1.14 (0.95 to 1.37) | 0.16 |
| 3 bedroom | 0.45 (0.36 to 0.55) | <0.001 |
| 4 bedroom | 1.06 (0.78 to 1.44) | 0.70 |
| 5+ bedroom | 1.01 (0.61 to 1.64) | 0.97 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: average application fee for most common unit size
Crosstabs:
df %>%
tbl_summary(
by = App_fee,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**App fee**")
| Characteristic | App fee | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 733 (67%) | 362 (33%) | |
| small (non single-fam) | 429 (63%) | 254 (37%) | |
| big (single-fam) | 17 (44%) | 22 (56%) | |
| big (non single-fam) | 311 (48%) | 334 (52%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 1,322 (63%) | 790 (37%) | |
| Primary Income | 162 (48%) | 176 (52%) | |
| Common_unit_, n (%) | 0.023 | ||
| 2 bedroom | 620 (62%) | 380 (38%) | |
| 0 bedroom (studio/efficiency) | 54 (52%) | 49 (48%) | |
| 1 bedroom | 350 (57%) | 268 (43%) | |
| 3 bedroom | 347 (63%) | 206 (37%) | |
| 4 bedroom | 96 (67%) | 47 (33%) | |
| 5+ bedroom | 23 (51%) | 22 (49%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(App_fee~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(App_fee~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.20 (0.98 to 1.46) | 0.075 |
| big (single-fam) | 2.62 (1.38 to 5.06) | 0.003 |
| big (non single-fam) | 2.17 (1.78 to 2.66) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.27 (1.01 to 1.58) | 0.038 |
| big (single-fam) | 2.29 (1.18 to 4.50) | 0.014 |
| big (non single-fam) | 2.10 (1.65 to 2.68) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.34 (1.04 to 1.72) | 0.022 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.13 (0.74 to 1.72) | 0.58 |
| 1 bedroom | 1.05 (0.85 to 1.29) | 0.67 |
| 3 bedroom | 1.21 (0.96 to 1.53) | 0.11 |
| 4 bedroom | 1.02 (0.69 to 1.50) | 0.93 |
| 5+ bedroom | 1.90 (1.02 to 3.51) | 0.040 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: average cleaning fee for most common unit size
Crosstabs:
df %>%
tbl_summary(
by = Cleaning_fee,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Cleaning fee**")
| Characteristic | Cleaning fee | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.010 | ||
| small (single-fam) | 592 (72%) | 234 (28%) | |
| small (non single-fam) | 378 (79%) | 99 (21%) | |
| big (single-fam) | 19 (76%) | 6 (24%) | |
| big (non single-fam) | 308 (78%) | 87 (22%) | |
| Financial_role_, n (%) | 0.61 | ||
| Other | 1,139 (75%) | 378 (25%) | |
| Primary Income | 152 (77%) | 46 (23%) | |
| Common_unit_, n (%) | <0.001 | ||
| 2 bedroom | 539 (78%) | 155 (22%) | |
| 0 bedroom (studio/efficiency) | 26 (50%) | 26 (50%) | |
| 1 bedroom | 353 (85%) | 60 (15%) | |
| 3 bedroom | 281 (70%) | 123 (30%) | |
| 4 bedroom | 66 (58%) | 47 (42%) | |
| 5+ bedroom | 32 (68%) | 15 (32%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Cleaning_fee~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Cleaning_fee~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.66 (0.51 to 0.86) | 0.003 |
| big (single-fam) | 0.80 (0.29 to 1.92) | 0.64 |
| big (non single-fam) | 0.71 (0.54 to 0.94) | 0.020 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.80 (0.59 to 1.08) | 0.14 |
| big (single-fam) | 0.67 (0.24 to 1.66) | 0.41 |
| big (non single-fam) | 0.93 (0.66 to 1.30) | 0.67 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.02 (0.69 to 1.48) | 0.94 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 3.67 (2.03 to 6.61) | <0.001 |
| 1 bedroom | 0.61 (0.43 to 0.84) | 0.003 |
| 3 bedroom | 1.46 (1.09 to 1.97) | 0.012 |
| 4 bedroom | 2.39 (1.54 to 3.69) | <0.001 |
| 5+ bedroom | 1.53 (0.78 to 2.88) | 0.20 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: average parking fee for most common unit size
Crosstabs:
df %>%
tbl_summary(
by = Parking_fee,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Parking fee**")
| Characteristic | Parking fee | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 193 (96%) | 9 (4.5%) | |
| small (non single-fam) | 118 (85%) | 21 (15%) | |
| big (single-fam) | 8 (89%) | 1 (11%) | |
| big (non single-fam) | 150 (74%) | 52 (26%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 396 (89%) | 50 (11%) | |
| Primary Income | 69 (68%) | 33 (32%) | |
| Common_unit_, n (%) | |||
| 2 bedroom | 190 (91%) | 18 (8.7%) | |
| 0 bedroom (studio/efficiency) | 20 (74%) | 7 (26%) | |
| 1 bedroom | 136 (71%) | 56 (29%) | |
| 3 bedroom | 87 (99%) | 1 (1.1%) | |
| 4 bedroom | 27 (96%) | 1 (3.6%) | |
| 5+ bedroom | 9 (100%) | 0 (0%) | |
|
1
Fisher's exact test; Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Parking_fee~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Parking_fee~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 3.82 (1.74 to 9.03) | 0.001 |
| big (single-fam) | 2.68 (0.14 to 17.1) | 0.38 |
| big (non single-fam) | 7.43 (3.72 to 16.6) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.54 (0.65 to 3.91) | 0.34 |
| big (single-fam) | 1.91 (0.09 to 15.5) | 0.59 |
| big (non single-fam) | 1.91 (0.82 to 4.79) | 0.15 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 2.12 (1.19 to 3.75) | 0.010 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 2.56 (0.88 to 6.97) | 0.072 |
| 1 bedroom | 3.45 (1.92 to 6.45) | <0.001 |
| 3 bedroom | 0.17 (0.01 to 0.94) | 0.10 |
| 4 bedroom | 0.54 (0.03 to 3.20) | 0.58 |
| 5+ bedroom | 0.00 (NA to 1,518,902,281,235,844,825,128) | 0.99 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: average monthly rent for most common unit size above or below fair market price
Crosstabs:
df %>%
tbl_summary(
by = Fair_market_price,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 | ||
| small (single-fam) | 1,132 (66%) | 595 (34%) | |
| small (non single-fam) | 697 (57%) | 522 (43%) | |
| big (single-fam) | 36 (64%) | 20 (36%) | |
| big (non single-fam) | 671 (80%) | 163 (20%) | |
| Financial_role_, n (%) | 0.073 | ||
| Other | 2,204 (66%) | 1,157 (34%) | |
| Primary Income | 319 (70%) | 138 (30%) | |
| Common_unit_, n (%) | <0.001 | ||
| 2 bedroom | 1,252 (87%) | 190 (13%) | |
| 0 bedroom (studio/efficiency) | 60 (41%) | 88 (59%) | |
| 1 bedroom | 560 (63%) | 328 (37%) | |
| 3 bedroom | 488 (58%) | 358 (42%) | |
| 4 bedroom | 176 (79%) | 47 (21%) | |
| 5+ bedroom | 0 (0%) | 75 (100%) | |
|
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_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.42 (1.23 to 1.66) | <0.001 |
| big (single-fam) | 1.06 (0.60 to 1.82) | 0.85 |
| big (non single-fam) | 0.46 (0.38 to 0.56) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.83 (0.67 to 1.01) | 0.065 |
| big (single-fam) | 1.02 (0.55 to 1.86) | 0.94 |
| big (non single-fam) | 0.29 (0.22 to 0.38) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.19 (0.91 to 1.55) | 0.19 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 14.8 (10.1 to 22.0) | <0.001 |
| 1 bedroom | 4.96 (4.00 to 6.18) | <0.001 |
| 3 bedroom | 3.96 (3.20 to 4.92) | <0.001 |
| 4 bedroom | 1.41 (0.97 to 2.01) | 0.068 |
| 5+ bedroom | 91,212,350 (4,852 to 2,791,366,407,498,063,121,664,642,028,482,684,482,006,442,840,846,224) | 0.95 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: require last month’s rent before move in for most common unit size
Crosstabs:
df %>%
tbl_summary(
by = Last_month_required,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Last month required**")
| Characteristic | Last month required | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 932 (55%) | 773 (45%) | |
| small (non single-fam) | 587 (59%) | 402 (41%) | |
| big (single-fam) | 38 (69%) | 17 (31%) | |
| big (non single-fam) | 655 (80%) | 164 (20%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 1,866 (60%) | 1,240 (40%) | |
| Primary Income | 334 (75%) | 112 (25%) | |
| Common_unit_, n (%) | <0.001 | ||
| 2 bedroom | 872 (61%) | 549 (39%) | |
| 0 bedroom (studio/efficiency) | 95 (68%) | 45 (32%) | |
| 1 bedroom | 622 (71%) | 254 (29%) | |
| 3 bedroom | 467 (56%) | 368 (44%) | |
| 4 bedroom | 119 (54%) | 103 (46%) | |
| 5+ bedroom | 37 (50%) | 37 (50%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Last_month_required~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Last_month_required~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.83 (0.70 to 0.97) | 0.018 |
| big (single-fam) | 0.54 (0.29 to 0.95) | 0.037 |
| big (non single-fam) | 0.30 (0.25 to 0.37) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.89 (0.75 to 1.06) | 0.19 |
| big (single-fam) | 0.54 (0.29 to 0.97) | 0.047 |
| big (non single-fam) | 0.36 (0.29 to 0.45) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 0.79 (0.62 to 1.00) | 0.056 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.04 (0.70 to 1.53) | 0.84 |
| 1 bedroom | 0.77 (0.64 to 0.93) | 0.007 |
| 3 bedroom | 1.04 (0.86 to 1.25) | 0.71 |
| 4 bedroom | 1.12 (0.83 to 1.50) | 0.46 |
| 5+ bedroom | 1.36 (0.84 to 2.20) | 0.20 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: raised rent in past year
Crosstabs:
df %>%
tbl_summary(
by = Raised_rent,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 | ||
| small (single-fam) | 779 (45%) | 934 (55%) | |
| small (non single-fam) | 457 (38%) | 732 (62%) | |
| big (single-fam) | 11 (20%) | 43 (80%) | |
| big (non single-fam) | 111 (13%) | 712 (87%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 1,268 (38%) | 2,042 (62%) | |
| Primary Income | 82 (18%) | 369 (82%) | |
| Common_unit_, n (%) | <0.001 | ||
| 2 bedroom | 496 (35%) | 932 (65%) | |
| 0 bedroom (studio/efficiency) | 35 (24%) | 111 (76%) | |
| 1 bedroom | 271 (31%) | 608 (69%) | |
| 3 bedroom | 343 (41%) | 495 (59%) | |
| 4 bedroom | 97 (44%) | 125 (56%) | |
| 5+ bedroom | 22 (29%) | 53 (71%) | |
|
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_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.34 (1.15 to 1.55) | <0.001 |
| big (single-fam) | 3.26 (1.73 to 6.69) | <0.001 |
| big (non single-fam) | 5.35 (4.30 to 6.70) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.54 (1.29 to 1.84) | <0.001 |
| big (single-fam) | 2.86 (1.50 to 5.90) | 0.002 |
| big (non single-fam) | 5.28 (4.12 to 6.82) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.61 (1.23 to 2.13) | <0.001 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 0.98 (0.65 to 1.52) | 0.94 |
| 1 bedroom | 0.87 (0.72 to 1.06) | 0.16 |
| 3 bedroom | 1.09 (0.90 to 1.31) | 0.39 |
| 4 bedroom | 0.99 (0.73 to 1.34) | 0.94 |
| 5+ bedroom | 1.75 (1.05 to 3.01) | 0.035 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: raised rent by how much percent
Crosstabs:
df %>%
tbl_summary(
by = Raised_rent_pct,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 pct**")
| Characteristic | Raised rent pct | p-value1 | |||||
|---|---|---|---|---|---|---|---|
| 0 | 3 | 7 | 13 | 20 | 30 | ||
| Landlord_size_, n (%) | |||||||
| small (single-fam) | 779 (45%) | 503 (29%) | 281 (16%) | 61 (3.6%) | 56 (3.3%) | 33 (1.9%) | |
| small (non single-fam) | 457 (38%) | 368 (31%) | 259 (22%) | 47 (4.0%) | 37 (3.1%) | 21 (1.8%) | |
| big (single-fam) | 11 (20%) | 22 (41%) | 16 (30%) | 3 (5.6%) | 1 (1.9%) | 1 (1.9%) | |
| big (non single-fam) | 111 (13%) | 316 (38%) | 301 (37%) | 64 (7.8%) | 21 (2.6%) | 10 (1.2%) | |
| Financial_role_, n (%) | <0.001 | ||||||
| Other | 1,268 (38%) | 1,035 (31%) | 704 (21%) | 149 (4.5%) | 97 (2.9%) | 57 (1.7%) | |
| Primary Income | 82 (18%) | 167 (37%) | 151 (33%) | 25 (5.5%) | 18 (4.0%) | 8 (1.8%) | |
| Common_unit_, n (%) | |||||||
| 2 bedroom | 496 (35%) | 469 (33%) | 325 (23%) | 61 (4.3%) | 53 (3.7%) | 24 (1.7%) | |
| 0 bedroom (studio/efficiency) | 35 (24%) | 46 (32%) | 55 (38%) | 9 (6.2%) | 1 (0.7%) | 0 (0%) | |
| 1 bedroom | 271 (31%) | 288 (33%) | 235 (27%) | 46 (5.2%) | 24 (2.7%) | 15 (1.7%) | |
| 3 bedroom | 343 (41%) | 252 (30%) | 168 (20%) | 36 (4.3%) | 23 (2.7%) | 16 (1.9%) | |
| 4 bedroom | 97 (44%) | 72 (32%) | 34 (15%) | 7 (3.2%) | 7 (3.2%) | 5 (2.3%) | |
| 5+ bedroom | 22 (29%) | 32 (43%) | 12 (16%) | 5 (6.7%) | 3 (4.0%) | 1 (1.3%) | |
|
1
Pearson's Chi-squared test
|
|||||||
Models:
m1 <- glm(Raised_rent_pct~1 + Landlord_size_,
family=gaussian(link="identity"), data=df)
m2 <- glm(Raised_rent_pct~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=gaussian(link="identity"), data=df)
tbl_regression(m1)
| Characteristic | Beta (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.40 (-0.01 to 0.81) | 0.059 |
| big (single-fam) | 1.2 (-0.28 to 2.7) | 0.11 |
| big (non single-fam) | 1.9 (1.4 to 2.3) | <0.001 |
|
1
CI = Confidence Interval
|
||
tbl_regression(m2)
| Characteristic | Beta (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.58 (0.10 to 1.1) | 0.017 |
| big (single-fam) | 1.2 (-0.38 to 2.7) | 0.14 |
| big (non single-fam) | 1.8 (1.3 to 2.4) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 0.64 (0.05 to 1.2) | 0.033 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | -0.55 (-1.5 to 0.42) | 0.27 |
| 1 bedroom | -0.17 (-0.65 to 0.30) | 0.47 |
| 3 bedroom | 0.10 (-0.40 to 0.61) | 0.69 |
| 4 bedroom | -0.10 (-0.91 to 0.71) | 0.81 |
| 5+ bedroom | 0.49 (-0.81 to 1.8) | 0.46 |
|
1
CI = Confidence Interval
|
||
Outcome: raised rent due to rising costs of taxes, repairs (not exclusive)
Crosstabs:
df %>%
tbl_summary(
by = Raised_rent_rising_costs,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 rising costs**")
| Characteristic | Raised rent rising costs | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.47 | ||
| small (single-fam) | 160 (17%) | 774 (83%) | |
| small (non single-fam) | 142 (19%) | 590 (81%) | |
| big (single-fam) | 6 (14%) | 37 (86%) | |
| big (non single-fam) | 119 (17%) | 593 (83%) | |
| Financial_role_, n (%) | 0.45 | ||
| Other | 365 (18%) | 1,677 (82%) | |
| Primary Income | 60 (16%) | 309 (84%) | |
| Common_unit_, n (%) | 0.19 | ||
| 2 bedroom | 145 (16%) | 787 (84%) | |
| 0 bedroom (studio/efficiency) | 25 (23%) | 86 (77%) | |
| 1 bedroom | 115 (19%) | 493 (81%) | |
| 3 bedroom | 93 (19%) | 402 (81%) | |
| 4 bedroom | 22 (18%) | 103 (82%) | |
| 5+ bedroom | 13 (25%) | 40 (75%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Raised_rent_rising_costs~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Raised_rent_rising_costs~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.86 (0.67 to 1.10) | 0.23 |
| big (single-fam) | 1.27 (0.57 to 3.40) | 0.59 |
| big (non single-fam) | 1.03 (0.79 to 1.34) | 0.82 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.78 (0.59 to 1.04) | 0.094 |
| big (single-fam) | 1.46 (0.61 to 4.32) | 0.44 |
| big (non single-fam) | 1.00 (0.73 to 1.38) | >0.99 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.10 (0.80 to 1.53) | 0.57 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 0.64 (0.40 to 1.06) | 0.073 |
| 1 bedroom | 0.79 (0.60 to 1.04) | 0.088 |
| 3 bedroom | 0.77 (0.56 to 1.04) | 0.090 |
| 4 bedroom | 0.81 (0.49 to 1.38) | 0.42 |
| 5+ bedroom | 0.53 (0.28 to 1.07) | 0.064 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: raised rent due to regulations (not exclusive)
Crosstabs:
df %>%
tbl_summary(
by = Raised_rent_regulations,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 regulations**")
| Characteristic | Raised rent regulations | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 762 (82%) | 172 (18%) | |
| small (non single-fam) | 601 (82%) | 131 (18%) | |
| big (single-fam) | 26 (60%) | 17 (40%) | |
| big (non single-fam) | 503 (71%) | 209 (29%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 1,619 (79%) | 423 (21%) | |
| Primary Income | 264 (72%) | 105 (28%) | |
| Common_unit_, n (%) | 0.13 | ||
| 2 bedroom | 726 (78%) | 206 (22%) | |
| 0 bedroom (studio/efficiency) | 84 (76%) | 27 (24%) | |
| 1 bedroom | 458 (75%) | 150 (25%) | |
| 3 bedroom | 407 (82%) | 88 (18%) | |
| 4 bedroom | 95 (76%) | 30 (24%) | |
| 5+ bedroom | 40 (75%) | 13 (25%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Raised_rent_regulations~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Raised_rent_regulations~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.97 (0.75 to 1.24) | 0.79 |
| big (single-fam) | 2.90 (1.51 to 5.42) | <0.001 |
| big (non single-fam) | 1.84 (1.46 to 2.32) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.97 (0.73 to 1.28) | 0.82 |
| big (single-fam) | 2.76 (1.41 to 5.26) | 0.002 |
| big (non single-fam) | 1.75 (1.32 to 2.33) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.13 (0.86 to 1.49) | 0.37 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 0.94 (0.58 to 1.50) | 0.81 |
| 1 bedroom | 1.01 (0.79 to 1.30) | 0.92 |
| 3 bedroom | 0.85 (0.63 to 1.14) | 0.29 |
| 4 bedroom | 1.22 (0.76 to 1.92) | 0.39 |
| 5+ bedroom | 1.28 (0.64 to 2.42) | 0.46 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: raised rent due to housing market (not exclusive)
Crosstabs:
df %>%
tbl_summary(
by = Raised_rent_market,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 market**")
| Characteristic | Raised rent market | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.47 | ||
| small (single-fam) | 641 (69%) | 293 (31%) | |
| small (non single-fam) | 524 (72%) | 208 (28%) | |
| big (single-fam) | 28 (65%) | 15 (35%) | |
| big (non single-fam) | 488 (69%) | 224 (31%) | |
| Financial_role_, n (%) | 0.28 | ||
| Other | 1,425 (70%) | 617 (30%) | |
| Primary Income | 247 (67%) | 122 (33%) | |
| Common_unit_, n (%) | 0.88 | ||
| 2 bedroom | 645 (69%) | 287 (31%) | |
| 0 bedroom (studio/efficiency) | 71 (64%) | 40 (36%) | |
| 1 bedroom | 421 (69%) | 187 (31%) | |
| 3 bedroom | 348 (70%) | 147 (30%) | |
| 4 bedroom | 85 (68%) | 40 (32%) | |
| 5+ bedroom | 37 (70%) | 16 (30%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Raised_rent_market~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Raised_rent_market~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.87 (0.70 to 1.07) | 0.19 |
| big (single-fam) | 1.17 (0.60 to 2.20) | 0.63 |
| big (non single-fam) | 1.00 (0.81 to 1.24) | 0.97 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.85 (0.67 to 1.09) | 0.20 |
| big (single-fam) | 1.23 (0.63 to 2.34) | 0.53 |
| big (non single-fam) | 0.91 (0.70 to 1.17) | 0.46 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.12 (0.86 to 1.44) | 0.40 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.29 (0.84 to 1.96) | 0.24 |
| 1 bedroom | 1.00 (0.80 to 1.26) | 0.98 |
| 3 bedroom | 0.91 (0.70 to 1.17) | 0.45 |
| 4 bedroom | 0.99 (0.65 to 1.49) | 0.96 |
| 5+ bedroom | 0.91 (0.48 to 1.65) | 0.77 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: raised rent ONLY due to increased property taxes
Crosstabs:
df %>%
tbl_summary(
by = Raised_rent_only_tax,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 only due to taxes**")
| Characteristic | Raised rent only due to taxes | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 628 (67%) | 306 (33%) | |
| small (non single-fam) | 525 (72%) | 207 (28%) | |
| big (single-fam) | 39 (91%) | 4 (9.3%) | |
| big (non single-fam) | 575 (81%) | 137 (19%) | |
| Financial_role_, n (%) | 0.18 | ||
| Other | 1,481 (73%) | 561 (27%) | |
| Primary Income | 280 (76%) | 89 (24%) | |
| Common_unit_, n (%) | 0.044 | ||
| 2 bedroom | 678 (73%) | 254 (27%) | |
| 0 bedroom (studio/efficiency) | 84 (76%) | 27 (24%) | |
| 1 bedroom | 463 (76%) | 145 (24%) | |
| 3 bedroom | 337 (68%) | 158 (32%) | |
| 4 bedroom | 90 (72%) | 35 (28%) | |
| 5+ bedroom | 43 (81%) | 10 (19%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Raised_rent_only_tax~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Raised_rent_only_tax~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.81 (0.65 to 1.00) | 0.049 |
| big (single-fam) | 0.21 (0.06 to 0.53) | 0.003 |
| big (non single-fam) | 0.49 (0.39 to 0.61) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.80 (0.63 to 1.02) | 0.077 |
| big (single-fam) | 0.21 (0.06 to 0.54) | 0.004 |
| big (non single-fam) | 0.46 (0.35 to 0.61) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.18 (0.88 to 1.57) | 0.26 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.06 (0.65 to 1.67) | 0.81 |
| 1 bedroom | 0.96 (0.75 to 1.23) | 0.77 |
| 3 bedroom | 1.04 (0.80 to 1.34) | 0.77 |
| 4 bedroom | 0.88 (0.57 to 1.35) | 0.58 |
| 5+ bedroom | 0.50 (0.23 to 0.98) | 0.057 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: raised rent ONLY due to increased cost of repairs
Crosstabs:
df %>%
tbl_summary(
by = Raised_rent_only_repairs,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 only due to repairs**")
| Characteristic | Raised rent only due to repairs | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.22 | ||
| small (single-fam) | 914 (98%) | 20 (2.1%) | |
| small (non single-fam) | 718 (98%) | 14 (1.9%) | |
| big (single-fam) | 42 (98%) | 1 (2.3%) | |
| big (non single-fam) | 705 (99%) | 7 (1.0%) | |
| Financial_role_, n (%) | 0.14 | ||
| Other | 2,003 (98%) | 39 (1.9%) | |
| Primary Income | 366 (99%) | 3 (0.8%) | |
| Common_unit_, n (%) | 0.57 | ||
| 2 bedroom | 917 (98%) | 15 (1.6%) | |
| 0 bedroom (studio/efficiency) | 111 (100%) | 0 (0%) | |
| 1 bedroom | 594 (98%) | 14 (2.3%) | |
| 3 bedroom | 486 (98%) | 9 (1.8%) | |
| 4 bedroom | 122 (98%) | 3 (2.4%) | |
| 5+ bedroom | 53 (100%) | 0 (0%) | |
|
1
Fisher's exact test; Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Raised_rent_only_repairs~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Raised_rent_only_repairs~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.89 (0.44 to 1.76) | 0.74 |
| big (single-fam) | 1.09 (0.06 to 5.42) | 0.94 |
| big (non single-fam) | 0.45 (0.18 to 1.03) | 0.074 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.85 (0.39 to 1.82) | 0.68 |
| big (single-fam) | 1.16 (0.06 to 5.92) | 0.88 |
| big (non single-fam) | 0.44 (0.15 to 1.13) | 0.10 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 0.55 (0.13 to 1.65) | 0.35 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 0.00 (0.00 to 77,847,770,599,214) | 0.99 |
| 1 bedroom | 1.79 (0.83 to 3.84) | 0.13 |
| 3 bedroom | 0.92 (0.37 to 2.17) | 0.85 |
| 4 bedroom | 1.18 (0.27 to 3.81) | 0.80 |
| 5+ bedroom | 0.00 (0.00 to 116,787,813,358,625,468,976,866) | >0.99 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: raised rent ONLY due to new propoerty or new ownership
Crosstabs:
df %>%
tbl_summary(
by = Raised_rent_only_newproperty,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 only due to new property**")
| Characteristic | Raised rent only due to new property | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.29 | ||
| small (single-fam) | 932 (100%) | 2 (0.2%) | |
| small (non single-fam) | 727 (99%) | 5 (0.7%) | |
| big (single-fam) | 43 (100%) | 0 (0%) | |
| big (non single-fam) | 706 (99%) | 6 (0.8%) | |
| Financial_role_, n (%) | >0.99 | ||
| Other | 2,031 (99%) | 11 (0.5%) | |
| Primary Income | 367 (99%) | 2 (0.5%) | |
| Common_unit_, n (%) | 0.25 | ||
| 2 bedroom | 928 (100%) | 4 (0.4%) | |
| 0 bedroom (studio/efficiency) | 109 (98%) | 2 (1.8%) | |
| 1 bedroom | 603 (99%) | 5 (0.8%) | |
| 3 bedroom | 494 (100%) | 1 (0.2%) | |
| 4 bedroom | 124 (99%) | 1 (0.8%) | |
| 5+ bedroom | 53 (100%) | 0 (0%) | |
|
1
Fisher's exact test
|
|||
Models:
This model doesn’t have enough cases with the outcome=1, hence the messy results.
m1 <- glm(Raised_rent_only_newproperty~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Raised_rent_only_newproperty~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 3.20 (0.69 to 22.4) | 0.16 |
| big (single-fam) | 0.00 (NA to 705,970,280,972,727,745,122,408,442) | >0.99 |
| big (non single-fam) | 3.96 (0.91 to 27.1) | 0.092 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 3.20 (0.57 to 25.8) | 0.21 |
| big (single-fam) | 0.00 (NA to 128,447,357,876,125,552,880,428,264,644,846,228,488,004,048,064) | >0.99 |
| big (non single-fam) | 3.56 (0.60 to 30.6) | 0.19 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 0.64 (0.09 to 2.70) | 0.58 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 3.29 (0.44 to 17.7) | 0.18 |
| 1 bedroom | 1.65 (0.43 to 6.84) | 0.46 |
| 3 bedroom | 0.78 (0.04 to 5.96) | 0.84 |
| 4 bedroom | 3.41 (0.16 to 27.4) | 0.30 |
| 5+ bedroom | 0.00 (NA to 115,759,794,265,682,191,952,884,604,684,088,644,426,466) | >0.99 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: raised rent ONLY due to changes in local housing market
Crosstabs:
df %>%
tbl_summary(
by = Raised_rent_only_market,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 only due to market**")
| Characteristic | Raised rent only due to market | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.30 | ||
| small (single-fam) | 847 (91%) | 87 (9.3%) | |
| small (non single-fam) | 672 (92%) | 60 (8.2%) | |
| big (single-fam) | 42 (98%) | 1 (2.3%) | |
| big (non single-fam) | 659 (93%) | 53 (7.4%) | |
| Financial_role_, n (%) | 0.46 | ||
| Other | 1,869 (92%) | 173 (8.5%) | |
| Primary Income | 342 (93%) | 27 (7.3%) | |
| Common_unit_, n (%) | 0.92 | ||
| 2 bedroom | 859 (92%) | 73 (7.8%) | |
| 0 bedroom (studio/efficiency) | 101 (91%) | 10 (9.0%) | |
| 1 bedroom | 555 (91%) | 53 (8.7%) | |
| 3 bedroom | 449 (91%) | 46 (9.3%) | |
| 4 bedroom | 116 (93%) | 9 (7.2%) | |
| 5+ bedroom | 48 (91%) | 5 (9.4%) | |
|
1
Fisher's exact test; Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Raised_rent_only_market~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Raised_rent_only_market~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.87 (0.61 to 1.22) | 0.42 |
| big (single-fam) | 0.23 (0.01 to 1.08) | 0.15 |
| big (non single-fam) | 0.78 (0.55 to 1.11) | 0.18 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.90 (0.61 to 1.32) | 0.59 |
| big (single-fam) | 0.25 (0.01 to 1.17) | 0.17 |
| big (non single-fam) | 0.75 (0.48 to 1.16) | 0.21 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 0.93 (0.58 to 1.45) | 0.75 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.28 (0.60 to 2.50) | 0.50 |
| 1 bedroom | 1.18 (0.80 to 1.73) | 0.40 |
| 3 bedroom | 1.13 (0.74 to 1.70) | 0.57 |
| 4 bedroom | 0.86 (0.39 to 1.72) | 0.69 |
| 5+ bedroom | 1.12 (0.38 to 2.70) | 0.81 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: raised rent ONLY due to new regulations
Crosstabs:
df %>%
tbl_summary(
by = Raised_rent_only_regulation,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 only due to new regulations**")
| Characteristic | Raised rent only due to new regulations | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.080 | ||
| small (single-fam) | 920 (99%) | 14 (1.5%) | |
| small (non single-fam) | 723 (99%) | 9 (1.2%) | |
| big (single-fam) | 40 (93%) | 3 (7.0%) | |
| big (non single-fam) | 700 (98%) | 12 (1.7%) | |
| Financial_role_, n (%) | 0.22 | ||
| Other | 2,008 (98%) | 34 (1.7%) | |
| Primary Income | 366 (99%) | 3 (0.8%) | |
| Common_unit_, n (%) | 0.18 | ||
| 2 bedroom | 919 (99%) | 13 (1.4%) | |
| 0 bedroom (studio/efficiency) | 109 (98%) | 2 (1.8%) | |
| 1 bedroom | 603 (99%) | 5 (0.8%) | |
| 3 bedroom | 484 (98%) | 11 (2.2%) | |
| 4 bedroom | 121 (97%) | 4 (3.2%) | |
| 5+ bedroom | 52 (98%) | 1 (1.9%) | |
|
1
Fisher's exact test; Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Raised_rent_only_tax~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Raised_rent_only_tax~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.81 (0.65 to 1.00) | 0.049 |
| big (single-fam) | 0.21 (0.06 to 0.53) | 0.003 |
| big (non single-fam) | 0.49 (0.39 to 0.61) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.80 (0.63 to 1.02) | 0.077 |
| big (single-fam) | 0.21 (0.06 to 0.54) | 0.004 |
| big (non single-fam) | 0.46 (0.35 to 0.61) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.18 (0.88 to 1.57) | 0.26 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.06 (0.65 to 1.67) | 0.81 |
| 1 bedroom | 0.96 (0.75 to 1.23) | 0.77 |
| 3 bedroom | 1.04 (0.80 to 1.34) | 0.77 |
| 4 bedroom | 0.88 (0.57 to 1.35) | 0.58 |
| 5+ bedroom | 0.50 (0.23 to 0.98) | 0.057 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: in 2017, did you terminate tenancies
Crosstabs:
df %>%
tbl_summary(
by = Ever_terminated,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 | |
|---|---|---|---|
| none | 1 or more/dk | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 1,601 (93%) | 123 (7.1%) | |
| small (non single-fam) | 1,104 (92%) | 97 (8.1%) | |
| big (single-fam) | 40 (73%) | 15 (27%) | |
| big (non single-fam) | 608 (73%) | 221 (27%) | |
| Financial_role_, n (%) | <0.001 | ||
| Other | 2,999 (90%) | 337 (10%) | |
| Primary Income | 342 (75%) | 114 (25%) | |
| Common_unit_, n (%) | <0.001 | ||
| 2 bedroom | 1,267 (88%) | 173 (12%) | |
| 0 bedroom (studio/efficiency) | 107 (73%) | 40 (27%) | |
| 1 bedroom | 753 (85%) | 130 (15%) | |
| 3 bedroom | 785 (93%) | 58 (6.9%) | |
| 4 bedroom | 198 (89%) | 25 (11%) | |
| 5+ bedroom | 64 (85%) | 11 (15%) | |
|
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_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.14 (0.87 to 1.51) | 0.34 |
| big (single-fam) | 4.88 (2.55 to 8.90) | <0.001 |
| big (non single-fam) | 4.73 (3.73 to 6.02) | <0.001 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.02 (0.74 to 1.41) | 0.88 |
| big (single-fam) | 4.67 (2.41 to 8.64) | <0.001 |
| big (non single-fam) | 3.79 (2.82 to 5.11) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.58 (1.20 to 2.06) | <0.001 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 1.86 (1.21 to 2.84) | 0.004 |
| 1 bedroom | 0.92 (0.71 to 1.20) | 0.54 |
| 3 bedroom | 0.75 (0.53 to 1.05) | 0.094 |
| 4 bedroom | 1.31 (0.80 to 2.08) | 0.27 |
| 5+ bedroom | 1.66 (0.79 to 3.19) | 0.15 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Ouctome: in 2017, how many tenancies did you terminate
Crosstabs:
df %>%
tbl_summary(
by = Num_of_terminations,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Number of terminations**")
| Characteristic | Number of terminations | p-value1 | |||
|---|---|---|---|---|---|
| 3 | 7 | 15 | 25 | ||
| Landlord_size_, n (%) | 0.59 | ||||
| small (single-fam) | 104 (98%) | 2 (1.9%) | 0 (0%) | 0 (0%) | |
| small (non single-fam) | 81 (95%) | 3 (3.5%) | 0 (0%) | 1 (1.2%) | |
| big (single-fam) | 15 (100%) | 0 (0%) | 0 (0%) | 0 (0%) | |
| big (non single-fam) | 189 (92%) | 9 (4.4%) | 5 (2.4%) | 3 (1.5%) | |
| Financial_role_, n (%) | 0.002 | ||||
| Other | 289 (96%) | 7 (2.3%) | 5 (1.7%) | 0 (0%) | |
| Primary Income | 96 (91%) | 6 (5.7%) | 0 (0%) | 4 (3.8%) | |
| Common_unit_, n (%) | |||||
| 2 bedroom | 154 (97%) | 4 (2.5%) | 0 (0%) | 0 (0%) | |
| 0 bedroom (studio/efficiency) | 33 (87%) | 2 (5.3%) | 3 (7.9%) | 0 (0%) | |
| 1 bedroom | 104 (90%) | 6 (5.2%) | 2 (1.7%) | 3 (2.6%) | |
| 3 bedroom | 51 (94%) | 2 (3.7%) | 0 (0%) | 1 (1.9%) | |
| 4 bedroom | 21 (100%) | 0 (0%) | 0 (0%) | 0 (0%) | |
| 5+ bedroom | 10 (100%) | 0 (0%) | 0 (0%) | 0 (0%) | |
|
1
Fisher's exact test
|
|||||
Models:
m1 <- glm(Num_of_terminations~1 + Landlord_size_,
family=gaussian(link="identity"), data=df)
m2 <- glm(Num_of_terminations~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=gaussian(link="identity"), data=df)
tbl_regression(m1)
| Characteristic | Beta (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.32 (-0.41 to 1.1) | 0.39 |
| big (single-fam) | -0.08 (-1.5 to 1.3) | 0.92 |
| big (non single-fam) | 0.71 (0.10 to 1.3) | 0.022 |
|
1
CI = Confidence Interval
|
||
tbl_regression(m2)
| Characteristic | Beta (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.51 (-0.36 to 1.4) | 0.25 |
| big (single-fam) | -0.08 (-1.5 to 1.4) | 0.92 |
| big (non single-fam) | 0.51 (-0.28 to 1.3) | 0.21 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 0.49 (-0.16 to 1.1) | 0.14 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 0.79 (-0.18 to 1.8) | 0.11 |
| 1 bedroom | 0.74 (0.08 to 1.4) | 0.028 |
| 3 bedroom | 0.69 (-0.21 to 1.6) | 0.13 |
| 4 bedroom | 0.29 (-1.0 to 1.6) | 0.66 |
| 5+ bedroom | 0.12 (-1.6 to 1.9) | 0.89 |
|
1
CI = Confidence Interval
|
||
Outcome: any terminated due to late payment
Crosstabs:
df %>%
tbl_summary(
by = Terminated_paid_late,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Terminated - paid late**")
| Characteristic | Terminated - paid late | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.029 | ||
| small (single-fam) | 5 (19%) | 22 (81%) | |
| small (non single-fam) | 8 (27%) | 22 (73%) | |
| big (single-fam) | 1 (14%) | 6 (86%) | |
| big (non single-fam) | 3 (5.3%) | 54 (95%) | |
| Financial_role_, n (%) | 0.35 | ||
| Other | 15 (16%) | 77 (84%) | |
| Primary Income | 2 (7.1%) | 26 (93%) | |
| Common_unit_, n (%) | 0.70 | ||
| 2 bedroom | 6 (13%) | 40 (87%) | |
| 0 bedroom (studio/efficiency) | 0 (0%) | 14 (100%) | |
| 1 bedroom | 5 (16%) | 26 (84%) | |
| 3 bedroom | 2 (14%) | 12 (86%) | |
| 4 bedroom | 1 (17%) | 5 (83%) | |
| 5+ bedroom | 0 (0%) | 2 (100%) | |
|
1
Fisher's exact test
|
|||
Models:
m1 <- glm(Terminated_paid_late~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Terminated_paid_late~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.62 (0.17 to 2.17) | 0.47 |
| big (single-fam) | 1.36 (0.17 to 28.7) | 0.79 |
| big (non single-fam) | 4.09 (0.93 to 21.4) | 0.068 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.86 (0.18 to 4.00) | 0.85 |
| big (single-fam) | 1.42 (0.17 to 30.8) | 0.77 |
| big (non single-fam) | 3.67 (0.67 to 23.7) | 0.14 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.11 (0.21 to 8.64) | 0.91 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 8,833,860 (0.00 to NA) | >0.99 |
| 1 bedroom | 0.69 (0.18 to 2.76) | 0.59 |
| 3 bedroom | 1.16 (0.19 to 9.66) | 0.88 |
| 4 bedroom | 1.17 (0.13 to 26.1) | 0.90 |
| 5+ bedroom | 26,815,835 (0.00 to NA) | >0.99 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: any terminated due to late payment
Crosstabs:
df %>%
tbl_summary(
by = Terminated_non_payment,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Terminated - non payment**")
| Characteristic | Terminated - non payment | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | <0.001 | ||
| small (single-fam) | 5 (14%) | 32 (86%) | |
| small (non single-fam) | 8 (22%) | 28 (78%) | |
| big (single-fam) | 1 (14%) | 6 (86%) | |
| big (non single-fam) | 3 (2.1%) | 138 (98%) | |
| Financial_role_, n (%) | 0.037 | ||
| Other | 15 (11%) | 127 (89%) | |
| Primary Income | 2 (2.6%) | 74 (97%) | |
| Common_unit_, n (%) | 0.43 | ||
| 2 bedroom | 6 (8.5%) | 65 (92%) | |
| 0 bedroom (studio/efficiency) | 0 (0%) | 32 (100%) | |
| 1 bedroom | 5 (6.7%) | 70 (93%) | |
| 3 bedroom | 2 (8.0%) | 23 (92%) | |
| 4 bedroom | 1 (14%) | 6 (86%) | |
| 5+ bedroom | 0 (0%) | 4 (100%) | |
|
1
Fisher's exact test; Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Terminated_non_payment~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Terminated_non_payment~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.55 (0.15 to 1.83) | 0.34 |
| big (single-fam) | 0.94 (0.12 to 19.6) | 0.96 |
| big (non single-fam) | 7.19 (1.68 to 36.5) | 0.009 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 0.94 (0.21 to 4.12) | 0.94 |
| big (single-fam) | 0.98 (0.12 to 20.9) | 0.99 |
| big (non single-fam) | 6.98 (1.32 to 45.1) | 0.027 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.29 (0.24 to 9.86) | 0.78 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 11,134,000 (0.00 to 153,429,362,178,518,012,976,266,608,028,224,042,482,820,240,642,668,086,282,620,684,062,044,822,224,680,680,220,046,226,202,400,222,480,680,080,600,622,042,206,826,608,440,424,086,600,266,826,480,228,686,606,228,888,082,466,226,402,480,886,686,806,084,468,068,224,604,642,042,606,080,046,866,002,222,288,646,226,222,604,442,648,224) | >0.99 |
| 1 bedroom | 0.83 (0.22 to 3.25) | 0.79 |
| 3 bedroom | 1.67 (0.31 to 13.1) | 0.57 |
| 4 bedroom | 1.05 (0.13 to 22.7) | 0.97 |
| 5+ bedroom | 47,354,877 (0.00 to NA) | >0.99 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Ouctome: of the terminations, were these handled with the courts
Crosstabs:
df %>%
tbl_summary(
by = Terminated_use_courts,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Terminated - use of courts**")
| Characteristic | Terminated - use of courts | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.97 | ||
| small (single-fam) | 10 (62%) | 6 (38%) | |
| small (non single-fam) | 12 (60%) | 8 (40%) | |
| big (single-fam) | 3 (50%) | 3 (50%) | |
| big (non single-fam) | 63 (60%) | 42 (40%) | |
| Financial_role_, n (%) | 0.99 | ||
| Other | 52 (60%) | 34 (40%) | |
| Primary Income | 35 (60%) | 23 (40%) | |
| Common_unit_, n (%) | 0.92 | ||
| 2 bedroom | 31 (60%) | 21 (40%) | |
| 0 bedroom (studio/efficiency) | 14 (61%) | 9 (39%) | |
| 1 bedroom | 29 (59%) | 20 (41%) | |
| 3 bedroom | 6 (46%) | 7 (54%) | |
| 4 bedroom | 3 (75%) | 1 (25%) | |
| 5+ bedroom | 1 (100%) | 0 (0%) | |
|
1
Fisher's exact test; Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Terminated_use_courts~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Terminated_use_courts~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
tbl_regression(m2, exponentiate=TRUE)
Outcome: average income of renter by most common unit size (used midpoints)
Crosstabs:
df %>%
tbl_summary(
by = Renter_income_estimate,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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 estimate (unit=1000)**")
| Characteristic | Renter income estimate (unit=1000) | p-value1 | ||||
|---|---|---|---|---|---|---|
| 13 | 37 | 62 | 100 | 200 | ||
| Landlord_size_, n (%) | ||||||
| small (single-fam) | 64 (4.0%) | 254 (16%) | 396 (25%) | 677 (42%) | 204 (13%) | |
| small (non single-fam) | 60 (5.4%) | 264 (24%) | 359 (32%) | 364 (33%) | 72 (6.4%) | |
| big (single-fam) | 2 (4.1%) | 6 (12%) | 22 (45%) | 16 (33%) | 3 (6.1%) | |
| big (non single-fam) | 42 (5.5%) | 290 (38%) | 297 (39%) | 133 (17%) | 8 (1.0%) | |
| Financial_role_, n (%) | <0.001 | |||||
| Other | 130 (4.2%) | 685 (22%) | 919 (30%) | 1,085 (35%) | 274 (8.9%) | |
| Primary Income | 33 (7.8%) | 127 (30%) | 150 (35%) | 100 (24%) | 13 (3.1%) | |
| Common_unit_, n (%) | ||||||
| 2 bedroom | 37 (2.8%) | 281 (21%) | 443 (33%) | 490 (37%) | 83 (6.2%) | |
| 0 bedroom (studio/efficiency) | 19 (13%) | 65 (45%) | 40 (28%) | 19 (13%) | 1 (0.7%) | |
| 1 bedroom | 32 (3.9%) | 265 (33%) | 284 (35%) | 199 (25%) | 31 (3.8%) | |
| 3 bedroom | 24 (3.1%) | 117 (15%) | 206 (26%) | 332 (42%) | 103 (13%) | |
| 4 bedroom | 11 (5.3%) | 34 (16%) | 33 (16%) | 77 (37%) | 52 (25%) | |
| 5+ bedroom | 25 (37%) | 12 (18%) | 11 (16%) | 11 (16%) | 9 (13%) | |
|
1
Pearson's Chi-squared test
|
||||||
Models:
m1 <- glm(Renter_income_estimate~1 + Landlord_size_,
family=gaussian(link="identity"), data=df)
m2 <- glm(Renter_income_estimate~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=gaussian(link="identity"), data=df)
tbl_regression(m1)
| Characteristic | Beta (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | -15 (-18 to -12) | <0.001 |
| big (single-fam) | -12 (-24 to 0.31) | 0.056 |
| big (non single-fam) | -32 (-36 to -28) | <0.001 |
|
1
CI = Confidence Interval
|
||
tbl_regression(m2)
| Characteristic | Beta (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | -7.8 (-12 to -4.0) | <0.001 |
| big (single-fam) | -14 (-27 to -1.7) | 0.026 |
| big (non single-fam) | -23 (-27 to -18) | <0.001 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | -3.1 (-7.8 to 1.6) | 0.20 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | -20 (-27 to -12) | <0.001 |
| 1 bedroom | -7.0 (-11 to -3.2) | <0.001 |
| 3 bedroom | 7.4 (3.4 to 11) | <0.001 |
| 4 bedroom | 20 (13 to 26) | <0.001 |
| 5+ bedroom | -19 (-30 to -8.5) | <0.001 |
|
1
CI = Confidence Interval
|
||
Outcome: do you expect to remain a property manager
Crosstabs:
df %>%
tbl_summary(
by = Still_mngr_1_5yrs,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Still be manager in 1 or 5 yrs**")
| Characteristic | Still be manager in 1 or 5 yrs | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.70 | ||
| small (single-fam) | 1,398 (81%) | 326 (19%) | |
| small (non single-fam) | 971 (81%) | 228 (19%) | |
| big (single-fam) | 47 (84%) | 9 (16%) | |
| big (non single-fam) | 684 (83%) | 143 (17%) | |
| Financial_role_, n (%) | 0.87 | ||
| Other | 2,714 (81%) | 618 (19%) | |
| Primary Income | 370 (81%) | 86 (19%) | |
| Common_unit_, n (%) | 0.14 | ||
| 2 bedroom | 1,160 (81%) | 276 (19%) | |
| 0 bedroom (studio/efficiency) | 125 (85%) | 22 (15%) | |
| 1 bedroom | 738 (83%) | 148 (17%) | |
| 3 bedroom | 674 (80%) | 170 (20%) | |
| 4 bedroom | 184 (83%) | 39 (17%) | |
| 5+ bedroom | 67 (89%) | 8 (11%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Still_mngr_1_5yrs~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Still_mngr_1_5yrs~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.01 (0.83 to 1.21) | 0.94 |
| big (single-fam) | 0.82 (0.37 to 1.61) | 0.59 |
| big (non single-fam) | 0.90 (0.72 to 1.11) | 0.32 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.01 (0.81 to 1.25) | 0.95 |
| big (single-fam) | 0.84 (0.38 to 1.66) | 0.63 |
| big (non single-fam) | 0.93 (0.71 to 1.20) | 0.56 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.12 (0.85 to 1.47) | 0.41 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 0.74 (0.45 to 1.17) | 0.21 |
| 1 bedroom | 0.85 (0.68 to 1.06) | 0.15 |
| 3 bedroom | 1.05 (0.83 to 1.31) | 0.70 |
| 4 bedroom | 0.89 (0.60 to 1.29) | 0.54 |
| 5+ bedroom | 0.49 (0.22 to 0.98) | 0.064 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
Outcome: why might you stop being property manager
Crosstabs:
df %>%
tbl_summary(
by = Stop_mngr_burdensome_regs,
percent = "row",
missing = "no",
include = c(Landlord_size_, Financial_role_, Common_unit_),
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_") ~ "**Stop managing due to regulations**")
| Characteristic | Stop managing due to regulations | p-value1 | |
|---|---|---|---|
| 0 | 1 | ||
| Landlord_size_, n (%) | 0.97 | ||
| small (single-fam) | 1,481 (86%) | 246 (14%) | |
| small (non single-fam) | 1,044 (86%) | 175 (14%) | |
| big (single-fam) | 47 (84%) | 9 (16%) | |
| big (non single-fam) | 711 (85%) | 123 (15%) | |
| Financial_role_, n (%) | 0.16 | ||
| Other | 2,885 (86%) | 476 (14%) | |
| Primary Income | 381 (83%) | 76 (17%) | |
| Common_unit_, n (%) | 0.11 | ||
| 2 bedroom | 1,224 (85%) | 218 (15%) | |
| 0 bedroom (studio/efficiency) | 135 (91%) | 13 (8.8%) | |
| 1 bedroom | 767 (86%) | 121 (14%) | |
| 3 bedroom | 713 (84%) | 133 (16%) | |
| 4 bedroom | 194 (87%) | 29 (13%) | |
| 5+ bedroom | 69 (92%) | 6 (8.0%) | |
|
1
Pearson's Chi-squared test
|
|||
Models:
m1 <- glm(Stop_mngr_burdensome_regs~1 + Landlord_size_,
family=binomial(link="logit"), data=df)
m2 <- glm(Stop_mngr_burdensome_regs~1 + Landlord_size_ +
Financial_role_ + Common_unit_,
family=binomial(link="logit"), data=df)
tbl_regression(m1, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.01 (0.82 to 1.24) | 0.93 |
| big (single-fam) | 1.15 (0.52 to 2.27) | 0.70 |
| big (non single-fam) | 1.04 (0.82 to 1.31) | 0.73 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||
tbl_regression(m2, exponentiate=TRUE)
| Characteristic | OR (95% CI)1 | p-value |
|---|---|---|
| Landlord_size_ | ||
| small (single-fam) | — | |
| small (non single-fam) | 1.05 (0.82 to 1.34) | 0.68 |
| big (single-fam) | 1.15 (0.52 to 2.29) | 0.70 |
| big (non single-fam) | 1.09 (0.83 to 1.45) | 0.53 |
| Financial_role_ | ||
| Other | — | |
| Primary Income | 1.24 (0.92 to 1.65) | 0.15 |
| Common_unit_ | ||
| 2 bedroom | — | |
| 0 bedroom (studio/efficiency) | 0.50 (0.27 to 0.88) | 0.024 |
| 1 bedroom | 0.86 (0.67 to 1.09) | 0.22 |
| 3 bedroom | 1.08 (0.84 to 1.39) | 0.54 |
| 4 bedroom | 0.87 (0.56 to 1.32) | 0.53 |
| 5+ bedroom | 0.49 (0.19 to 1.07) | 0.11 |
|
1
OR = Odds Ratio, CI = Confidence Interval
|
||