Our partners in Arlington and Fairfax Counties were interested in understanding the equity of access to health services by neighborhood, by race and ethnicity, and by household income. We began analyzing access to urgent care health services facilities.
We inventoried a variety of urgent care health services location data sources for accuracy and quality. Given that urgent care health services is a rapidly growing health care service, we found that administrative datasets were incomplete. We found that Google Maps provided the most complete picture of urgent care health services locations in the National Capital Region. To get a better understanding of the idea of access, we compared several measures.There are 113 urgent care health services health service facilities in Fairfax and 18 in Arlington.By number of facilities, Fairfax has the greatest access to urgent care health services in the National Capital region. This would be expected given the Fairfax County population is almost 5 times larger than Arlington County according to the 2020 Census. Fairfax County is also over 15 times larger by geographic area than Arlington County. We also calculated presence of urgent care health services by Census tract. For most census tracts, there is no urgent care health services facility present. Fairfax and Arlington residents who live in a census tract without an urgent care health services facility may be able to easily drive to one nearby.
Fairfax and Arlington residents who live in more urban areas, along major roads, or in Metro corridors, have greater access to urgent care health services by drive time.In Fairfax, the range of drive time to the ten closest urgent care health services facilities is three to over 15 minutes. Across Arlington, the range of drive time to the ten closest urgent care health service facilities is two to nine minutes. In both these counties, geographic inequities exist in access to urgent care health services. Our measure of access, though, still does not take into account any population-level information.
In Fairfax the areas with the lowest access to urgent care health services are northern McLean and the southwestern neighborhoods, including Fort Hunt and Huntington.
In Arlington, neighborhoods near Marymount University and southern neighborhoods below Columbia Pike have the lowest access.These areas have relatively high populations given the proximity of urgent care health services. The area with the greatest access is Centreville, Chantilly, and Herndon, which lie along a major roads in western Fairfax and have a relatively high number of urgent care health services for the population. Bailey’s Crossroads and Annandale also have comparatively low access for the region.
Many census tracts, such as those in southern Arlington, Annandale, Bailey’s Crossroads, and near Fort Hunt, have both a relatively low median household income and a relatively low access to urgent care health services.
After developing a comprehensive measure of access, we began to dig into the question of equity of access to urgent care health services facilities by demographics. We observed that the neighborhoods affected by low access to urgent care health services have different demographic compositions.
Northern Arlington, where the population is largely white and high income on average, has some of the lowest access to urgent care health services in the region.
The Southern Arlington and neighboring Bailey’s Crossroads and Annandale in Fairfax have higher Hispanic/Latino populations and lower income on average. These areas also have relatively low access to urgent care health services. Bailey’s Crossroads is also characterized by a high Latino population and lower average household income.
Centreville, McLean, and Tyson’s Corner have larger Asian American/Pacific Islander populations. Centreville has some of the highest access to urgent care health services in the region while McLean has some of the lowest access.
Some census tracts in Huntington and Fort Hunt have higher than average Black populations and lower than average household income. These areas are also the most underserved in access to urgent care health services.
In addition to income and demographic variables, we could explore access to urgent care health services by additional factors affecting health equity, including primary language spoken at home or access to health insurance.
Having a comprehensive knowledge of the equity of access to urgent care health services within neighborhoods in Fairfax and Arlington counties empowers our local stakeholders to make more effective policy decisions to address and correct inequities.Using the Social Impact Data Commons, we can explore access to additional health services using an equity lens. For example, we can explore differences in access to hospitals, primary care physicians, or substance use facilities. We find that access to these services across Fairfax and Arlington do not necessarily follow the same pattern. Using specific measures, policymakers can make informed decisions to address specific health equity gaps.
Using R statistical software, we can perform statistical analyses to analyze the relationships between variables.
#
# retrieve
#
# define the set of variable we want to retrieve
<- c(
variables "race_hispanic_or_latino_percent_direct", "race_afr_amer_alone_percent_direct",
"race_AAPI_percent_direct", "race_wht_alone_percent_direct", "urgent_3sfca"
)# use them to make an API URL
<- paste0(
url "https://ncr-data-commons.netlify.app/api?", # base URL of the API
"id=51013,51059&dataset=tract&time_range=2020,2022&include=", # query string defining a subset
paste(variables, collapse = ",") # comma-separate version of the selected variables
)# download and load the data directly
<- read.csv(url)
data
#
# prepare
#
# since urgent care health services is only available in 2022, but demographics variables are only available
# up to 2020, we'll need to align time by moving urgent care health services to 2020
## first set urgent care health services in 2020 to that in 2022
$urgent_3sfca[data$time == 2020] <- data$urgent_3sfca[data$time == 2022]
data## then remove all but 2020 time points from the dataset
<- data[data$time == 2020,]
data
# since we're interested in comparing counties, but looking at the tract level,
# we can add a variable for county, identified by the first 5 characters of the tract GEOID
$county <- substring(data$ID, 1, 5)
data
# for plotting, we'll make a tall version of the dataset (to plot multiple variables at once),
# assign display-ready labels, and remove missing values (likely tracts with no people)
<- na.omit(data.frame(
data_tall Value = unlist(data[, variables[1:4]]),
variable = c(
race_AAPI_percent_direct = "Asian American/ \n Pacific Islander \n Alone",
race_hispanic_or_latino_percent_direct = "Hispanic or Latino",
race_afr_amer_alone_percent_direct = "African American \n Alone",
race_wht_alone_percent_direct = "White Alone"
rep(variables[1:4], each = nrow(data))],
)[urgent_3sfca = rep(data$urgent_3sfca, 4),
County = c("51013" = "Arlington", "51059" = "Fairfax")[rep(data$county, 4)]
))
#
# analyze
#
# now we can look at the relationships between urgent care health services
# and each demographic variable within tracts, between counties
library(ggplot2)
ggplot(data_tall) +
aes(x = Value, y = urgent_3sfca, color = County) +
geom_point() +
geom_smooth(method = lm, formula = y ~ x) +
labs(
y = "urgent care health services Providers per 10,000 People",
x = "Percent of the Population",
caption = ""
+
) facet_grid(variable ~ .) +
theme(text = element_text(size = 20))
#!/usr/bin/env python
# coding: utf-8
import requests
import pandas as pd
import io
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from plotnine import (ggplot,aes,geom_point,geom_smooth,labs,facet_grid)
= [
variables "race_hispanic_or_latino_percent_direct", "race_afr_amer_alone_percent_direct",
"race_AAPI_percent_direct", "race_wht_alone_percent_direct", "urgent_3sfca"
]
= f"https://ncr-data-commons.netlify.app/api?id=51013,51059&dataset=tract&time_range=2020,2022&include={','.join(variables)}"
url
= requests.get(url)
response = pd.read_csv(io.StringIO(response.text))
data
data
'urgent_3sfca'].loc[data['time'] == 2020] = data['urgent_3sfca'].loc[data['time'] == 2022].values
data[= data[data['time'] == 2020]
data 'county'] = data['ID'].astype(str).str.slice(0, 5)
data[
dataprint(data.dtypes)
data.county.unique()
=data[data['county']=='51059']
data1
data1.head()
=data[data['county']=='51013']
data2
data2.head()
={}
dt=vars_ = {"race_hispanic_or_latino_percent_direct":"Hispanic or Latino", "race_afr_amer_alone_percent_direct":"African American",
dt_vars"race_AAPI_percent_direct":"Asian American", "race_wht_alone_percent_direct":"White Alone"}
= ["race_hispanic_or_latino_percent_direct", "race_afr_amer_alone_percent_direct","race_AAPI_percent_direct", "race_wht_alone_percent_direct"]
vars_ 'variable']=[]
dt['value']=[]
dt['urgent_3sfca']=[]
dt[for v_ in vars_:
'value']+=list(data1[v_])
dt['urgent_3sfca']+=list(data1['urgent_3sfca'])
dt['variable']+=([dt_vars[v_]]*len(list(data1[v_])))
dt['County']=['51059']*len(dt['value'])
dt[=pd.DataFrame(dt)
df1
df1.head()
={}
dt1=vars_ = {"race_hispanic_or_latino_percent_direct":"Hispanic or Latino", "race_afr_amer_alone_percent_direct":"African American",
dt_vars"race_AAPI_percent_direct":"Asian American", "race_wht_alone_percent_direct":"White Alone"}
= ["race_hispanic_or_latino_percent_direct", "race_afr_amer_alone_percent_direct","race_AAPI_percent_direct", "race_wht_alone_percent_direct"]
vars_ 'variable']=[]
dt1['value']=[]
dt1['urgent_3sfca']=[]
dt1[for v_ in vars_:
'value']+=list(data2[v_])
dt1['urgent_3sfca']+=list(data2['urgent_3sfca'])
dt1['variable']+=([dt_vars[v_]]*len(list(data2[v_])))
dt1['County']=['51013']*len(dt1['value'])
dt1[=pd.DataFrame(dt1)
df2
df2.head()
=pd.concat([df1,df2])
df
df.head()
df.County.unique()
= df.dropna()
df
# Rivanna is not letting us knit plots
from plotnine import ggplot, aes, facet_grid, geom_point, geom_smooth, labs, scale_color_discrete
#(
# ggplot(df, aes(x='value', y='urgent_3sfca', color='County')) +
# facet_grid(facets="variable ~ .") +
# geom_point() +
# geom_smooth() +
# labs(x='Percent of the Population', y='urgent care health services Providers per 10,000 People') +
# scale_color_discrete(labels={'51013': 'Arlington', '51059': 'Fairfax'})
#)
We see that urgent care health services access is variable across census tracts in Arlington county, there does not appear to be a relationship between urgent care health services access demographics. In Fairfax County, census tracts with higher percentages of Asian American/Pacific Islander population appear to have higher access to urgent care health services, too. Additionally, census tracts with higher percentages of Black and White populations appear to have lower access to urgent care health services.
Note: If you find that the Social Impact Data Commons isn’t displaying data properly, you may need to clear the dashboard settings (from the Settings Menu) or clear your browser cache. Please contact us if you have other issues.
Sponsored by |
Project Contact: Aaron Schroeder, ads7fg@virginia.edu |