#load coded SRHS survey data
df <- readRDS("C:/Users/court/Google Drive/Research/SRHS/SRHS_coded.RDS")
df_svy <- svydesign(ids = ~ 1, data = df, weights = df$rrio_wt)
#Landlord Characteristics
New landlord category that separates landlords with 1 unit that is a single family home (at least larger than a studio).
waffle_data1 <- c(`Small, single-fam homes` = (1899),
`Small, non single-fam homes` =(1047),
`Big, single-fam homes` =(60),
`Big, non single-fam homes` = (830))
# # weighted
# waffle_data2 <- c(`Small Landlords (1-4 units)`=(3235),
# `Large Landlords (5+ units)`=601)
w1 <- waffle(waffle_data1/60, rows=7, size=1, colors=c("deeppink3", "midnightblue", "gold", "darkorange1"),
title="50% of respondents are small landlords with single family homes (unweighted)",
xlab="One square ~ 60 landlords")
# w2 <- waffle(waffle_data2/100, rows=5, size=1, colors=c("pink", "red"),
# title="weighted: 84% of respondents are small landlords",
# xlab="One square ~ 100 landlords")
grid.arrange(w1)
# PIE CHART - DIFFICULT TO FIGURE OUT ....
# df %>% ggplot(aes(x="",
# y=ll_size,
# fill=ll_size)) +
# geom_bar(stat="identity", width=1) +
# coord_polar("y", start=0) +
# theme_void() +
# labs(title = "Landlord size and financial role",
# fill = "Landlord Size")
Note:
p1 <- df %>% ggplot(aes(x=ll_tot_units)) +
geom_histogram(fill="midnightblue") +
xlim(0,50) +
theme_classic() +
labs(title="Total number of units")
p2 <- df %>% ggplot(aes(x=ll_tot_bldg)) +
geom_bar(fill="deeppink3") +
theme_classic() +
labs(title="Total number of buildings")
grid.arrange(p1)
grid.arrange(p2)
df %>% select(ll_size2, ll_role, ll_finrole, ll_livein, ll_tenure,
ll_miles, ll_age, ll_gender) %>%
ggpairs(aes(colour=ll_size2))
df %>% ggplot(aes(x=ll_role, fill=ll_size2)) +
geom_bar() +
theme_classic() +
labs(title="Landlord role by landlord size") +
coord_flip() +
theme(legend.position="bottom") +
guides(fill=guide_legend(nrow=2,byrow=TRUE))
df %>% ggplot(aes(x=ll_finrole, fill=ll_size2)) +
geom_bar() +
theme_classic() +
labs(title="Financial role and landlord size") + coord_flip() +
theme(legend.position="bottom") +
guides(fill=guide_legend(nrow=2,byrow=TRUE))
df %>% ggplot(aes(x=ll_livein, fill=ll_size2)) +
geom_bar() +
theme_classic() +
labs(title="Live-in landlords") + coord_flip() +
theme(legend.position="bottom") +
guides(fill=guide_legend(nrow=2,byrow=TRUE))
df %>% ggplot(aes(x=ll_tenure_group, fill=ll_size2)) +
geom_bar() +
theme_classic() +
labs(title="Tenure and landlord size") +
theme(legend.position="bottom") +
guides(fill=guide_legend(nrow=2,byrow=TRUE))
Further discussion needed (gender, ethnicity/race, age, etc)
df %>% ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(bp_income))) +
geom_bar(position='fill') +
labs(y = "Prop",
x = "Landlord size",
title = "Landlord size and tenant income",
fill = "Tenant Income") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
df %>% ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(as.factor(bp_income_b)))) +
geom_bar(position="fill") +
labs(y = "Prop",
x = "Landlord size",
title = "Binary tenant income (above and below %50,000)",
fill = "Tenant Income") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
df %>% ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(bp_screen))) +
geom_bar(position='fill') +
labs(y = "Prop",
x = "Landlord size",
title = "Landlord size and screening service",
fill = "Screening Service") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
df %>% ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(as.factor(bp_screen_b)))) +
geom_bar(position="fill") +
labs(y = "Prop",
x = "Landlord size",
title = "Binary rent screen (no and yes)",
fill = "Screening Service") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
df %>% ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(bp_dec_flex))) +
geom_bar(position='fill') +
labs(y = "Prop",
x = "Landlord size",
title = "Landlord size and flexible decisions",
fill = "Flexible Decisions") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
df %>% filter(!is.na(bp_dec_flex_b)) %>%
ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(as.factor(bp_dec_flex_b)))) +
geom_bar(position="fill") +
labs(y = "Prop",
x = "Landlord size",
title = "Binary flex decisions (disagree or agree)",
fill = "Flexible Decisions") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
df %>% ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(bp_vouch))) +
geom_bar(position='fill') +
labs(y = "Prop",
x = "Landlord size",
title = "Landlord size and voucher holders",
fill = "Rent to Voucher Holders") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
Note in the figure below, the average monthly rent for units was asked before landlords reported which type of unit was their most common unit.
# create means to plot
# mean1 <- aggregate( ~l tenure, land, mean)
# median1 <- aggregate(q7 ~ tenure, land, median)
df %>% select(ll_comm_unit, ll_size2, bp_comm_unit_rent) %>% na.omit() %>%
ggplot(aes(x=ll_comm_unit,
y=bp_comm_unit_rent,
color=ll_size2)) +
geom_point() +
geom_jitter(height = 0.3, alpha=0.3) +
geom_hline(yintercept=3.5,
color = "red", size=0.7) +
labs(y = "Monthly Rent",
x = "Most Common Unit",
title = "Landlord size, monthly rent, and most common unit",
subtitle = "Red line indicates binary cutoff >$1,500*") +
theme(axis.text.x = element_text(angle = 15, vjust = 0.9, hjust=1)) +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
df %>% ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(bp_rent_raise))) +
geom_bar(position='fill') +
labs(y = "Prop",
x = "Landlord size",
title = "Landlord size and raised rent",
fill = "Amount raised rent") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
df %>% filter(!is.na(bp_rent_raise_market)) %>%
ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(bp_rent_raise_market))) +
geom_bar(position='fill') +
labs(y = "Prop",
x = "Landlord size",
title = "Landlord size and raised rent due to market",
fill = "Amount raised rent due to market") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
df %>% filter(!is.na(bp_terminate)) %>%
ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(bp_terminate))) +
geom_bar(position='fill') +
labs(y = "Prop",
x = "Landlord size",
title = "Landlord size and num. of terminations",
fill = "Tenancies Terminated") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
df %>% filter(!is.na(bp_court)) %>%
ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(bp_court))) +
geom_bar(position='fill') +
labs(y = "Prop",
x = "Landlord size",
title = "Landlord size and terminate in court",
fill = "Terminate in Court") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 2, label.position = "top", reverse=TRUE))
df %>% filter(!is.na(bp_court_b)) %>%
ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(as.factor(bp_court_b)))) +
geom_bar(position="fill") +
labs(y = "Prop",
x = "Landlord size",
title = "Binary terminate in court (w/ court or w/tenant)",
fill = "Terminate in Court") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 1, label.position = "top", reverse=TRUE))
df %>% ggplot(aes(x=ll_size2,
fill=forcats::fct_rev(zip_region))) +
geom_bar(position='fill') +
labs(y = "Prop",
x = "Landlord size",
title = "Landlord size and terminate in court",
fill = "Terminate in Court") +
coord_flip() +
theme(legend.position = "bottom", legend.title = element_blank()) +
guides(fill = guide_legend(nrow = 2, label.position = "top", reverse=TRUE))