오늘은 2019년과 2020년의 KBO 리그 최종 순위와 구단별 평균 연봉 사이에 어떠한 상관관계가 있는지에 대해 살펴보도록 하겠습니다. 선수들에게 돈을 많이 쓴 구단이 과연 더 높은 순위를 기록했을지, 아니면 돈과 성적 사이에는 큰 상관성이 없었는지에 대해 분석해보겠습니다.
2020년
먼저 2020년부터 살펴보겠습니다. 2020년 최종 순위와 구단별 평균 연봉을 표로 정리하면 다음과 같습니다.
평균 연봉 순위 1위에 랭크된 NC는 실제로 우승을 거뒀습니다. 반면 평균 연봉 꼴찌인 KT는 3등을 거뒀습니다. KT 구단주 입장에서 기분이 아주 좋았겠죠? 평균 연봉 순위 2위인 롯데는 7위에 머물렀습니다. 선수들이 연봉 값을 못한 것으로 볼 수 있습니다. 이 데이터의 산점도(scatter plot)를 그리면 다음과 같습니다. 가로축이 팀 평균 연봉이고, 세로축이 팀 순위입니다.
산점도를 살펴보면 전반적으로 평균 연봉이 높아질 수록 순위가 좋아지는 것처럼 보이긴 하지만, 그 상관성이 커보이진 않습니다. 좀 더 정확히 판단하기 위해 팀 순위와 평균 연봉 간 피어슨 상관계수(Pearson correlation coefficient)를 구해보면, 고작 -0.2823 밖에 되지 않습니다. 피어슨 상관계수의 절대값이 1에 가까울 수록 상관성이 큰 것이므로 0.2823이란 수치는 상당히 낮은 것입니다. 연봉이 선수들의 현재 경기력을 제대로 나타내지 못하고 있다는 것이죠.
참고로 위 산점도와 피어슨 상관계수는 다음과 같은 파이썬 코드로 얻었습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
rank = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
salary = np.array([16581, 16143, 10040, 16148, 14145, 14657, 16393, 14960, 14486, 11198])
plt.scatter(salary, rank, c='b')
plt.title('2019 team rank and team average annual salary')
plt.xlabel('salary')
plt.ylabel('rank')
plt.grid(True)
print("Pearson correlation coefficient:", stats.pearsonr(rank, salary)[0])
|
cs |
2019년
이번에는 2019년 데이터로 다시 한번 평균 연봉과 팀 순위의 상관관계를 살펴보겠습니다.
2019년에 롯데는 평균 연봉에서 1등이었지만, 불행히도 10위를 기록했습니다. 반면 평균 연봉에서는 8위에 불과했던 키움은 최종 2위를 차지했습니다. 평균 연봉과 팀 순위의 산점도는 다음과 같습니다. 2020년보다 뭔가 더 심각해보이죠? 이 산점도에서는 어떤 경향이 전혀 보이지 않습니다.
피어슨 상관계수를 구했더니 0.1195였습니다. 양수의 상관계수가 나왔다는 것은 상당히 심각한 것입니다. 왜냐하면, 일반적으로 연봉이 높을 수록 팀 순위의 숫자는 작을 것(순위에서는 1이 10보다 좋은 것이죠?)을 기대하기 때문입니다. 그런데 양의 상관계수가 나왔다는 것은 돈을 더 많이 쓴 팀들의 순위가 오히려 더 안 좋은 편이었다는 뜻이기 때문입니다. 2019년 시즌 종료 후 구단들 입장에서는 정말 당황스러웠을 것 같습니다. 이때의 참혹한 결과로 인해 많은 구단들이 선수들의 연봉을 손 보게 되었고, 결과적으로 그나마 나아진 2020년의 상관관계가 나온 것이 아닐까 짐작해봅니다.
참고로 위 산점도와 피어슨 상관계수는 다음과 같은 파이썬 코드로 얻었습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
rank = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
salary = np.array([15431, 13242, 18142, 13486, 16576, 9522, 17820, 12844, 13668, 19583])
plt.scatter(salary, rank, c='b')
plt.title('2019 team rank and team average annual salary')
plt.xlabel('salary')
plt.ylabel('rank')
plt.grid(True)
print("Pearson correlation coefficient:", stats.pearsonr(rank, salary)[0])
|
cs |
2021년 KBO 리그의 팀 평균 연봉과 순위 간 상관계수는 얼마가 나올지 궁금해집니다. 구단주가 투자한 금액만큼 성과를 보게 될까요? 아니면 또 다시 실망스러운 결과를 얻게 될까요?
저는 다음 시간에도 유익한 글로 찾아뵙겠습니다. 야구 데이터 분석가로 취업하는 그날까지~~~!
참고자료
[1] www.koreabaseball.com/News/Notice/View.aspx?bdSe=7678, KBO, "2020 KBO 소속선수 등록 및 연봉 현황 발표"
'Research > 야구' 카테고리의 다른 글
[세이버메트릭스] 인플레이 타구가 안타가 될 확률, BABIP (10) | 2021.03.10 |
---|---|
[세이버메트릭스] 타자의 타율, OPS, 삼진비율, 볼넷비율 중 어떤 것을 가장 신뢰할 수 있을까? (12) | 2021.03.09 |
[세이버메트릭스] 타율, 출루율, OPS, RC 중 무엇이 가장 득점 생산과 연관 있을까? (2) | 2021.03.06 |
[세이버메트릭스] MLB에서 2019까지 1000안타 이상 친 선수 중, 홈런을 2루타보다 더 많이 쳐낸 선수는? (sqlite3) (12) | 2021.03.05 |
[세이버메트릭스] 득실점 비율을 알면 실제 승률을 예측할 수 있다고? (3) | 2021.03.03 |
[세이버메트릭스] 선구안이 좋은 선수를 알아볼 수 있는 볼넷삼진비(BB/K) (5) | 2021.03.03 |
[세이버메트릭스] 상대 투수를 지치게 만드는 선수들, 타석당 투구수 (P/PA) (4) | 2021.03.02 |
[세이버메트릭스] 레먼 데이터베이스에서 류현진 선수 MLB 기록 살펴보기(sqlite3) (2) | 2021.03.02 |