“The Area Deprivation Index (ADI) is based on a measure created by the Health Resources & Services Administration (HRSA) over two decades ago for primarily county-level use, but refined, adapted, and validated to the Census block group/neighborhood level by Amy Kind, MD, PhD and her research team at the University of Wisconsin-Madison. It allows for rankings of neighborhoods by socioeconomic status disadvantage in a region of interest (e.g. at the state or national level).” https://www.neighborhoodatlas.medicine.wisc.edu
“The ADI, which is a composite measure of 17 census variables designed to describe socioeconomic disadvantage based on income, education, household characteristics, and housing.” https://www.cdc.gov/pcd/issues/2016/16_0221.htm
The ADI scores shown here identify areas where deprivation and affluence exist within communities in Connecticut.
Organizations implementing Overdose, HIV and Hep C prevention interventions can use this information to identify high deprivation areas in Connecticut.
It is recommended for organizations in Connecticut to focus their Overdose, HIV and Hep C prevention efforts in high level deprivation areas.
How to to interpret ADI scores?
ADI interpretation:
A low ADI score indicates affluence or
prosperity.
A high ADI score is indicative of high levels
of deprivation.
Here are the steps for identifying areas of deprivation and affluence in Connecticut using the {sociome} R package. The {sociome} package aims to help the user to operationalize social determinants of health data in their research.
# install.packages("sociome")
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(sociome)
# Get ADI scores for counties
ct_counties<-get_adi(geography = "county",
state = "CT",
year = 2019,
dataset = "acs5",
geometry = TRUE)
##
## 1 call(s) to tidycensus beginning.
## Getting data from the 2015-2019 5-year ACS
## Warning in calculate_adi(raw_data, keep_indicators = keep_indicators, seed = seed):
## Calculating ADI and ADI-3 values from fewer than 30 locations.
## It is recommended to add more in order to obtain trustworthy results.
## Warning in cor.smooth(r): Matrix was not positive definite, smoothing was done
## Warning in psych::principal(indicators_hh_only[names(expected_signs)]): The
## matrix is not positive semi-definite, scores found from Structure loadings
# Plot ADI score map for counties
ct_counties %>%
ggplot() +
geom_sf(aes(fill = ADI)) +
ggtitle("ADIs scores for Connecticut's counties") +
theme(axis.title=element_text(size=18,face="bold"))
4) To view the 5-year ACS census data estimates in a tibble format use
the following code:
# Get 5-year ACS estimates using census data for counties
get_adi(geography = "county", state = "CT", year = 2019, dataset = "acs5")
##
## 1 call(s) to tidycensus beginning.
## Getting data from the 2015-2019 5-year ACS
## Warning in calculate_adi(raw_data, keep_indicators = keep_indicators, seed = seed):
## Calculating ADI and ADI-3 values from fewer than 30 locations.
## It is recommended to add more in order to obtain trustworthy results.
## Warning in cor.smooth(r): Matrix was not positive definite, smoothing was done
## Warning in psych::principal(indicators_hh_only[names(expected_signs)]): The
## matrix is not positive semi-definite, scores found from Structure loadings
## # A tibble: 8 × 6
## GEOID NAME ADI Financial_Strength Economic_Hardship_an…¹
## <chr> <chr> <dbl> <dbl> <dbl>
## 1 09001 Fairfield County, Conne… 133. 141. 102.
## 2 09003 Hartford County, Connec… 239. 95.3 118.
## 3 09005 Litchfield County, Conn… -65.2 94.1 75.1
## 4 09007 Middlesex County, Conne… -82.5 109. 79.5
## 5 09009 New Haven County, Conne… 301. 94.9 128.
## 6 09011 New London County, Conn… 131. 90.5 106.
## 7 09013 Tolland County, Connect… -90.8 105. 79.0
## 8 09015 Windham County, Connect… 234. 70.6 112.
## # ℹ abbreviated name: ¹Economic_Hardship_and_Inequality
## # ℹ 1 more variable: Educational_Attainment <dbl>
# Get ADI scores for Hartford county
Hartford_county <-
get_adi(
"tract",
state = "Connecticut",
county = "Hartford",
year = 2019,
dataset = "acs5",
geometry = TRUE,
keep_indicators = TRUE
)
##
## 1 call(s) to tidycensus beginning.
## Getting data from the 2015-2019 5-year ACS
##
## Single imputation performed
# Plot ADI scores map for Hartford county
Hartford_county %>%
ggplot() +
geom_sf(aes(fill = ADI)) +
scale_fill_viridis_c(direction = -1, na.value = "gray") +
ggtitle("Hartford county census tract-level ADI scores") +
theme(axis.title=element_text(size=18,face="bold"))
# Get ADI scores for New Haven county
NewHaven_county <-
get_adi(
"tract",
state = "Connecticut",
county = "New Haven",
year = 2019,
dataset = "acs5",
geometry = TRUE,
keep_indicators = TRUE
)
##
## 1 call(s) to tidycensus beginning.
## Getting data from the 2015-2019 5-year ACS
##
## Single imputation performed
# Plot ADI scores map for New Haven county
NewHaven_county %>%
ggplot() +
geom_sf(aes(fill = ADI)) +
scale_fill_viridis_c(direction = -1, na.value = "gray") +
ggtitle("New Haven county census tract-level ADI scores") +
theme(axis.title=element_text(size=18,face="bold"))
# Get ADI scores for Fairfield county
Fairfield_county <-
get_adi(
"tract",
state = "Connecticut",
county = "Fairfield",
year = 2015,
dataset = "acs5",
geometry = TRUE,
keep_indicators = TRUE
)
##
## 1 call(s) to tidycensus beginning.
## Getting data from the 2011-2015 5-year ACS
## Warning: Number of logged events: 50
##
## Single imputation performed
# Plot ADI scores map for Fairfield county
Fairfield_county %>%
ggplot() +
geom_sf(aes(fill = ADI)) +
scale_fill_viridis_c(direction = -1, na.value = "gray") +
ggtitle("Fairfield county census tract-level ADI scores") +
theme(axis.title=element_text(size=18,face="bold"))
# Get ADI scores for Litchfield county
Litchfield_county <-
get_adi(
"tract",
state = "Connecticut",
county = "Litchfield",
year = 2019,
dataset = "acs5",
geometry = TRUE,
keep_indicators = TRUE
)
##
## 1 call(s) to tidycensus beginning.
## Getting data from the 2015-2019 5-year ACS
##
## Single imputation performed
# Plot ADI scores map for Litchfield county
Litchfield_county %>%
ggplot() +
geom_sf(aes(fill = ADI)) +
scale_fill_viridis_c(direction = -1, na.value = "gray") +
ggtitle("Litchfield county census tract-level ADI scores") +
theme(axis.title=element_text(size=18,face="bold"))
# Get ADI scores for Middlesex county
Middlesex_county <-
get_adi(
"tract",
state = "Connecticut",
county = "Middlesex",
year = 2019,
dataset = "acs5",
geometry = TRUE,
keep_indicators = TRUE
)
##
## 1 call(s) to tidycensus beginning.
## Getting data from the 2015-2019 5-year ACS
##
## Single imputation performed
# Plot ADI scores map for Middlesex county
Middlesex_county %>%
ggplot() +
geom_sf(aes(fill = ADI)) +
scale_fill_viridis_c(direction = -1, na.value = "gray") +
ggtitle("Middlesex county census tract-level ADI scores") +
theme(axis.title=element_text(size=18,face="bold"))
# Get ADI scores for New London county
NewLondon_county <-
get_adi(
"tract",
state = "Connecticut",
county = "New London",
year = 2019,
dataset = "acs5",
geometry = TRUE,
keep_indicators = TRUE
)
##
## 1 call(s) to tidycensus beginning.
## Getting data from the 2015-2019 5-year ACS
##
## Single imputation performed
# Plot ADI scores map for New London county
NewLondon_county %>%
ggplot() +
geom_sf(aes(fill = ADI)) +
scale_fill_viridis_c(direction = -1, na.value = "gray") +
ggtitle("New London county census tract-level ADI scores") +
theme(axis.title=element_text(size=18,face="bold"))
# Get ADI scores for Tolland county
Tolland_county <-
get_adi(
"tract",
state = "Connecticut",
county = "Tolland",
year = 2012,
dataset = "acs5",
geometry = TRUE,
keep_indicators = TRUE
)
##
## 1 call(s) to tidycensus beginning.
## Getting data from the 2008-2012 5-year ACS
## Warning in calculate_adi(raw_data, keep_indicators = keep_indicators, seed = seed):
## Calculating ADI and ADI-3 values from fewer than 30 locations.
## It is recommended to add more in order to obtain trustworthy results.
## Warning: Number of logged events: 100
##
## Single imputation performed
# Plot ADI scores map for Tolland county
Tolland_county %>%
ggplot() +
geom_sf(aes(fill = ADI)) +
scale_fill_viridis_c(direction = -1, na.value = "gray") +
ggtitle("Tolland county census tract-level ADI scores") +
theme(axis.title=element_text(size=18,face="bold"))
# Get ADI scores for Windham county
Windham_county <-
get_adi(
"tract",
state = "Connecticut",
county = "Windham",
year = 2015,
dataset = "acs5",
geometry = TRUE,
keep_indicators = TRUE
)
##
## 1 call(s) to tidycensus beginning.
## Getting data from the 2011-2015 5-year ACS
## Warning in calculate_adi(raw_data, keep_indicators = keep_indicators, seed = seed):
## Calculating ADI and ADI-3 values from fewer than 30 locations.
## It is recommended to add more in order to obtain trustworthy results.
##
## Single imputation performed
# Plot ADI scores map for Windham county
Windham_county %>%
ggplot() +
geom_sf(aes(fill = ADI)) +
scale_fill_viridis_c(direction = -1, na.value = "gray") +
ggtitle("Windham county census tract-level ADI scores") +
theme(axis.title=element_text(size=18, face="bold"))
Now, let’s view the entire State of Connecticut by census tract-level ADI scores.
# Get ADI scores for Connecticut's census tracts
ct_census_tract <- get_adi("tract",
state = "CT",
year = 2019,
dataset = "acs5",
geometry = TRUE,
keep_indicators = TRUE)
##
## Preliminary tidycensus call beginning...
## Getting data from the 2015-2019 5-year ACS
##
## 8 call(s) to tidycensus beginning.
## Getting data from the 2015-2019 5-year ACS
## Getting data from the 2015-2019 5-year ACS
## Getting data from the 2015-2019 5-year ACS
## Getting data from the 2015-2019 5-year ACS
## Getting data from the 2015-2019 5-year ACS
## Getting data from the 2015-2019 5-year ACS
## Getting data from the 2015-2019 5-year ACS
## Getting data from the 2015-2019 5-year ACS
##
## Single imputation performed
# Plot ADI scores map for Connecticut's census tracts
ct_census_tract %>%
ggplot() +
geom_sf(aes(fill = ADI)) +
scale_fill_viridis_c(direction = -1, na.value = "gray") +
ggtitle("Connecticut's census tract-level ADI scores") +
theme(axis.title=element_text(size=18, face="bold"))
In conclusion, if you need assistance interpreting this information, please contact the author of this presentation.
Special thanks to the authors/developers of the {sociome} package: https://cran.r-project.org/web/packages/sociome/index.html
Disclaimer. All presentation contents are the responsibility of the author and do not represent the official views of any organization.