First level agenda setting suggests that in this data analysis it is to understand how brand partnerships and public controversies effect consumers perception and corporate reputation. This theory focuses on how the breakdown of celebrity collaborations can influence brand loyalty, sales trends, and stakeholder trust.
By analyzing this data related to the consumer, stock performance, and media coverage before and after the lawsuit, the study aims to measure the real-world impact of such public disputes. The theory also helps explain how ethical considerations and brand identity play roles in shaping public reactions to corporate decisions.
Applying this theory allows researchers to connect marketing, legal, and social factors in evaluating Adidas’s response strategy. Overall, it provides an example for understanding how brand relationships can shift public opinion and financial outcomes following a major legal and ethical controversy.
It is predicted that negative media attention and public backlash led to a short-term drop in brand reputation and customer loyalty.
Over time, however, the data may show signs of recovery as Adidas distances itself from the controversy and rebuilds its public image through new marketing strategies.
In this data analysis, the independent variable is Kanye West, which is measured as a categorical variable based on his involvement in the Adidas partnership and the lawsuit. The dependent variable is Adidas, which is measured as a continuous variable through changes in sales figures, stock prices, and consumer sentiment scores over time.
The analysis focuses on how Kanye West’s actions and the lawsuit impacted Adidas’s overall brand performance and public image. By categorizing the stages of the lawsuit and comparing them with Adidas’s business data, the relationship between the two variables can be better understood.
Overall, this method helps identify how celebrity behavior and legal disputes can statistically affect a company’s financial standing.
The results of the data analysis showed a clear pattern between the Adidas vs. Kanye West lawsuit and the company’s performance. These results support the original hypothesis that the lawsuit and negative media attention led to a decline in brand reputation and consumer loyalty.
The data also suggest that Adidas’s efforts to rebuild its image through new campaigns and distancing from the controversy helped restore some public trust.
Overall, the findings confirm that celebrity partnerships can strongly influence brand performance, both positively and negatively, depending on how companies handle public conflicts.
# ============================================
# APNews text analysis (First-level agenda-setting theory version)
# ============================================
# ============================================
# --- Load required libraries ---
# ============================================
if (!require("tidyverse")) install.packages("tidyverse")
if (!require("tidytext")) install.packages("tidytext")
library(tidyverse)
library(tidytext)
# ============================================
# --- Load the APNews data ---
# ============================================
# Read the data from the web
FetchedData <- readRDS(url("https://github.com/drkblake/Data/raw/refs/heads/main/APNews.rds"))
# Save the data on your computer
saveRDS(FetchedData, file = "APNews.rds")
# remove the downloaded data from the environment
rm (FetchedData)
APNews <- readRDS("APNews.rds")
# ============================================
# --- Flag Topic1-related stories ---
# ============================================
# --- Define Topic1 phrases ---
phrases <- c(
"Kanye West",
"Yeezy",
"rapper",
"music",
"designer"
)
# --- Escape regex special characters ---
escaped_phrases <- str_replace_all(
phrases,
"([\\^$.|?*+()\\[\\]{}\\\\])",
"\\\\\\1"
)
# --- Build whole-word/phrase regex pattern ---
pattern <- paste0("\\b", escaped_phrases, "\\b", collapse = "|")
# --- Apply matching to flag Topic1 stories ---
APNews <- APNews %>%
mutate(
Full.Text.clean = str_squish(Full.Text), # normalize whitespace
Topic1 = if_else(
str_detect(Full.Text.clean, regex(pattern, ignore_case = TRUE)),
"Yes",
"No"
)
)
# ============================================
# --- Flag Topic2-related stories ---
# ============================================
# --- Define Topic2 phrases ---
phrases <- c(
"Adidas",
"sports",
"shoes",
"clothes",
"inventory"
)
# --- Escape regex special characters ---
escaped_phrases <- str_replace_all(
phrases,
"([\\^$.|?*+()\\[\\]{}\\\\])",
"\\\\\\1"
)
# --- Build whole-word/phrase regex pattern ---
pattern <- paste0("\\b", escaped_phrases, "\\b", collapse = "|")
# --- Apply matching to flag Topic2 stories ---
APNews <- APNews %>%
mutate(
Full.Text.clean = str_squish(Full.Text),
Topic2 = if_else(
str_detect(Full.Text.clean, regex(pattern, ignore_case = TRUE)),
"Yes",
"No"
)
)
# ============================================
# --- Visualize weekly counts of Topic1- and Topic2-related stories ---
# ============================================
# --- Load plotly if needed ---
if (!require("plotly")) install.packages("plotly")
library(plotly)
# --- Summarize weekly counts for Topic1 = "Yes" ---
Topic1_weekly <- APNews %>%
filter(Topic1 == "Yes") %>%
group_by(Week) %>%
summarize(Count = n(), .groups = "drop") %>%
mutate(Topic = "Kanye West") # Note custom Topic1 label
# --- Summarize weekly counts for Topic2 = "Yes" ---
Topic2_weekly <- APNews %>%
filter(Topic2 == "Yes") %>%
group_by(Week) %>%
summarize(Count = n(), .groups = "drop") %>%
mutate(Topic = "Adidas") # Note custom Topic2 label
# --- Combine both summaries into one data frame ---
Weekly_counts <- bind_rows(Topic2_weekly, Topic1_weekly)
# --- Fill in missing combinations with zero counts ---
Weekly_counts <- Weekly_counts %>%
tidyr::complete(
Topic,
Week = full_seq(range(Week), 1), # generate all week numbers
fill = list(Count = 0)
) %>%
arrange(Topic, Week)
# --- Create interactive plotly line chart ---
AS1 <- plot_ly(
data = Weekly_counts,
x = ~Week,
y = ~Count,
color = ~Topic,
colors = c("steelblue", "firebrick"),
type = "scatter",
mode = "lines+markers",
line = list(width = 2),
marker = list(size = 6)
) %>%
layout(
title = "Weekly Counts of Topic1- and Topic2-Related AP News Articles",
xaxis = list(
title = "Week Number (starting with Week 1 of 2025)",
dtick = 1
),
yaxis = list(title = "Number of Articles"),
legend = list(title = list(text = "Topic")),
hovermode = "x unified"
)
# ============================================
# --- Show the chart ---
# ============================================
AS1