Xp
NBA Maniazine
/ / /
Xpert

[번역] 3점슛 성공률에 대한 경험적 베이지안 접근

 
20
  3517
Updated at 2019-11-22 10:48:05

작년부터 번역하고 싶었던 글입니다만, 연습장에서 한동안 표류하다가 이제야 옮기게 되었습니다.

 

통계학에서 확률을 바라보는 시선이 크게 2가지가 있습니다.

빈도주의적 접근 (Frequentist approach) 그리고 베이지안 접근 (Bayesian approach)

 

우리가 접하는 거의 모든 스탯은 빈도주의에 기반합니다. 

야투율, 승률, 무슨 무슨 퍼센티지라고 나온 모든 것들은 특정 사건을 총 일어난 사건으로 나눈 빈도라고 할 수 있죠. 

 

빈도주의가 보다 객관적이고 엄격하다면, 베이지안은 좀더 경험적이고 유연합니다.

빈도주의적 관점에서 동전의 앞면 뒷면이 나올 확률은 1/2로 "참 확률"이 존재한다고 생각하지만, 베이지안 접근은 경험을 통해 확률을 "수정"해 나갑니다. 실제 동전을 던져보는거죠.

 

"내 앞선 경험상 뒷면이 더 잘나오는 것 같아, 그래서 뒷면이 나올 확률을 60%라고 일단 생각할래" 라고 임의로 사전확률 (prior probability)을 정해놓고, 실제 동전을 던진 결과를 바탕으로 확률을 수정, 업데이트해나가는 겁니다. 그래서 더 믿을만한 사후 확률 (posterior probability)을 구하나가는 거죠.

 

 

이러한 사고는 생각보다 우리 일상생활은 물론이고 농구 커뮤니티에서도 뿌리깊게 박혀있습니다.

 

예를 들어, 시몬스가 올시즌 3점슛 성공률이 100%라고 해서 이 선수를 엘리트 슈터라고 생각하는 사람은 없습니다. 일반적으로 시몬스 정도의 시도를 보이는 선수들이 보인 사전 확률에 기반해서 +1개의 야투 성공을 업데이트 한 정도로만 생각하죠. 이게 베이지안 사고입니다.

 

오늘 번역할 칼럼은 누가 과연 역사상 최고의 3점슈터인지를 베이지안 접근을 통해 분석한 결과입니다.

그 선수의 슈팅 시도수 등을 통해 사전 확률을 정하고, 여기서 실제 그 선수들의 3점 성공률을 통해 확률을 업데이트해나가는 것이죠. 이렇게 하면 이선수의 실제 3점슛 성공률에서 얼마나 "운"이 포함되어 있을지, 그래서 실제론 어느 정도의 능력일 지를 가늠해보는 시도라고 보시면 됩니다.

 

내용을 모두 번역하기 보단, R 코드 같은건 제외하도록 하겠고요, 

흐름상 필요한 부분, 문장들 위주로 번역하였습니다.

 

원문 링크

https://www.danielphadley.com/empirical_bayes_nba_treys/

 

--------------------------------

Empirical Bayes to Estimate NBA Treys

(NBA 3점슛을 추정하기 위한 경험적 베이지안 접근)

 

Daniel Hadley

 

이 포스트에서 나는 NBA 3점슈터의 정확도를 추정하기 위해 경험적 베이지안을 어떻게 사용했는지를 설명할 것이다. 이 분석은 David Robinson (?!)의 책 Introduction to Empirical Bayes: Example from Baseball Statistics에서 소개된 방법을 충실히 따랐다 (* ebbr R package를 사용했다고 합니다). 

 

이 분석의 목적은 최고의 샤프슈터들 사이에 합리적인 랭킹을 만드는 것이다.

 

나는 밑에 차트를 그리기 위해 80년대 부터의 정규시즌 및 플레이오프 3점 기록을 사용하였다. 

하지만 차후 기술하는 대로 3점 라인이 짧았던 3시즌은 일괄적으로 제외하였다. 경험적 베이지안 접근은 큰 샘플 사이즈에서 더 강력하며, 이 경우는 NBA 3점슈터의 전체 역사를 다룬다. 

 

 

 

NBA 팬이라면 이 차트에서 쉽게 스테판 커리를 최고의 슈터로 찾을 수 있다. 그는 이견없는 3점슛의 왕이며 이는 단순히 정확도 뿐만이 아니라 성공한 3점 숫자 때문이기도 하다. 차트 내 커리의 위치는 이런 맥락에서 납득할만 하다. 

 

경험적 베이지안 접근은 아웃라이어들을 효과적으로 평균치 또는 추세로 수축시킨다 (shrink). 하지만 이러한 수축 현상은 많은 샘플이 확보되었을 때 더 명백하다. 이런 점에서, 커리가 성공시킨 엄청나게 많은 3점슛은 작은 에러바에서 볼 수 있듯이 그의 추정 3점슛 성공률을 더 신뢰할 수 있도록 만든다.

 

반면, NBA에 대해 좀 알고 있는 팬들이라면 왜 스티브 커 같은 선수가 역사적인 3점슈터 최상단에 위치하지 못하는지 의문을 가질 수 있다. 

 

정말 스테판 커리가 NBA 역사상 가장 정확한 3점 슈터가 맞는가? 이 분석은 그렇다고 말한다, 

이제부터 당신이 이 분석에 동의할 것인지 한번 읽어보길 권하는 바이다.

 

 

More Than Three Ways

 

3점슛 정확도를 측정하는 방법은 여러가지가 있다. 

가장 명확한 방법은 역시 3점슛 성공 개수를 시도 개수로 나누는 것이다.

 

Player threes_made threes_attempted three_pct
Alonzo Bradley 2 2 1
Alvin Sims 1 1 1
Coty Clarke 2 2 1
Eddy Curry 2 2 1
Eric Anderson 2 2 1
Eric White 1 1 1

하지만 여기엔 위와 같은 명백한 문제가 발생한다. 모든 기록은 임의의 필터를 통해 이를 극복한다.

(* 그리고 글쓴이는 200개의 3점 성공 개수의 필터를 주었습니다.)

 

Player threes_made threes_attempted three_pct
Steve Kerr 816 1852 44.06%
Hubert Davis 837 1906 43.91%
Jason Kapono 472 1082 43.62%
Steve Novak 637 1468 43.39%
Stephen Curry 2507 5807 43.17%
Kyle Korver 2723 6391 42.61%
Steve Nash 1863 4377 42.56%
Drazen Petrovic 289 682 42.38%
B.J. Armstrong 503 1189 42.3%
Tim Legler 282 669 42.15%

 

하지만 위 결과 역시 문제가 있다. 

한가지는 200개라는 임의의 기준에 조금 못미친 뛰어난 슈터들이 여전히 있다는 것이며, 조금 덜 명확한 다른 문제는 위 리스트의 몇몇 선수들은 비교적 짧은 커리어와 적은 3점 시도수로 인해 과연 이 선수들이 커리어를 더 이어갔을 때도 이런 성공률을 유지할 수 있을 지 확신할 수 없다는 점이다.

 

경험적 베이지안 접근은 모든 NBA 선수들의 기록으로 생성된 사전 3점슛 성공률을 각 선수들의 실제 3점 성공률로 업데이트함으로써 위와 같은 문제를 극복할 수 있다. 

 

이 사전 확률 (즉, 출발점이 되는 3점 성공률)은 설명 가능한 추정치이다. (* defensible estimate; 사전확률을 어떻게 정하는지가 중요한데 이는 모든 NBA 선수들의 3점 기록을 바탕으로 정하게 됩니다).

 

실제 기록한 3점%와 베이지안 추론을 통해 얻어진 추정치를 한 그래프에 나타내어 보자,

 

 

일례로, 스테판의 동생 세스 커리는 무려 44%의 커리어 3점 성공률을 가지고 있지만 그의 추정치는 41% 정도로 떨어진다. 

 

"극단적인 수치는 더 많은 데이터를 필요로 한다" 이것이 베이지안 분석의 기본 원칙이다. 하지만 이런 추가적인 샘플이 확보되기전까지 우리는 사전확률에 기대어 3점 성공률의 "신뢰구간"을 설정할 수 있다. 이는 실제 선수들의 "진실된 (하지만 알지 못하는)" 3점 성공률이 위치할 거라 자신하는 범위이다. 

 

이 시점에서 누군가는 의문을 품을 수 있다.

"왜 수축시켜야해?, 왜 그냥 세쓰 커리, 페트로비치나 다른 선수가 실제 기록했던 수치를 믿으면 안된다는 거지?" 

 

그에 대한 답변은 이렇다.

 

(*3점슛을 100개이상 성공시킨 선수들의 3점성공률 분포입니다)

세쓰 커리, 드라간 페트로비치와 같은 선수들은 3점 성공률 분포에서 오른쪽 꼬리 끝부분에 위치한다. 만약 그들이 빈약한 샘플을 바탕으로 저 위치에 도달한 것이라면, 이 결과가 일관된 것인지 아니면 통계적 노이즈인지 의문을 가지는 것이 합당하다.

 

The Trouble with Threes

모든 스탯은 부정확하다. 

좋게보면 스탯은 선수들의 슛, 리바운드, 어시스트 따위의 상대적 차이를 말해줄 수 있다. 하지만 최악의 경우 외부 요인이나 규칙 변화 등으로 인해 특정 선수 퍼포먼스를 심하게 왜곡하도록 망가져버릴 수 있다.

 

NBA의 3점슛 정확도는 후자에 해당하는 최악의 케이스이다. 1995년에서 97년까지 NBA는 3점슛 거리를 줄여서 다른 시기와의 비교를 모두 망가뜨려버렸다. 이는 마치 마라톤을 42.195km에서 34km로 바꿔놓고는 가장 빠른 기록을 그대로 유지하는 것과 같다. 

 

밑의 3점 성공률 그래프를 보면, 95년에 급격한 향상을 확인할 수 있다.

 

 

 

 

나는 이를 보완하기 위해 몇 가지 수정을 거쳤다. 

 

no_line <- threes %>% mutate(line_change = case_when(season >= 1995 & season <= 1997~ "during", season < 1995~ "before", TRUE ~ "after")) %>% filter(line_change != "during") %>% group_by(player_id) %>% summarise(threes_made = sum(threes_made), threes_attempted = sum(threes_attempted), Player = Player[1], season = round(mean(season))) %>% mutate(three_pct = threes_made / threes_attempted) %>% filter(threes_made >= 7) %>% add_ebb_estimate(threes_made, threes_attempted, method = "gamlss", mu_predictors = ~ season + log10(threes_attempted))

 

* 수정사항에 대한 코드를 제공하는데 보면, 95-97년의 기록을 제거하였고 사전 확률, 즉 각 선수에 대한 3점 성공률 출발점이 3점 시도수와 커리어 연도수에 따라 조정되도록 하였습니다. 

 

위 수정에 대한 결과가 바로 이 포스트를 처음 시작했던 그 차트이다.

 

 

 

The Kerr Conundrum (스티브 커 난제..)

전반적으로 난 위 결과에 만족한다, 커리는 3점 라인 거리의 보상을 받았고, 카포소는 손해를 입었다. 

다만, 여기엔 논란이 될만한 게 존재한다. 바로 스티브 커이다.


커는 (하필) 3점라인이 짧아졌을 때 그의 커리어 베스트 시즌을 보냈다. 서로 다른 세대를 공평하게 비교하기 위한 절충점을 찾기란 매우 어렵다. 이 분석의 좋은 점은 이 방법이 가능한 모든 데이터를 끌어모을 수 있다는 것이지만, 반대로 95-97 데이터를 포함하면서 사전-사후 확률을 추정하는데 심각한 오차를 가져온다.

 

더욱이 커는 동시대의 다른 선수와 비교해서도 특출난 사람이 아닌가, 그로 인해 커의 3점슛 추정치는 내가 만족하는 수준보다도 조금 낮게 예측되었다. 내 생각에 그는 실제 추론값보다 더 높은 어딘가에 존재할 거라 생각한다, 물론 탑 5보단 아래겠지만..

 

--------------------------------------

 

혹시나 해서 말씀드리자면,

베이지안 사고는 말그대로 하나의 접근이지 진실이 아닙니다.

 

빈도주의 관점 또한 하나의 중요한 접근법이며 어느 것이 옳다 그르다라고 나눌수 있는 문제가 아니며 실생활에서 우리는 두 가지 사고가 혼재되어 살아갑니다. 

 

다만 우리에게 더 익숙한 빈도주의적 접근법 외에, 위와 같은 경험적 사고를 농구에 접목하여 생각해볼 수 있다... 라고 받아들여주시면 감사하겠습니다.  

16
Comments
1
2019-11-21 12:03:38

통계를 공부하고자 하는 학생 입장에서 참 유익한 글이었습니다. 감사합니다

WR
2019-11-21 12:18:11

통계 참 재밌죠

1
2019-11-21 12:08:42

관련 전공자로써 이런 통계적 접근 글은 언제나 반갑네요
좋은 글 번역해주셔서 감사합니다. 저도 번역 및 테스트해보고 싶은 내용은 산더미같이 쌓아놓고 논문작업한다고 손도 못대고 있네요.

WR
2019-11-21 12:20:09

감사합니다. 전 전공자가 아니라서 배움이 짧습니다. 고퀄 분석글 부탁드려요

2019-11-21 12:55:18

3점슛 거리 변화는 구분해주는 것이 맞기도 한데

그럼 거리가 짧은 코너 스팟업 3점은 또 구분해야만 하는가? 하는 생각도 듭니다

WR
2019-11-21 16:41:29

구분하고자 하면 할수는 있을겁니다. 제 직전글이 그런 다양한 맥락을 고려해보러는 시도였는데 여기에 베이지안 사고를 추가할수도 있긴하죠.

2019-11-21 13:12:08

좋은 글 감사합니다.

중간중간에 어려워서 이해가 안되는 부분도 있었지만.

시간이 되시면 코멘트도 추가해주시면 감사하겠습니다.

 

WR
2019-11-21 13:56:02

어떤 부분에 대한 설명을 원하시는지 말씀해주시면 보완하도록 하겠습니다!

3
2019-11-22 01:07:13

간략하게 설명을 드리자면,

해당 모델은 "모든 선수들이 리그평균값에 해당하는 3점 성공률을 갖는다" 라는 일종의 가정 (Prior) 에서 시작하여 선수가 3점슛을 성공할때마다 그 관측값을 (실제 성공률) 바탕으로 계산된 확률(Posterior) 업데이트 하는 모델입니다.

 

즉, 3점슛 시도가 적은 선수는 실제본인의 성공률보다는 리그평균에 가까워지는 결과가 나올것이며, 시도수가 많은 커리와 같은 선수는 bayesian 추정치와 실제 성공/시도로 구해진 성공률이 비슷하게 나오게 됩니다.

 

그럼 이런 모델을 왜 사용하는가. 극단적으로 얘기하자면 이렇습니다. (최신 버전으로..) 

"시몬스와 하든 중 3점을 더 잘쏘는 선수는 누구입니까"

단순한 성공률 계산이라면 이번 시즌 한정 시몬스라고 얘기하겠죠. 따라서 많은 사람들이 이런 outlier들을 제거하고자합니다.  아래와 같이요.

A : "그래, 한시즌 최소 50개 이상 던진 선수만 찾아보자" 

B : "응원하는 선수 끼워넣을려고 50개로 정했나? 100개 이상으로 컷하자"  

매니아에서도 자주 보이는 상황이죠... 

물론 저런 주관적인 판단이 개입된다는 내용 외에도, 50개로 컷했을 때, 48/49의 성공률을 가진 비운의 천재가 포함되지 못하는 일이 생길 수도 있구요.

 

따라서 베이지언 모델을 사용하여, 빈도가 적은 선수는 리그 평균에 더 가중치를 두는 계산을, 빈도가 높은 선수는 실제 본인의 성공률에 가까운 값이 나오도록 계산을 하도록 하는 것입니다. 성공 횟수에 상관없이 선수들을 포함하되, 나름의 패널티를 주는 것이지요.

 

물론 이 모델이 완벽한것은 아닙니다만, 너무 길어질듯하여 더 긴 얘기는 나중에 또 글 쓸 기회가 있다면 쓰는게 좋을것같네요 

 

흥미로운 글 올려주면 The Next 23님 다시 한번 감사드립니다

 

WR
Updated at 2019-11-22 08:01:53

좋은 설명 감사드립니다
개념을 완벽하게 잡아주셨네요!!

약간의 사족이지만 드록바99님을 위해 원글쓴이가 추가한 약간의 디테일까지 포함하자면, 처음엔 리그평균 3점슛 성공율을 사전확률 (prior)로 정했다가 이후 3점슛 라인이 짧았던 3시즌은 제거하고 각 선수들의 3점시도수와 커리어 연도수를 바탕으로 서로 다른 prior를 설정하여 선수별 차이를 더 볼수 있도록 보완하였습니다.

2020-06-30 13:29:01

너무 어렵네요... emprical estimation 복습하여 다시 이해해보겠습니다ㅠㅠ

2019-11-21 14:11:50

경제학 하셨나요?

WR
Updated at 2019-11-21 15:42:16

아니오~ 통계학을 좋아하지만 관련 전공은 아닙니다.

2019-11-22 10:29:24

와 커리 팬으로서 더 흥미가 생기네요. 통계 배워보고 싶네요 꼭!
아 태클은 아닌데 갯수->개수 입니다!

WR
Updated at 2019-11-22 10:50:23

감사합니다, 수정하겠습니다!

 

-----------------------------

"갯수"를 어디에 썼는지 Ctrl+F로 찾으니, 하나가 더 나오네요. 

 

 

맞춤법 어렵네요~

1
2019-11-24 21:30:30

정말 흥미로운 주제와 내용이네요. 감사합니다!

hou
52
8560
24-03-23
bos
122
27535
24-03-18
atlgsw
85
19926
24-03-18
bosden
57
7060
24-03-16
den
122
24059
24-03-14
lal
44
8554
24-02-24
den
92
18733
24-02-20
dal
80
16241
24-02-17
dal
79
8867
24-02-06
bos
54
6243
24-02-15
dal
72
11541
24-02-14
cha
69
21209
24-02-14
orl
36
6246
24-02-09
phi
42
6871
24-02-10
indphi
60
6386
24-02-08
atlbkn
45
10624
24-02-08
sas
50
16923
24-02-05
phi
46
11123
24-02-04
cle
40
12455
24-02-04
검색 대상
띄어쓰기 시 조건









SERVER HEALTH CHECK: OK