Main Findings
To be added…
To be added…
Using data from the 5-year American Community Survey (ACS) for 2021, this Census Analysis scans the City of Chicago at the community level to identify key areas of opportunity for the development and targeting of The Roommates Project. The analyzed variables in this report are the following:
Summary statistics and community level maps per variable are provided. Overall, this report aims to inform the decision making to target the communities that are in most need of The Roommates program and select at the street-level the blocks that could potentially provide affordable housing for low-income older adults.
To be added…
setwd("C:/Users/52222/OneDrive - The University of Chicago/Documents/Autumn 23/Health Policy Lab") # set working directory
census_api_key("803708789b76c54ce13110992d660e5ef32cf712") # connect API key
lv <- load_variables(2021, "acs5", cache = TRUE) # load variables
# Get data for variables of interest and convert it to table
tractsShp <- get_acs(geography = 'tract', variables = c(medinc = "B19049_005", # block group
poverty_male = "B17017_025", # block group
poverty_female = "B17017_030", # block group
hh_for_rent = "B25004_002", # block group
hh_owners = "B25015_011", # block group
hh_renters = "B25015_024", # block group
hh_alone = "B25011_021", # tract
hh_not_alone = "B25011_025", # tract
renter_alone = "B25011_045", # tract
renter_not_alone = "B25011_049", # tract
less_one_own = "B25015_012", # block group
one_half_own = "B25015_013", # block group
more_half_own = "B25015_014", # block group
less_one_ren = "B25015_025", # block group
one_half_ren = "B25015_026", # block group
more_half_ren = "B25015_027", # block group
two_bd = "B25017_003",# block group
hh_mortgage = "B25027_008", # tract
hh_no_mortgage = "B25027_016", # tract
med_gross_rent = "B25031_004", # tract
own_2bd = "B25042_005", # block group
ren_2bd = "B25042_012", # block group
rent_burden = "B25072_028", # block group
cost_burden = "B25093_028", # block group
no_disab_ins = "B18135_031", # tract
no_disab_no_ins = "B18135_034", # tract
disab_ins = "B18135_026", # tract
disab_no_ins = "B18135_029" # tract
),
year = 2021, state = 'IL', geometry = TRUE) %>%
select(GEOID, NAME, variable, estimate) %>%
spread(variable, estimate)
summary(tractsShp)
## GEOID NAME cost_burden disab_ins
## Length:3265 Length:3265 Min. : 0.0 Min. : 0.0
## Class :character Class :character 1st Qu.: 24.0 1st Qu.: 100.0
## Mode :character Mode :character Median : 51.0 Median : 166.0
## Mean : 66.2 Mean : 188.2
## 3rd Qu.: 89.0 3rd Qu.: 248.0
## Max. :800.0 Max. :1120.0
##
## disab_no_ins hh_alone hh_for_rent hh_mortgage
## Min. : 0.000 Min. : 0 Min. : 0.00 Min. : 0.00
## 1st Qu.: 0.000 1st Qu.: 50 1st Qu.: 0.00 1st Qu.: 33.00
## Median : 0.000 Median : 98 Median : 16.00 Median : 66.00
## Mean : 1.462 Mean : 118 Mean : 32.32 Mean : 79.25
## 3rd Qu.: 0.000 3rd Qu.: 160 3rd Qu.: 46.00 3rd Qu.:112.00
## Max. :153.000 Max. :1488 Max. :587.00 Max. :533.00
##
## hh_no_mortgage hh_not_alone hh_owners hh_renters
## Min. : 0.0 Min. : 0.00 Min. : 0.0 Min. : 0.00
## 1st Qu.: 44.0 1st Qu.: 0.00 1st Qu.: 156.0 1st Qu.: 21.00
## Median : 88.0 Median : 0.00 Median : 285.0 Median : 52.00
## Mean :100.2 Mean : 6.94 Mean : 305.1 Mean : 83.33
## 3rd Qu.:141.0 3rd Qu.: 10.00 3rd Qu.: 415.0 3rd Qu.:112.00
## Max. :607.0 Max. :164.00 Max. :2699.0 Max. :826.00
##
## less_one_own less_one_ren med_gross_rent medinc
## Min. : 0.0 Min. : 0.00 Min. : 266.0 Min. : 7411
## 1st Qu.: 154.0 1st Qu.: 21.00 1st Qu.: 811.5 1st Qu.: 37946
## Median : 283.0 Median : 51.00 Median :1023.0 Median : 51094
## Mean : 303.8 Mean : 82.53 Mean :1126.2 Mean : 56146
## 3rd Qu.: 414.0 3rd Qu.:110.00 3rd Qu.:1317.0 3rd Qu.: 67981
## Max. :2699.0 Max. :795.00 Max. :3501.0 Max. :250001
## NA's :554 NA's :311
## more_half_own more_half_ren no_disab_ins no_disab_no_ins
## Min. : 0.0000 Min. : 0.000 Min. : 0.0 Min. : 0.000
## 1st Qu.: 0.0000 1st Qu.: 0.000 1st Qu.: 227.0 1st Qu.: 0.000
## Median : 0.0000 Median : 0.000 Median : 370.0 Median : 0.000
## Mean : 0.3979 Mean : 0.461 Mean : 404.1 Mean : 3.967
## 3rd Qu.: 0.0000 3rd Qu.: 0.000 3rd Qu.: 530.0 3rd Qu.: 0.000
## Max. :111.0000 Max. :109.000 Max. :2920.0 Max. :261.000
##
## one_half_own one_half_ren own_2bd poverty_female
## Min. : 0.0000 Min. : 0.0000 Min. : 0.0 Min. : 0.00
## 1st Qu.: 0.0000 1st Qu.: 0.0000 1st Qu.: 99.0 1st Qu.: 0.00
## Median : 0.0000 Median : 0.0000 Median : 182.0 Median : 12.00
## Mean : 0.9406 Mean : 0.3308 Mean : 214.4 Mean : 21.85
## 3rd Qu.: 0.0000 3rd Qu.: 0.0000 3rd Qu.: 284.0 3rd Qu.: 29.00
## Max. :66.0000 Max. :66.0000 Max. :2146.0 Max. :380.00
##
## poverty_male ren_2bd rent_burden renter_alone
## Min. : 0.000 Min. : 0.0 Min. : 0.00 Min. : 0.00
## 1st Qu.: 0.000 1st Qu.: 67.0 1st Qu.: 0.00 1st Qu.: 9.00
## Median : 0.000 Median : 151.0 Median : 17.00 Median : 31.00
## Mean : 9.534 Mean : 197.7 Mean : 37.48 Mean : 59.98
## 3rd Qu.: 12.000 3rd Qu.: 278.0 3rd Qu.: 50.00 3rd Qu.: 79.00
## Max. :270.000 Max. :1171.0 Max. :601.00 Max. :795.00
##
## renter_not_alone two_bd geometry
## Min. : 0.000 Min. : 0.00 MULTIPOLYGON :3265
## 1st Qu.: 0.000 1st Qu.: 0.00 epsg:4269 : 0
## Median : 0.000 Median : 14.00 +proj=long...: 0
## Mean : 2.231 Mean : 43.29
## 3rd Qu.: 0.000 3rd Qu.: 47.00
## Max. :236.000 Max. :1729.00
##
# Load chicago boundaries shapefile
chicago_bound <- st_read("Boundaries - City")
## Reading layer `geo_export_c6730356-d5a0-4e1e-80f6-64462990cd9c' from data source `C:\Users\52222\OneDrive - The University of Chicago\Documents\Autumn 23\Health Policy Lab\Boundaries - City'
## using driver `ESRI Shapefile'
## Simple feature collection with 1 feature and 4 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -87.94011 ymin: 41.64454 xmax: -87.52414 ymax: 42.02304
## Geodetic CRS: WGS84(DD)
# Transform to same CRS format
chicago_bound <- st_transform(chicago_bound, 4326)
tractsShp <- st_transform(tractsShp, 4326)
# Join census tracts with chicago boundaries
tract_acs_shp <- st_intersection(tractsShp, chicago_bound)
# Extract file of census tract by community area
chi_tracts_comm <-read.csv(file = "Census_Tracts_in_Chicago_Community_Areas.csv")
# Merge Chicago ACS Tracts Income Data with the Census Tracts in Chicago Community Areas Data
chi_tracts_merge <- merge(tract_acs_shp, chi_tracts_comm, by.x = "GEOID", by.y = "Tract")
# Group Census Tracts by Chicago Community Area
acs_est <- chi_tracts_merge %>%
group_by(CommunityAreaName) %>%
summarize(mean_medinc = mean(medinc,na.rm=TRUE),
poverty_male_tot = sum(poverty_male,na.rm=TRUE),
poverty_female_tot = sum(poverty_female,na.rm=TRUE),
hh_for_rent_tot = sum(hh_for_rent,na.rm=TRUE),
hh_owners_tot = sum(hh_owners,na.rm=TRUE),
hh_alone_tot = sum(hh_alone,na.rm=TRUE),
hh_renters_tot = sum(hh_renters,na.rm=TRUE),
hh_not_alone_tot = sum(hh_not_alone,na.rm=TRUE),
renter_alone_tot = sum(renter_alone,na.rm=TRUE),
renter_not_alone_tot = sum(renter_not_alone,na.rm=TRUE),
less_one_ren_tot = sum(less_one_ren,na.rm=TRUE),
one_half_ren_tot = sum(one_half_ren,na.rm=TRUE),
more_half_ren_tot = sum(more_half_ren,na.rm=TRUE),
less_one_own_tot = sum(less_one_own,na.rm=TRUE),
one_half_own_tot = sum(one_half_own,na.rm=TRUE),
more_half_own_tot = sum(more_half_own,na.rm=TRUE),
two_bd_tot = sum(two_bd,na.rm=TRUE),
hh_mortgage_tot = sum(hh_mortgage,na.rm=TRUE),
hh_no_mortgage_tot = sum(hh_no_mortgage,na.rm=TRUE),
med_gross_rent_tot = mean(med_gross_rent,na.rm=TRUE),
own_2bd_tot = sum(own_2bd,na.rm=TRUE),
ren_2bd_tot = sum(ren_2bd,na.rm=TRUE),
rent_burden_tot = sum(rent_burden,na.rm=TRUE),
cost_burden_tot = sum(cost_burden,na.rm=TRUE),
no_disab_ins_tot = sum(no_disab_ins,na.rm=TRUE),
no_disab_no_ins_tot = sum(no_disab_no_ins,na.rm=TRUE),
disab_ins_tot = sum(disab_ins,na.rm=TRUE),
disab_no_ins_tot = sum(disab_no_ins,na.rm=TRUE)
)
summary(acs_est)
## CommunityAreaName mean_medinc poverty_male_tot poverty_female_tot
## Length:77 Min. : 14534 Min. : 0.0 Min. : 24.0
## Class :character 1st Qu.: 33123 1st Qu.: 58.0 1st Qu.:108.0
## Mode :character Median : 42585 Median :106.0 Median :210.0
## Mean : 45599 Mean :144.3 Mean :271.3
## 3rd Qu.: 52708 3rd Qu.:194.0 3rd Qu.:398.0
## Max. :128974 Max. :679.0 Max. :754.0
## hh_for_rent_tot hh_owners_tot hh_alone_tot hh_renters_tot
## Min. : 0.0 Min. : 105 Min. : 28.0 Min. : 128
## 1st Qu.: 102.0 1st Qu.: 867 1st Qu.: 392.0 1st Qu.: 459
## Median : 335.0 Median :1613 Median : 601.0 Median : 928
## Mean : 486.7 Mean :1806 Mean : 758.6 Mean :1139
## 3rd Qu.: 674.0 3rd Qu.:2285 3rd Qu.:1010.0 3rd Qu.:1631
## Max. :3267.0 Max. :7853 Max. :4032.0 Max. :4075
## hh_not_alone_tot renter_alone_tot renter_not_alone_tot less_one_ren_tot
## Min. : 0.00 Min. : 15.0 Min. : 0.00 Min. : 128
## 1st Qu.: 11.00 1st Qu.: 310.0 1st Qu.: 0.00 1st Qu.: 459
## Median : 33.00 Median : 629.0 Median : 26.00 Median : 928
## Mean : 49.08 Mean : 800.3 Mean : 33.64 Mean :1119
## 3rd Qu.: 76.00 3rd Qu.:1082.0 3rd Qu.: 49.00 3rd Qu.:1577
## Max. :202.00 Max. :2572.0 Max. :143.00 Max. :3977
## one_half_ren_tot more_half_ren_tot less_one_own_tot one_half_own_tot
## Min. : 0.000 Min. : 0.00 Min. : 105 Min. : 0.00
## 1st Qu.: 0.000 1st Qu.: 0.00 1st Qu.: 867 1st Qu.: 0.00
## Median : 0.000 Median : 0.00 Median :1611 Median : 0.00
## Mean : 8.597 Mean : 11.44 Mean :1789 Mean :11.43
## 3rd Qu.:16.000 3rd Qu.: 11.00 3rd Qu.:2285 3rd Qu.:18.00
## Max. :86.000 Max. :143.00 Max. :7853 Max. :98.00
## more_half_own_tot two_bd_tot hh_mortgage_tot hh_no_mortgage_tot
## Min. : 0.000 Min. : 0.0 Min. : 19.0 Min. : 13.0
## 1st Qu.: 0.000 1st Qu.: 104.0 1st Qu.: 256.0 1st Qu.: 256.0
## Median : 0.000 Median : 265.0 Median : 444.0 Median : 481.0
## Mean : 5.065 Mean : 818.5 Mean : 491.3 Mean : 539.6
## 3rd Qu.: 4.000 3rd Qu.: 576.0 3rd Qu.: 652.0 3rd Qu.: 646.0
## Max. :118.000 Max. :12940.0 Max. :2014.0 Max. :2737.0
## med_gross_rent_tot own_2bd_tot ren_2bd_tot rent_burden_tot
## Min. : 442.5 Min. : 23 Min. : 134 Min. : 32.0
## 1st Qu.: 946.5 1st Qu.: 719 1st Qu.: 961 1st Qu.: 193.0
## Median :1088.0 Median : 1198 Median : 2010 Median : 448.0
## Mean :1213.8 Mean : 1943 Mean : 2766 Mean : 551.9
## 3rd Qu.:1351.6 3rd Qu.: 2530 3rd Qu.: 4168 3rd Qu.: 791.0
## Max. :2919.8 Max. :10180 Max. :11204 Max. :2466.0
## cost_burden_tot no_disab_ins_tot no_disab_no_ins_tot disab_ins_tot
## Min. : 39 Min. : 242 Min. : 0.00 Min. : 144
## 1st Qu.: 278 1st Qu.: 1563 1st Qu.: 6.00 1st Qu.: 918
## Median : 421 Median : 2452 Median : 28.00 Median :1264
## Mean : 556 Mean : 2787 Mean : 56.74 Mean :1496
## 3rd Qu.: 767 3rd Qu.: 3435 3rd Qu.: 76.00 3rd Qu.:1920
## Max. :2348 Max. :11683 Max. :437.00 Max. :6467
## disab_no_ins_tot geometry
## Min. : 0.00 MULTIPOLYGON : 2
## 1st Qu.: 0.00 POLYGON :75
## Median : 0.00 epsg:4326 : 0
## Mean : 22.47 +proj=long...: 0
## 3rd Qu.: 28.00
## Max. :191.00
Note: A housing unit is a house, an apartment, a mobile home, a group of rooms, or a single room that is occupied (or if vacant, is intended for occupancy) as separate living quarters.
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="mean_medinc", n=5, style="quantile", palette="YlOrBr", interactive=TRUE)
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="poverty_male_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="poverty_female_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="hh_for_rent_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="hh_owners_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="hh_renters_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="hh_alone_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="hh_not_alone_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="renter_alone_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="renter_not_alone_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="one_half_own_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="more_half_own_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="less_one_own_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="less_one_ren_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="one_half_ren_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="more_half_ren_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="two_bd_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="hh_mortgage_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="med_gross_rent_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="own_2bd_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="ren_2bd_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="rent_burden_tot", n=5, style="quantile", palette="YlOrBr" )
Note: Selected monthly owner costs are the sum of payments for mortgages, deeds of trust, contracts to purchase, or similar debts on the property (including payments for the first mortgage, second mortgages, home equity loans, and other junior mortgages); real estate taxes; fire, hazard, and flood insurance on the property; utilities (electricity, gas, and water and sewer); and fuels (oil, coal, kerosene, wood, etc.). It also includes, where appropriate, the monthly condominium fee for condominiums and mobile home costs (personal property taxes, site rent, registration fees, and license fees).
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="cost_burden_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="no_disab_ins_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="no_disab_no_ins_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="disab_ins_tot", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="disab_no_ins_tot", n=5, style="quantile", palette="YlOrBr" )