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.
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 = "B19013_001",
percap = "B19301_001",
hh_for_rent = "B25004_002",
hh_owners = "B25015_011",
hh_renters = "B25015_024",
hh_alone = "B25011_021",
hh_not_alone = "B25011_025",
renter_alone = "B25011_045",
renter_not_alone = "B25011_049",
less_one_own = "B25015_012",
one_half_own = "B25015_013",
more_half_own = "B25015_014",
less_one_ren = "B25015_025",
one_half_ren = "B25015_026",
more_half_ren = "B25015_027",
two_bd = "B25017_003",
hh_mortgage = "B25027_008",
hh_no_mortgage = "B25027_016",
med_gross_rent = "B25031_004",
own_2bd = "B25042_005",
ren_2bd = "B25042_012",
rent_burden = "B25072_028",
cost_burden = "B25093_028"
),
year = 2021, state = 'IL', geometry = TRUE) %>%
select(GEOID, NAME, variable, estimate) %>%
spread(variable, estimate)
summary(tractsShp)
## GEOID NAME cost_burden hh_alone
## Length:3265 Length:3265 Min. : 0.0 Min. : 0
## Class :character Class :character 1st Qu.: 24.0 1st Qu.: 50
## Mode :character Mode :character Median : 51.0 Median : 98
## Mean : 66.2 Mean : 118
## 3rd Qu.: 89.0 3rd Qu.: 160
## Max. :800.0 Max. :1488
##
## hh_for_rent hh_mortgage hh_no_mortgage hh_not_alone
## Min. : 0.00 Min. : 0.00 Min. : 0.0 Min. : 0.00
## 1st Qu.: 0.00 1st Qu.: 33.00 1st Qu.: 44.0 1st Qu.: 0.00
## Median : 16.00 Median : 66.00 Median : 88.0 Median : 0.00
## Mean : 32.32 Mean : 79.25 Mean :100.2 Mean : 6.94
## 3rd Qu.: 46.00 3rd Qu.:112.00 3rd Qu.:141.0 3rd Qu.: 10.00
## Max. :587.00 Max. :533.00 Max. :607.0 Max. :164.00
##
## hh_owners hh_renters less_one_own less_one_ren
## Min. : 0.0 Min. : 0.00 Min. : 0.0 Min. : 0.00
## 1st Qu.: 156.0 1st Qu.: 21.00 1st Qu.: 154.0 1st Qu.: 21.00
## Median : 285.0 Median : 52.00 Median : 283.0 Median : 51.00
## Mean : 305.1 Mean : 83.33 Mean : 303.8 Mean : 82.53
## 3rd Qu.: 415.0 3rd Qu.:112.00 3rd Qu.: 414.0 3rd Qu.:110.00
## Max. :2699.0 Max. :826.00 Max. :2699.0 Max. :795.00
##
## med_gross_rent medinc more_half_own more_half_ren
## Min. : 266.0 Min. : 3416 Min. : 0.0000 Min. : 0.000
## 1st Qu.: 811.5 1st Qu.: 51827 1st Qu.: 0.0000 1st Qu.: 0.000
## Median :1023.0 Median : 68500 Median : 0.0000 Median : 0.000
## Mean :1126.2 Mean : 76350 Mean : 0.3979 Mean : 0.461
## 3rd Qu.:1317.0 3rd Qu.: 93693 3rd Qu.: 0.0000 3rd Qu.: 0.000
## Max. :3501.0 Max. :250001 Max. :111.0000 Max. :109.000
## NA's :554 NA's :28
## one_half_own one_half_ren own_2bd percap
## Min. : 0.0000 Min. : 0.0000 Min. : 0.0 Min. : 826
## 1st Qu.: 0.0000 1st Qu.: 0.0000 1st Qu.: 99.0 1st Qu.: 25857
## Median : 0.0000 Median : 0.0000 Median : 182.0 Median : 33863
## Mean : 0.9406 Mean : 0.3308 Mean : 214.4 Mean : 38511
## 3rd Qu.: 0.0000 3rd Qu.: 0.0000 3rd Qu.: 284.0 3rd Qu.: 45047
## Max. :66.0000 Max. :66.0000 Max. :2146.0 Max. :173092
## NA's :8
## ren_2bd rent_burden renter_alone renter_not_alone
## Min. : 0.0 Min. : 0.00 Min. : 0.00 Min. : 0.000
## 1st Qu.: 67.0 1st Qu.: 0.00 1st Qu.: 9.00 1st Qu.: 0.000
## Median : 151.0 Median : 17.00 Median : 31.00 Median : 0.000
## Mean : 197.7 Mean : 37.48 Mean : 59.98 Mean : 2.231
## 3rd Qu.: 278.0 3rd Qu.: 50.00 3rd Qu.: 79.00 3rd Qu.: 0.000
## Max. :1171.0 Max. :601.00 Max. :795.00 Max. :236.000
##
## two_bd geometry
## Min. : 0.00 MULTIPOLYGON :3265
## 1st Qu.: 0.00 epsg:4269 : 0
## Median : 14.00 +proj=long...: 0
## Mean : 43.29
## 3rd Qu.: 47.00
## 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),mean_percap=mean(percap,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=mean(rent_burden,na.rm=TRUE),
cost_burden_tot=mean(cost_burden,na.rm=TRUE))
summary(acs_est)
## CommunityAreaName mean_medinc mean_percap hh_for_rent_tot
## Length:77 Min. : 16248 Min. : 12614 Min. : 0.0
## Class :character 1st Qu.: 42530 1st Qu.: 22151 1st Qu.: 102.0
## Mode :character Median : 60177 Median : 29371 Median : 335.0
## Mean : 63856 Mean : 35710 Mean : 486.7
## 3rd Qu.: 75740 3rd Qu.: 43624 3rd Qu.: 674.0
## Max. :147982 Max. :113109 Max. :3267.0
## hh_owners_tot hh_alone_tot hh_renters_tot hh_not_alone_tot
## Min. : 105 Min. : 28.0 Min. : 128 Min. : 0.00
## 1st Qu.: 867 1st Qu.: 392.0 1st Qu.: 459 1st Qu.: 11.00
## Median :1613 Median : 601.0 Median : 928 Median : 33.00
## Mean :1806 Mean : 758.6 Mean :1139 Mean : 49.08
## 3rd Qu.:2285 3rd Qu.:1010.0 3rd Qu.:1631 3rd Qu.: 76.00
## Max. :7853 Max. :4032.0 Max. :4075 Max. :202.00
## renter_alone_tot renter_not_alone_tot less_one_ren_tot one_half_ren_tot
## Min. : 15.0 Min. : 0.00 Min. : 128 Min. : 0.000
## 1st Qu.: 310.0 1st Qu.: 0.00 1st Qu.: 459 1st Qu.: 0.000
## Median : 629.0 Median : 26.00 Median : 928 Median : 0.000
## Mean : 800.3 Mean : 33.64 Mean :1119 Mean : 8.597
## 3rd Qu.:1082.0 3rd Qu.: 49.00 3rd Qu.:1577 3rd Qu.:16.000
## Max. :2572.0 Max. :143.00 Max. :3977 Max. :86.000
## more_half_ren_tot less_one_own_tot one_half_own_tot more_half_own_tot
## Min. : 0.00 Min. : 105 Min. : 0.00 Min. : 0.000
## 1st Qu.: 0.00 1st Qu.: 867 1st Qu.: 0.00 1st Qu.: 0.000
## Median : 0.00 Median :1611 Median : 0.00 Median : 0.000
## Mean : 11.44 Mean :1789 Mean :11.43 Mean : 5.065
## 3rd Qu.: 11.00 3rd Qu.:2285 3rd Qu.:18.00 3rd Qu.: 4.000
## Max. :143.00 Max. :7853 Max. :98.00 Max. :118.000
## two_bd_tot hh_mortgage_tot hh_no_mortgage_tot med_gross_rent_tot
## Min. : 0.0 Min. : 19.0 Min. : 13.0 Min. : 442.5
## 1st Qu.: 104.0 1st Qu.: 256.0 1st Qu.: 256.0 1st Qu.: 946.5
## Median : 265.0 Median : 444.0 Median : 481.0 Median :1088.0
## Mean : 818.5 Mean : 491.3 Mean : 539.6 Mean :1213.8
## 3rd Qu.: 576.0 3rd Qu.: 652.0 3rd Qu.: 646.0 3rd Qu.:1351.6
## Max. :12940.0 Max. :2014.0 Max. :2737.0 Max. :2919.8
## own_2bd_tot ren_2bd_tot rent_burden_tot cost_burden_tot
## Min. : 23 Min. : 134 Min. : 5.333 Min. : 10.64
## 1st Qu.: 719 1st Qu.: 961 1st Qu.: 36.917 1st Qu.: 34.18
## Median : 1198 Median : 2010 Median : 53.000 Median : 52.50
## Mean : 1943 Mean : 2766 Mean : 58.047 Mean : 61.89
## 3rd Qu.: 2530 3rd Qu.: 4168 3rd Qu.: 73.500 3rd Qu.: 75.71
## Max. :10180 Max. :11204 Max. :206.000 Max. :199.50
## geometry
## MULTIPOLYGON : 2
## POLYGON :75
## epsg:4326 : 0
## +proj=long...: 0
##
##
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="mean_medinc", n=5, style="quantile", palette="YlOrBr" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="mean_percap", 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" )
tmap_mode("view")
tm_shape(acs_est) +
tm_polygons(col="cost_burden_tot", n=5, style="quantile", palette="YlOrBr" )