Every arena across the NBA is different in their own way. Some arenas have different color courts, some arenas are bigger and some are louder. I want to compare the oldest arena ever (Madison Square Garden) with the newest arena (Chase Center) to see how their reviews compare to each other. I used tripadvisor.com to compare the reviews.
library(tidyverse)
Warning: package 'tidyverse' was built under R version 4.3.2
Warning: package 'ggplot2' was built under R version 4.3.2
Warning: package 'readr' was built under R version 4.3.2
Warning: package 'dplyr' was built under R version 4.3.2
Warning: package 'lubridate' was built under R version 4.3.2
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.4
✔ forcats 1.0.0 ✔ stringr 1.5.0
✔ 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(tidytext)
Warning: package 'tidytext' was built under R version 4.3.2
library(ggwordcloud)
Warning: package 'ggwordcloud' was built under R version 4.3.2
library(textdata)
Warning: package 'textdata' was built under R version 4.3.2
library(readr)library(rvest)
Warning: package 'rvest' was built under R version 4.3.2
Attaching package: 'rvest'
The following object is masked from 'package:readr':
guess_encoding
library(lubridate)library(httr)
Warning: package 'httr' was built under R version 4.3.2
Attaching package: 'httr'
The following object is masked from 'package:textdata':
cache_info
Madison Square Garden vs Chase Center Net Sentiment Comparison
#Unnest tokenswords <- arena_stats %>%unnest_tokens(word, review_content)# Get Bing sentiment lexiconbing_lexicon <-get_sentiments("bing")# Join with Bing sentimentsword_sentiments <- words %>%inner_join(bing_lexicon, by ="word")# Count positive and negative sentiments for each arenasentiment_counts <- word_sentiments %>%count(arena, sentiment) %>%spread(sentiment, n, fill =0) %>%mutate(total = positive + negative, net_sentiment = positive - negative)# Filter for Madison Square Garden and Chase Centerfiltered_arenas <- sentiment_counts %>%filter(arena %in%c("Madison Square Garden", "Chase Center"))# Compare sentimentsprint(filtered_arenas)
arena negative positive total net_sentiment
1 Chase Center 30 54 84 24
2 Madison Square Garden 45 61 106 16
ggplot(filtered_arenas, aes(x = arena, y = net_sentiment, fill = arena)) +geom_bar(stat ="identity") +theme_minimal() +labs(title ="Net Sentiment Comparison: Madison Square Garden vs Chase Center",x ="Arena", y ="Net Sentiment Score")
Looking at the table and graph above, Madison Square Garden seem to have more positive and negative reviews. This makes sense because since this arena is so historic, people have strong opinions. Overall, Chase Center has a higher net sentiment which is good because since Chase Center has opened, people have been giving it positive reviews.
For this graph, I only looked at Madison Square Garden’s sentiment over time because the chase center is so new. I realized that Madison Square Garden’s sentiment over time has a lot to do with the Knicks performance. They were disappointing in 2021 and 2022 and are now getting back on track. In 2020 their sentiment was probably so high because not many people could review MSG during the corona virus.
Word Analysis
arenastats_filtered <- arena_stats %>%filter(arena %in%c("Madison Square Garden", "Chase Center")) %>%unnest_tokens(word, review_content) %>%anti_join(stop_words, by ="word") # Remove common stop words# Count word frequenciesword_counts <- arenastats_filtered %>%count(arena, word, sort =TRUE) %>%group_by(arena) %>%top_n(10, n) # Get top 10 words for each arena# Plottingggplot(word_counts, aes(x =reorder(word, n), y = n, fill = arena)) +geom_col(show.legend =FALSE) +facet_wrap(~arena, scales ="free_y") +coord_flip() +theme_minimal() +labs(title ="Top Words in Reviews for Madison Square Garden and Chase Center",x ="Word", y ="Frequency")
For this graph, I am comparing the ten most common words used when reviewing Madison Square Garden and the Chase Center. For the Chase Center it was all words you are expecting like seats, game, and food. For Madison Square Garden one of the most common words was “people”. This makes sense because of how packed it is. Money was also a common theme among the reviews as well.
Conclusion
Based off my results, I learned that an experience at Madison Square Garden is a lot different than the experience at the Chase Center. Every stadium in the NBA is so unique and there are different pros and cons that come with each stadium. That is why it is so cool to visit a new stadium to watch a basketball game.