Introduction

Improving healthcare access for the public remains one of the most significant challenges in public health initiatives. Emergency department (ED) services play a vital role in providing immediate care to communities in need, especially in response to natural disasters, disease outbreaks, and the management of chronic comorbidities, particularly among aging populations. Access to emergency care is not only a crucial component of public health infrastructure but also a fundamental necessity for mitigating long-term health disparities. According to Anamazobi Ohaiba in the study Trends and Patterns in Emergency Department Visits, there were approximately 140 million ED visits in the United States in 2021, equating to a rate of 43 visits per 100 people. The study further highlights that ED utilization rates are highest among older adults and individuals from lower socioeconomic backgrounds (Ohaiba et al., 2024). These findings underscore the importance of examining ED visit trends to better understand the factors influencing healthcare access and disparities across different demographic groups.

This project aims to utilize publicly available data from the Centers for Disease Control and Prevention (CDC) to investigate key trends and determinants of emergency department visits and healthcare utilization in the United States. Specifically, our research seeks to analyze how ED visits among adults and children have changed over time, identify demographic factors that influence these visits, and explore disparities based on gender, sex, socioeconomic status, and other relevant variables. By examining these patterns, we aim to provide insights that can inform healthcare policy, improve emergency care delivery, and enhance resource allocation in a way that promotes equitable access to emergency services.

Data and Methodology

Understanding ED visit trends is critical for policymakers, healthcare providers, and public health officials in optimizing resource distribution and improving patient outcomes. High ED utilization among vulnerable populations suggests systemic gaps in primary and preventive care, which can contribute to overcrowding, increased healthcare costs, and potential delays in treatment for critical cases. By leveraging data-driven analysis, this study seeks to contribute to ongoing efforts aimed at reducing healthcare disparities and improving emergency healthcare accessibility for all communities. Through a deeper understanding of the social, economic, and demographic determinants of ED visits, this research will offer valuable recommendations for improving healthcare infrastructure and ensuring that emergency services are effectively meeting the needs of diverse populations.

This study utilizes publicly available data from the National Center for Health Statistics (NCHS), a division of the Centers for Disease Control and Prevention (CDC). According to the CDC, data collection methodologies are based on household interviews conducted as part of the National Health Interview Survey (NHIS), which samples the civilian, non-institutionalized U.S. population. The NHIS survey includes responses from approximately 27,000 adults and 9,000 children annually, covering various health-related topics. Key components of the survey include demographic characteristics, health insurance coverage, chronic conditions, and income levels, all of which are critical in analyzing emergency department (ED) utilization trends and disparities across different populations.

The raw data used in this study primarily come in Excel format and are not consistently structured, often containing a mix of text and numerical values. To facilitate analysis, we performed data cleaning and transformation, extracting relevant variables from the raw data sets and restructuring them into a standardized format. This process included creating new data frames, renaming variables for consistency, and converting categorical responses into numeric formats where appropriate. These steps ensured that the data were ready for statistical analysis and visualization.

Data Sources

We analyze emergency department utilization trends using the following datasets from the CDC:

  • ED Visits for Adults (edad.xlsx)– Emergency department visits for adults from 1997 to 2019.
  • ED Visits for Children (edch.xlsx) – ED visits for individuals under 18 years old during the same period.
  • Healthcare Visits (hcarevis.xlsx) – Data on visits to physician offices and hospital emergency departments, aggregated by age, sex, and race.

Key Variables

The following variables are central to our analysis:

  • Age Group – Differentiating between adults and children.
  • Year of Visit – Tracking trends over time.
  • Sex and Race – Examining disparities in ED visits.
  • Visit Type – Categorizing visits as emergency, physician office, or injury-related.
  • Frequency of Visits – Measured as visits per year per 1,000 people.

Methods

To analyze emergency department (ED) utilization patterns and disparities, we employ a combination of statistical and visualization techniques. These methods provide a comprehensive understanding of ED visit trends across different demographic groups and help identify key factors influencing healthcare access. Our analytical approach includes the following:

  1. Descriptive Statistics – We summarize ED visit trends by examining key demographic variables such as age, sex, race, and socioeconomic status. This provides an overview of the frequency and distribution of ED visits across different population groups.

  2. Trend Analysis – To assess how ED visits have evolved over time, we use line graphs and trend lines to visualize patterns and fluctuations in visit rates. This analysis helps identify long-term shifts and potential seasonal variations in ED utilization.

  3. Comparative Analysis – We evaluate disparities in healthcare access by comparing ED visit rates across different groups, such as gender, race, and socioeconomic status. Bar charts are used to illustrate variations and highlight inequities in emergency healthcare usage.

Adult ED Visits Analysis

adult_ed <- adult_ed %>% 
  mutate(year_group = cut(year, 
                          breaks = seq(min(year), max(year) + 1, by = 5),
                          right = FALSE, 
                          include.lowest = TRUE))
child_ed <- child_ed %>% 
  mutate(year_group = cut(year, 
                          breaks = seq(min(year), max(year) + 1, by = 5),
                          right = FALSE, 
                          include.lowest = TRUE))
# Create bar charts to compare racial groups
adult_race_data <- adult_ed %>% 
  select(year, year_group, white_only, black_or_african_american_only, hispanic_or_latino, 
         asian_only, x2_or_more_races, american_indian_or_alaska_native_only, american_indian_or_alaska_native_and_white) %>% 
  gather(key = "race", value = "ed_visits", -year, -year_group) %>% 
  group_by(year_group, race) %>% 
  summarise(mean_ed = mean(ed_visits, na.rm = TRUE), .groups = "drop") %>% 
  mutate(race = str_replace_all(race, "_", " ") %>% str_to_title())

ggplot(adult_race_data, aes(x = year_group, y = mean_ed, fill = race)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Average Adult ED Visits by Racial Group (5-Year Intervals)",
       x = "Year Group",
       y = "Average Percentage of ED Visits") +
  scale_fill_brewer(palette = "Set3") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

# Create bar charts to compare based on Insurance Coverage
adult_insurance_data <- adult_ed %>% 
  select(year, year_group, insured, private, medicaid, uninsured) %>% 
  gather(key = "insurance", value = "ed_visits", -year, -year_group) %>% 
  group_by(year_group, insurance) %>% 
  summarise(mean_ed = mean(ed_visits, na.rm = TRUE), .groups = "drop")

ggplot(adult_insurance_data, aes(x = year_group, y = mean_ed, fill = insurance)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Average Adult ED Visits by Insurance Coverage (5-Year Intervals)",
       x = "Year Group",
       y = "Average Percentage of ED Visits") +
  scale_fill_brewer(palette = "Set1") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Child ED Visits Analysis

# Line Chart for Child ED visits
gender_data <- child_ed %>% 
  select(year, year_group, male, female) %>% 
  gather(key = "gender", value = "ed_visits", -year, -year_group) %>% 
  group_by(year_group, gender) %>% 
  summarise(mean_ed = mean(ed_visits, na.rm = TRUE), .groups = "drop")

ggplot(gender_data, aes(x = year_group, y = mean_ed, fill = gender)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Average Child ED Visits by Gender (5-Year Intervals)",
       x = "Year Group",
       y = "Average Percentage of ED Visits") +
  scale_fill_brewer(palette = "Dark2") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

# Child ED visits based on Insurance Coverage
insurance_data <- child_ed %>% 
  select(year, year_group, insured, private, medicaid, uninsured) %>% 
  gather(key = "insurance", value = "ed_visits", -year, -year_group) %>% 
  group_by(year_group, insurance) %>% 
  summarise(mean_ed = mean(ed_visits, na.rm = TRUE), .groups = "drop")

ggplot(insurance_data, aes(x = year_group, y = mean_ed, fill = insurance)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "Average Child ED Visits by Insurance Coverage (5-Year Intervals)",
       x = "Year Group",
       y = "Average Percentage of ED Visits") +
  scale_fill_brewer(palette = "Pastel1") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

ED Visits Analysis (Adult and Children)

## Start Trend Analysis Darren
edch_trend <- edch_data %>%
  select('Year', 'Percent') %>%
  filter(!is.na(Year)) %>%
  mutate(Group = "Children")

colnames(edch_trend) <- c("Year", "Percent", "Group")

edad_trend <- edad_data %>%
  select('Year', 'Percent') %>%
  filter(!is.na(Year)) %>%
  mutate(Group = "Adults")

colnames(edad_trend) <- c("Year", "Percent", "Group")

combined_data <- bind_rows(edch_trend, edad_trend)

ggplot(combined_data, aes(x = Year, y = Percent, color = Group)) +
  geom_line(size = 1.2) +  
  geom_point(size = 3) +   
  geom_smooth(method = "lm", se = FALSE, linetype = "dashed") +  
  labs(
    title = "Trend in Emergency Department Visits (1997–2019)",
    x = "Year",
    y = "Percentage with One or More ED Visits",
    color = "Group"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
    axis.title = element_text(size = 12),
    axis.text = element_text(size = 10),
    legend.position = "bottom"
  )

Visits by Age Group (Older Range)

## Continue Trend Analysis Kabir
#clean data
age_data <- data %>%
  filter(Characteristic %in% c("18–24 years", "25–44 years", "45–54   years", "55–64 years", "65–74 years", "75 years and over")) %>%
  drop_na()

age_data <- subset(age_data, select = -c(...3, ...5, ...7, ...9, ...11, ...13, ...15, ...17, ...19, ...21, ...23, ...25, ...27, ...29, ...31, ...33, ...35, ...37, ...39, ...41, ...43, ...45, ...47))

age_data_cleaned <- age_data[,-25:-70]

age_data_cleaned$...40 <- as.character(age_data_cleaned$...40)
age_data_cleaned$...46 <- as.character(age_data_cleaned$...46)

names(age_data_cleaned)[1] <- "Age_Group"
names(age_data_cleaned)[2] <- "1997"
names(age_data_cleaned)[3] <- "1998"
names(age_data_cleaned)[4] <- "1999"
names(age_data_cleaned)[5] <- "2000"
names(age_data_cleaned)[6] <- "2001"
names(age_data_cleaned)[7] <- "2002"
names(age_data_cleaned)[8] <- "2003"
names(age_data_cleaned)[9] <- "2004"
names(age_data_cleaned)[10] <- "2005"
names(age_data_cleaned)[11] <- "2006"
names(age_data_cleaned)[12] <- "2007"
names(age_data_cleaned)[13] <- "2008"
names(age_data_cleaned)[14] <- "2009"
names(age_data_cleaned)[15] <- "2010"
names(age_data_cleaned)[16] <- "2011"
names(age_data_cleaned)[17] <- "2012"
names(age_data_cleaned)[18] <- "2013"
names(age_data_cleaned)[19] <- "2014"
names(age_data_cleaned)[20] <- "2015"
names(age_data_cleaned)[21] <- "2016"
names(age_data_cleaned)[22] <- "2017"
names(age_data_cleaned)[23] <- "2018"
names(age_data_cleaned)[24] <- "2019"

#plot data
age_data_cleaned %>% pivot_longer(!Age_Group, names_to = 'year', values_to = 'visits') %>%
  mutate(year = as.numeric(year)) %>%
  mutate(visits = as.numeric(visits)) %>%
  ggplot(aes(x = year, y = visits, color = Age_Group)) +
  geom_line(linewidth=1.2) +
  geom_point(size=1.2) +
  labs(title = "ED Visits Over Time by Age Group", x = "Year", y = "Percent of Population who Visited ED") +
  theme_minimal()

Discussion

Our findings suggest that ED visits have fluctuated over the years, with notable differences between adults and children. Injury-related visits remain a significant portion of ED utilization, highlighting the need for targeted prevention strategies. For elders specifically (75 years and over), there needs to be extra emphasis on prevention strategies. They go to the ED at a far higher rate vs the rest of the population, and as time as gone on, this gap has grown, rather than shrinking.

Policy implications include optimizing hospital staffing, improving healthcare accessibility, and addressing demographic disparities. Those last two points are also related to the disproportionate rate at which seniors visit the ER. Demographic disparities can lead to inadequate education or acccess to healthy nutrition. This can lead to health problems later down the line, which would manifest as senior ED visits. Limitations of this study include potential reporting biases and the scope of available CDC data.

References

Data source: CDC - https://www.cdc.gov/nchs/hus/data-finder.htm?&subject=Emergency%20departments Methodologies: https://www.cdc.gov/nchs/nhis/about/2019-questionnaire-redesign.html?CDC_AAref_Val=https://www.cdc.gov/nchs/nhis/2019_quest_redesign.htm