Alzheimer’s Disease, a progressive neurodegenerative condition, presents formidable challenges on a global scale. As populations age, the prevalence of Alzheimer’s is on a continuous rise, underscoring its status as a pressing public health concern. This report investigates the trends surrounding Alzheimer’s disease from 2015 to 2021, delving into various dimensions such as disease prevalence and societal impacts. It particularly examines different demographic factors including age, location and gender to discern any discernible trends. Through an analysis of available data, this report aims to illuminate the current landscape of Alzheimer’s disease and its ramifications for individuals, families, and healthcare systems.
The data set used in this report is a condensed representation of the comprehensive data sourced from the CDC (Centers for Disease Control and Prevention), focusing on Alzheimer’s surveys and statistics. It encompasses a diverse range of columns containing essential information related to Alzheimer’s Disease and Healthy Aging.
This data set offers a comprehensive view of Alzheimer’s Disease and Healthy Aging, allowing for analyses related to prevalence, demographic factors, confidence intervals, and geographical variations. Researchers can leverage this data to explore trends, correlations, and patterns, thereby gaining valuable insights into the impact of Alzheimer’s on different populations.Data Set: https://www.kaggle.com/datasets/amitvkulkarni/aging-and-memory-alzheimers-statistics
al_data <- read.csv("C:/Users/Cristina Rosette/OneDrive/Documents/Data Visualization/alzheimer_data.csv")
library(data.table)
filename <- ("C:/Users/Cristina Rosette/OneDrive/Documents/Data Visualization/alzheimer_data.csv")
df <- fread(filename, na.strings = c(NA, ""))
The data set encompasses patient information from across the United States, yet it contains instances of missing data due to individuals opting not to respond to certain questions. Consequently, the data set is derived from a restricted set of responses.Nonetheless, it remains suitable for conducting analyses pertinent to this report’s objectives.
By analyzing demographic patterns in Alzheimer’s disease is vital for identifying high-risk populations, understanding associated risk factors, devising healthcare strategies, tailoring preventive measures and interventions, and prioritizing research initiatives aimed at addressing this complex and multifaceted condition.
Each visualization examines distinct demographic trends associated with Alzheimer’s disease.Examining the total prevalence trends of Alzheimer’s Disease reveals its peak in 2016, with the highest number of cases recorded at 45,627. Subsequently, there is a substantial decrease in these numbers, reaching the lowest point in 2018. However, starting from 2018, there appears to be an upward trend. This prompts questions about the factors contributing to the significant decrease between 2016 and 2018 and the subsequent increase. What interventions or changes in healthcare practices occurred during this period, and what factors are driving the recent rise in prevalence?
library(lubridate)
library(dplyr)
library(scales)
library(ggthemes)
library(ggplot2)
library(ggrepel)
#Data Frame for the plot
year_df <- df %>%
mutate(YearStart = as.Date(as.character(YearStart), format = "%Y")) %>%
group_by(yearly = year(YearStart)) %>%
summarise(n = n(), .groups = 'keep') %>%
data.frame()
#For defining x-axis labels
x_axis_labels <- min(year_df$yearly):max(year_df$yearly)
#Finding Min and Max of the data points
hi_lo <- year_df %>%
filter(n == min(n) | n == max(n)) %>%
data.frame()
#Line Plot Code for Alzheimers Prevalence Over the Years
ggplot(year_df, aes(x = yearly, y = n)) +
geom_line(colour = 'black', linewidth = 1) +
geom_point(shape = 21, size = 3, color = "blue", fill = 'white') +
labs(title = "Prevalence Trends of Alzheimer's Disease, 2015-2021",
x = "Year",
y = "Number of Alzheimer's Disease Cases",
caption = "Source: CDC Alzheimer's Disease and Healthy Aging Data") +
theme_light() +
theme(plot.title = element_text(hjust = 0.5)) +
scale_x_continuous(labels = x_axis_labels, breaks = x_axis_labels) +
geom_point(data = hi_lo, aes(x = yearly, y = n), shape = 21, size = 4, fill = 'red', color = 'red' ) +
geom_label_repel(aes(label = scales::comma(n)),
box.padding = 3,
point.padding = 0.5,
size = 4,
color = 'Grey47',
segment.color = 'darkblue')
Examining the geographic distribution of Alzheimer’s cases is pivotal for several reasons. Firstly, it aids in identifying regions with the highest prevalence rates, guiding resource allocation for healthcare services, support programs, and research initiatives. Understanding regional disparities in Alzheimer’s prevalence sheds light on potential environmental, socio-economic, and cultural factors influencing the disease’s occurrence. This visualization highlights the top 10 locations of Alzheimer’s prevalence over the years, consistently including states like New York and Oregon. Investigating potential factors contributing to these high numbers could inform preventive measures.
library(dplyr)
library(ggplot2)
#Clean up data by replacing NA values in LocationDesc column with "Other/Unknown"
df$LocationDesc <- ifelse(is.na(df$LocationDesc), "Other/Unknown", df$LocationDesc)
#Count occurrences of each location
Loc_count <- count(df, LocationDesc)
#Group data by YearStart and LocationDesc, and calculate count
Year_Loc_Count <- df %>%
group_by(YearStart, LocationDesc) %>%
summarise(Count = n())
#Define states to exclude(i.e These are not states)
states_to_exclude <- c("West", "United States, DC & Territories", "South", "Northeast", "Midwest")
#Filter out states to exclude
Year_Loc_Count_filtered <- Year_Loc_Count %>%
filter(!LocationDesc %in% states_to_exclude)
#Find top 10 locations based on count
top_10_locations <- Year_Loc_Count_filtered %>%
arrange(desc(Count)) %>%
slice(1:10)
#Heat Map Code for top 10 locations of alzheimers prevalence over the years
g <- ggplot(top_10_locations, aes(x = YearStart, y = LocationDesc, fill = Count)) +
geom_tile(color = "black") +
geom_text(aes(label = Count), color = "white", size = 3) +
labs(title = "Top 10 Locations: Alzheimer's Disease Prevalence Over Years(2015-2021)",
x = "Year",
y = "Location",
fill = 'Population Count') +
theme_minimal()
# Convert ggplot object to plotly for interactive visualization
library(plotly)
ggplotly(g)
The age analysis doesn’t reveal significant trends regarding the prevalence of Alzheimer’s disease. While it displays age ranges where Alzheimer’s occurs, there’s no clear pattern indicating a specific age group with the highest prevalence. Instead, the data appears to be evenly split between the 50-64 years old category and the 65 years and older category.
library(plotly)
library(dplyr)
#Cleaning up data: Replace NA values in Age column with "Other/Unknown"
df$Age <- ifelse(is.na(df$Age), "Other/Unknown", df$Age)
#Count occurrences of each age group again
Agecount <- count(df, Age)
#Group data by YearStart and Age, and calculate count
Year_Age_Count <- df %>%
group_by(YearStart, Age) %>%
summarise(Count = n())
#Trellis chart codeshowing the prevalence of Alzheimer's Disease among age groups over the years (2015-2021)
plot_ly(textposition = "inside", labels = ~Age, values = ~Count) %>%
add_pie(data = Year_Age_Count[Year_Age_Count$YearStart == 2015,],
name = "2015", title = "2015", domain = list(row = 0, column = 0)) %>%
add_pie(data = Year_Age_Count[Year_Age_Count$YearStart == 2016,],
name = "2016", title = "2016", domain = list(row = 0, column = 1)) %>%
add_pie(data = Year_Age_Count[Year_Age_Count$YearStart == 2017,],
name = "2017", title = "2017", domain = list(row = 1, column = 0)) %>%
add_pie(data = Year_Age_Count[Year_Age_Count$YearStart == 2018,],
name = "2018", title = "2018", domain = list(row = 1, column = 1)) %>%
add_pie(data = Year_Age_Count[Year_Age_Count$YearStart == 2019,],
name = "2019", title = "2019", domain = list(row = 2, column = 0)) %>%
add_pie(data = Year_Age_Count[Year_Age_Count$YearStart == 2020,],
name = "2020", title = "2020", domain = list(row = 2, column = 1)) %>%
add_pie(data = Year_Age_Count[Year_Age_Count$YearStart == 2021,],
name = "2021", title = "2021", domain = list(row = 3, column = 1)) %>%
layout(title = "Trellis Chart: Alzheimer's Disease Prevalence Among Age Groups Over the Years (2015-2021)",
showlegend = TRUE, grid = list(rows = 4, columns = 2))
While the White non-Hispanic ethnic group exhibits the highest number of cases, it’s notable that the data shows relatively similar numbers across ethnicities, all falling within the 30,000 range.
library(ggplot2)
library(dplyr)
#Dataframe for easier manipulation
Ethniccount <- data.frame(dplyr::count(df, Ethnicity))
#Ethnic Bar Chart Visualization Code
e <- ggplot(Ethniccount[1:5, ], aes(x = reorder(Ethnicity, n), y = n)) +
geom_bar(colour = "black", fill = "pink", stat = "identity") +
labs(title = "Alzheimer's Disease Prevalence among Ethnicities",
x = "Ethnic Group", y = "Number of Alzheimer's Disease Cases") +
theme(plot.title = element_text(hjust = 0.5)) +
scale_y_continuous(breaks = seq(0, 40000, by = 5000), minor_breaks = seq(0, 40000, by = 5000)) +
geom_text(aes(label = scales::comma(n)), vjust = -0.5)
#Print the plot
print(e)
The gender analysis doesn’t unveil notable trends in Alzheimer’s disease prevalence. While it provides insights into the distribution across gender categories, there’s no discernible pattern indicating a significant difference in prevalence between males and females. Instead, the data appears to be relatively evenly distributed between the two genders.
library(plotly)
library(dplyr)
# Assuming df is your data frame containing the Gender column
# Clean up the data: replace NA values in the Gender column with "Other/Unknown"
df$Gender <- ifelse(is.na(df$Gender), "Other/Unknown", df$Gender)
# Count occurrences of each gender
Gender <- count(df, Gender)
# Group data by YearStart and Gender, and calculate count
Year_Gen_Count <- df %>%
group_by(YearStart, Gender) %>%
summarise(Count = n())
# Code for Nested Pie chart for Gender specific trends
fig <- plot_ly(hole = 0.7) %>%
layout(title = "Examining Gender-Specific Trends in Alzheimer's Disease from 2019 to 2021") %>%
# Add traces for each year
add_trace(data = Year_Gen_Count[Year_Gen_Count$YearStart == 2021, ],
labels = ~Gender,
values = ~Count,
type = "pie",
textposition = "inside",
hovertemplate = "Year: 2021<br>Gender: %{label}<br>Percent: %{percent}<br>Population Count: %{value}<extra></extra>") %>%
add_trace(data = Year_Gen_Count[Year_Gen_Count$YearStart == 2020, ],
labels = ~Gender,
values = ~Count,
type = "pie",
textposition = "inside",
hovertemplate = "Year: 2020<br>Gender: %{label}<br>Percent: %{percent}<br>Population Count: %{value}<extra></extra>",
domain = list(
x = c(0.16, 0.84),
y = c(0.16, 0.84)
)) %>%
add_trace(data = Year_Gen_Count[Year_Gen_Count$YearStart == 2019, ],
labels = ~Gender,
values = ~Count,
type = "pie",
textposition = "inside",
hovertemplate = "Year: 2019<br>Gender: %{label}<br>Percent: %{percent}<br>Population Count: %{value}<extra></extra>",
domain = list(
x = c(0.27, 0.73),
y = c(0.27, 0.73)
))
fig
#Save the figure as an HTML file
htmlwidgets::saveWidget(fig, "Nested Pie Chart (2018-2021).html")
In conclusion, Alzheimer’s disease remains a significant global health challenge, with far-reaching implications. The insights presented in this report aim to deepen understanding of the evolving dynamics surrounding Alzheimer’s disease and offer valuable insights into emerging patterns. While additional data may provide a clearer view of trends, one key takeaway is the indiscriminate nature of this disease—it affects individuals regardless of gender, ethnicity, or location. With this knowledge, we hope to spark further interest in exploring and addressing the complexities of Alzheimer’s disease.