NBA 구단 가치 분석과 시각화 – 구단별 가치와 중계권료 비교하기

미국 경제 전문지 포브스는 매년 30개의 NBA 구단 가치를 평가하여 순위를 발표합니다. 2024년 10월 26일 발표된 최신 자료에 따르면, 골든스테이트 워리어스가 88억 달러(약 12조 2,360억 원)로 3년 연속 1위를 차지했습니다. NBA 구단의 평균 가치는 44억 달러로, 전년 대비 15% 상승하여 리그의 성장과 인기를 반영하고 있습니다.

NBA 구단 가치 분석 예시 그림
( 출처: HOOPS HYPE )

이번 포스트에서는 포브스가 발표한 2024년 NBA 구단 가치 상위 10개 팀을 기반으로, R을 사용해 구단 가치와 중계권료 데이터를 분석하고 시각화하는 방법을 예제로 소개하겠습니다.

NBA 구단 가치 분석

NBA 구단 가치 평가는 팀의 수익, 영업 이익, 시장 규모, 경기장 계약, 브랜드 가치 등을 종합적으로 고려하여 산정됩니다. NBA 구단들의 가치는 미디어 판권 계약, 경기장 수익, 스폰서십 등 다양한 요인에 의해 매년 변동하며, 이는 리그 전체의 경제적 성장과도 밀접하게 연관되어 있습니다.

최근 NBA 구단 가치의 주요 상승 요인 중 하나는 중계권료의 지속적인 상승입니다. 2024년 7월, NBA는 디즈니(ESPN·ABC), NBC, 아마존과 11년간 총 760억 달러(약 105조 원)에 이르는 중계권 계약을 체결했으며, 이는 이전 계약 대비 약 3배에 달하는 금액입니다. 이러한 대규모 계약은 구단의 수익을 크게 증대시키며, 자연스럽게 구단 가치 분석에도 긍정적인 영향을 미칩니다.

1. 구단 가치 데이터프레임 생성하기

먼저, NBA 구단 가치 데이터를 준비합니다. 이 예제에서는 구단 이름과 가치를 담은 데이터프레임을 만들어, 분석을 위한 기본 데이터를 생성합니다. 각 구단 가치는 억 달러 단위로 설정했습니다.

# 구단 가치 예제 데이터 생성 (단위: 억 달러)
nba_teams <- data.frame(
    Team = c("Warriors", "Knicks", "Lakers", "Celtics", "Clippers", "Bulls",
             "Mavericks", "Rockets", "76ers", "Raptors", "Grizzlies"),
    Value = c(88, 75, 71, 47, 46.5, 46, 45, 44, 43, 41, 30) # 단위: 억 달러
)

코드 설명:

  • nba_teams라는 이름의 데이터 프레임을 생성합니다.
  • 데이터 프레임은 두 개의 열(컬럼)을 가집니다:
    • Team: 팀 이름을 나타내는 문자열 벡터
    • Value: 각 팀의 가치를 나타내는 숫자 벡터 (단위: 억 달러)
  • Team 열에는 11개의 NBA 팀 이름이 포함되어 있습니다.
  • Value 열에는 각 팀에 해당하는 가치가 포함되어 있습니다. 예를 들어, Warriors의 가치는 88억 달러, Knicks는 75억 달러 등입니다.
  • 주석 # 단위: 억 달러는 Value 열의 단위가 억 달러임을 명시합니다.

2. 구단 가치의 평균, 최고, 최저 가치 계산하기

구단의 평균 가치, 최고 가치, 최저 가치를 계산하여, 각 구단의 가치를 종합적으로 이해할 수 있도록 합니다.

# 평균, 최고, 최저 구단 가치 계산
mean_value <- mean(nba_teams$Value)
max_value <- max(nba_teams$Value)
min_value <- min(nba_teams$Value)
cat("Average team value:", mean_value, "billion dollars\n")
cat("Highest value team:", max_value, "billion dollars\n")
cat("Lowest value team:", min_value, "billion dollars\n")

코드 설명:

  • mean(nba_teams$Value): 구단 가치의 평균을 계산합니다.
  • max(nba_teams$Value): 가장 높은 구단 가치를 계산합니다.
  • min(nba_teams$Value): 가장 낮은 구단 가치를 계산하여 콘솔에 출력합니다.

3. 구단 가치 분포 시각화 (막대그래프)

각 구단의 가치를 막대그래프로 시각화하고, 평균 가치를 빨간색 점선으로 표시하여 구단 가치의 분포와 평균 대비 위치를 쉽게 확인할 수 있도록 합니다.

# Team value distribution visualization
library(ggplot2)

ggplot(nba_teams, aes(x = reorder(Team, -Value), y = Value)) +
  geom_bar(stat = "identity", fill = "skyblue") +
  geom_hline(yintercept = mean_value, linetype = "dashed", color = "red", size = 1) +
  labs(title = "NBA Team Value Comparison", x = "Team", y = "Team Value (Billion USD)") +
  theme_minimal() +
  geom_text(aes(label = Value), vjust = -0.5, color = "blue") +
  annotate("text", x = 1, y = mean_value + 5, 
           label = paste("Average Value:", round(mean_value), "Billion USD"), color = "red")

코드 설명:

  • geom_bar(stat = “identity”, fill = “skyblue”): 각 구단의 가치를 막대그래프로 표현합니다.
  • geom_hline(yintercept = mean_value): 구단 가치의 평균을 빨간색 점선으로 표시합니다.
  • geom_text(aes(label = Value)): 각 막대 위에 구단 가치를 표시하여 가독성을 높입니다.
  • annotate(): 평균 가치에 라벨을 추가하여 그래프에서 명확히 볼 수 있도록 합니다.
nba 구단 가치 그래프1

4. 중계권료와 구단 가치 간의 상관관계 시각화 (가상 데이터)

중계권료와 구단 가치 간의 관계를 분석해보겠습니다. 구단 가치와 중계권료의 상관관계를 계산하고 산점도로 시각화하여, 중계권료가 구단 가치에 어떤 영향을 미치는지 알아보겠습니다. 중계권료 데이터는 예시를 위해 가상의 값을 사용했습니다.

# Add media rights data (hypothetical data)
nba_teams$Media_Rights <- c(2.5, 2.3, 2.2, 1.7, 1.6, 1.6, 1.5, 1.4, 1.4, 1.3, 1.0)  # Unit: Billion USD

# Correlation analysis
cor_value_media <- cor(nba_teams$Value, nba_teams$Media_Rights)

cat("Correlation between team value and media rights:", cor_value_media, "\n")

# Scatter plot visualization
ggplot(nba_teams, aes(x = Media_Rights, y = Value)) +
    geom_point(color = "darkgreen", size = 3) +
    geom_smooth(method = "lm", col = "blue", se = FALSE) +
    labs(title = "Correlation between Team Value and Media Rights",
         x = "Media Rights (Billion USD)", 
         y = "Team Value (Billion USD)") +
    theme_minimal() +
    geom_text(aes(label = Team), vjust = -0.5, color = "black") +
    annotate("text", x = min(nba_teams$Media_Rights), y = max(nba_teams$Value),
             label = paste("Correlation:", round(cor_value_media, 2)),
             hjust = 0, vjust = 1, color = "red", size = 5)

코드 설명:

  • nba_teams$Media_Rights: 중계권료 데이터를 추가하여, 구단 가치와의 관계를 분석합니다.
  • cat(): 구단 가치와 중계권료 간의 상관관계를 계산하여 콘솔에 출력합니다.
  • geom_point(): 중계권료와 구단 가치를 산점도로 표현합니다.
  • geom_smooth(method = “lm”): 선형 회귀선을 추가해 중계권료와 구단 가치의 관계를 시각적으로 표현합니다.
NBA 구단 가치와 중계권료 시각화

마무리: NBA 구단 가치와 중계권료 시각화하기

위의 예제 코드는 NBA 구단의 가치와 중계권료 간의 관계를 간단히 분석하고 시각화하는 방법을 소개합니다. 이 그래프들을 통해 구단 가치를 분석하고, 중계권료가 구단 가치에 미치는 영향을 직관적으로 확인할 수 있습니다. 여러분도 이 코드를 활용해 다양한 데이터를 시각화하고, 스포츠 데이터 분석에 도전해 보세요!

참고로, R을 이용하여 데이터를 그래프로 시각화하는 기본에 대해서 알고 싶으신 분은 ggplot2가 뭐예요? – R 시각화 기본 중 기본 패키지 포스트를 확인해 보시기 바랍니다.

유사한 게시물