September 6,2005

Expected Wins

棒球統計界最常用到的 Expected Wins 是 Bill James 所提出的 Pythagorean Formula。他認為,一個隊的勝率約等於 RS^2/(RS^2+RA^2),其中 RS 是得分(runs scored),RA 是失分(runs allowed)。之所以被廣泛使用,主要原因大概是,它預測得還蠻準的。我從來不喜歡這個公式。RS^2+RA^2 似表什麼?那個比例又為什麼會接近一個隊的勝率?背後有任何的道理?就只是它預測的準而已? Bill James 後來還把那個 power 2 改成一些小於 2 的不同值,得到更好的預測,也是我無法認同的。我認知的統計不是這樣的。統計的作用是在測試一個假設模型,而這模型應該是根據某些背景知識,而不是隨便寫個模型和一些未知係數,經過一些迴歸方法,找到最符合數據的係數。做生物統計的人會知道,即使你的模型再符合數據,如果你的參數不能代表一個生物上的意義,你的模型是不會被接受的。統計是套強大有用的工具,但它是個輔助工具,用途是檢視驗證模型,而不是無中生有創造模型。有時候,藉由統計的方法,可以看出一些平常沒發現的規則,但發現之後,必須補充一套背後的理論,而不是單單讓一個公式成為準則。就我的觀點,Bill James' Pythagorean Formula 就只是個無中生有的公式,我沒有看到它的背後解釋。

接下來,我要談我怎麼看一個隊的勝率。一場球要贏球,就是得的分比失的分多,這是大家都知道的廢話,卻也是個簡單的事實。於是,要看一個球隊的勝率,可以看它得分比失分多的機率。於是,可能的模型是:得分是某個機率分佈,失分是某個機率分佈,得分與失分兩者不相關(甚至獨立),於是,就可以算那個機率。又或者,模型直接建構在得分減失分,而直接算這個機率分佈大於零的機率。老實說,我很少在整理數據,也不擅長於此。感謝萬能老婆的幫助,將去年(2004)的每一場分數整理好,讓我可以做些檢驗。

首先看看去年 2428 場比賽的 4856 筆得分之分佈:

每場的得分,是個取值於整數點的變數,第一個猜測是它是不是個 Poisson 分佈?Poisson 分佈的一個特性是期望值等於變異數。算一算這份數據,平均值是 4.8136,變異數是 10.3564,跟 Poisson 分佈有一段差距。再來,看它的形狀,勉強看起來像是左邊被截掉的常態分佈。常態分佈的取值是連續的,要用常態分佈,只能當作是經過類似四捨五入,將連續的值變成離散的整數。常態分佈的好處是,很多計算,變得方便許多,尤其若得失分是獨立的。獨立與否,不容易檢驗,通常只看兩者是否相關。從去年的資料顯示,得失分的相關係數只有 0.0407,可以說是蠻不相關的。若得分的分佈是 N(mu1, sigma1^2),失分的分佈是 N(mu2, sigma2^2),則得分減失分的分佈是 N(mu1-mu2, sigma1^2+sigma2^2)。這中間還有一個麻煩是,得分減失分不會是零,他們會延長比賽,打到分出勝負。由實際數據顯示的得分減失分的分佈如下。也還蠻像常態分佈,只是在零處沒有值。

之前的數據都是三十隊一起看。一個問題是,若分開看的話,得分或失分較多的,變異數會不會較大?在 Bill James' Pythagorean Formula 的計算下,得 x 分,失 y 分的勝率會和得 ax 分,失 ay 分的勝率相同。這種現象,等於是假設得 ax 分的隊,得分變異數是得 x 分的 a^2 倍。於是,我就去看看,各隊得失分與標準差(變異數的開根號)的關係:

上圖是得分,下圖是失分,X軸是平均值,Y軸是標準差。的確是有得失分越高,標準差越大的趨勢,但平均分變 a 倍,標準差並沒有變到 a 倍。用線性迴歸得到的迴歸直線是:得分標準差=1.6707+0.3131*得分平均值,失分標準差=0.9242+0.4689*失分平均值。1.6707 跟 0.9242 都是大到無法被忽視的數字(從 p-value 觀點),表示得失分變多,標準差成等比例變大,是不正確的。同樣地, 0.3131 跟 0.4689 則告訴我們,若把標準差當成固定,也是不正確的。

以下,我看三個統計值,S1,S2 和 S3。分別是各隊的得失分差除上標準差。不同的是,在 S1,假設所有隊的標準都相同;在 S2,假設標準差是隨平均值線性增加;在 S3 則採用上面求得的迴歸直線來預測標準差。F(x) 是常態分佈的累積機函數(CDF)。F(S1) ,F(S2) 和 F(S3) 是由三個不同假設估計的勝率。其中,實際資料的得失分差的標準差是 4.4576,但考慮實際資料在 0 沒有數據,若補上這些資料,標準差會變小。藉由一些計算,我採用 3.6 當做固定標準差。而在 S2 和 S3 的計算,也都同時乘上 4.4576/3.6 的比例。

 
實際勝率
估計勝率*
S1
F(S1)
S2
F(S2)
S3
F(S3)
Arizona
0.3148
0.3188
-0.4870
0.3131
-0.4930
0.3110
-0.4781
0.3163
Atlanta
0.5926
0.5910
0.2315
0.5915
0.2444
0.5965
0.2396
0.5947
Baltimore
0.4815
0.5078
0.0223
0.5089
0.0208
0.5083
0.0212
0.5085
Boston
0.6049
0.6036
0.3086
0.6212
0.2787
0.6098
0.2920
0.6149
Chicago Cubs
0.5494
0.5847
0.2126
0.5841
0.2272
0.5899
0.2214
0.5876
Chicago Sox
0.5123
0.5200
0.0583
0.5233
0.0536
0.5214
0.0551
0.5220
Cincinnati
0.4691
0.4061
-0.2692
0.3939
-0.2523
0.4004
-0.2539
0.3998
Cleveland
0.4938
0.5006
0.0017
0.5007
0.0016
0.5006
0.0016
0.5006
Colorado
0.4198
0.4489
-0.1543
0.4386
-0.1369
0.4456
-0.1413
0.4438
Detroit
0.4444
0.4898
-0.0291
0.4884
-0.0272
0.4892
-0.0277
0.4890
Florida
0.5123
0.5127
0.0309
0.5123
0.0339
0.5135
0.0324
0.5129
Houston
0.5679
0.5696
0.1800
0.5714
0.1866
0.5740
0.1838
0.5729
Kansas City
0.3580
0.3876
-0.3172
0.3755
-0.3025
0.3811
-0.3019
0.3814
LA Angels
0.5679
0.5647
0.1749
0.5695
0.1734
0.5688
0.1739
0.5690
LA Dodgers
0.5741
0.5531
0.1320
0.5525
0.1423
0.5566
0.1376
0.5547
Milwaukee
0.4161
0.4123
-0.2122
0.4160
-0.2356
0.4069
-0.2216
0.4123
Minnesota
0.5679
0.5434
0.1115
0.5443
0.1162
0.5463
0.1138
0.5453
Montreal
0.4136
0.4039
-0.2332
0.4078
-0.2582
0.3981
-0.2430
0.4040
NY Mets
0.4383
0.4668
-0.0806
0.4679
-0.0888
0.4646
-0.0842
0.4664
NY Yankees
0.6235
0.5521
0.1526
0.5606
0.1394
0.5554
0.1443
0.5574
Oakland
0.5617
0.5332
0.0874
0.5349
0.0888
0.5354
0.0878
0.5350
Philadelphia
0.5309
0.5363
0.1012
0.5403
0.0973
0.5388
0.0984
0.5392
Pittsburgh
0.4472
0.4551
-0.1104
0.4560
-0.1201
0.4522
-0.1144
0.4545
San Diego
0.5370
0.5441
0.1115
0.5443
0.1181
0.5470
0.1149
0.5457
San Francisco
0.5617
0.5493
0.1372
0.5546
0.1319
0.5525
0.1337
0.5532
Seattle
0.3889
0.4184
-0.2143
0.4151
-0.2190
0.4133
-0.2134
0.4155
St. Louis
0.6481
0.6273
0.3361
0.6316
0.3433
0.6343
0.3431
0.6342
Tampa Bay
0.4348
0.4183
-0.2208
0.4126
-0.2192
0.4132
-0.2161
0.4145
Texas
0.5494
0.5398
0.1132
0.5450
0.1066
0.5424
0.1088
0.5433
Toronto
0.4161
0.4329
-0.1794
0.4288
-0.1800
0.4286
-0.1769
0.4298
相關係數
0.9505
0.9508
0.9512
0.9503
0.9507
0.9513
0.9516
平均絕對誤差
0.0190
0.0182
0.0187
0.0184

上表中的 "估計勝率" 是經由 Pythagorean Formula 算出來的勝率。原本,我只希望這結果能不要差太多就好。這是有個背後模型在支撐,只要有接近的結果,我就滿意。想不到,結果比我預期得要好很多。不管是哪個假設下,相關係數或平均絕對誤差,都比經 Pythagorean Formula 算出來的要好。其中,最令我最驚訝的是,連 S1 跟實際勝率的標準差都已經較高。等於是說,單單只看得分減失分這個數據,它跟實際勝率的相關度都比較高。我去算了一下,0.5+0.11*(平均得分-平均失分),其中 0.11 是為了調整成標準差相同。發現它跟實際勝率的平均絕對誤差是 0.184,也比 Pythagoream Expected Wins 的誤差要小。我真的不知道,連得失分差去變形一下都可以表現得較好,Pythagorean Expected Wins 居然可以存在而被廣泛使用。

最後,回過頭看看,為什麼 Pythagorean Expected Wins 可以有還不錯的估計?公式是 RS^2/(RS^2+RA^2)。將它稍微改寫一下可以變成 1/2 + (RS - RA)*(RS + RA)/(RS^2 + RA^2)/2。如果把 (RS + RA)/(RS^2 + RA^2)/2 看作一個變數,它就跟 0.5+0.11*(平均得分-平均失分) 長得頗像。而因為那個變數的起伏,造成它的表現變差。



Posted by bubblesld at 樂多Roodo! │19:35 │回應(6)引用(2)棒球統計
樂多分類:運動 共同主題:MLB 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/450108
引用列表:
Ephedra liquid gel products.
Ephedra liquid gel products.【Ephedra liquid gel products.】 at July 31,2007 12:12
Medicated ephedra block. Hydroxycut with ephedra. Ephedra yellow swarm. Philadelphia ephedra lawyers. Colorado ephedra lawyer. Ephedra.
Buy direct ephedra.【Ephedra attorneys california.】 at July 31,2007 15:04
回應文章
雖然看不懂(我是搞CSIE的),不過直覺告訴我,這一篇整理一下,可以出 paper 了。
Posted by tobayashi at September 7,2005 12:35
了不起!

1. 從模型觀點出發,發現一些謬誤或盲點。我對某些 sabermetricians 抓了各種不同的數據就當作各種不同角度的「客觀比較」來寫文章感到無法接受,不過我是沒有你這種底子,可以抓些東西自己去跑其它的模型。

2. 每天都有東西可以寫。先不說 Globe 或 Herald,至少你的墨水足以淹死世界日報波士頓版或 Metro (如果你的文章有英譯) 那些完全寫不出什麼狗屁的 columnists。

了不起!
Posted by jj at September 8,2005 07:36
Dr. Baseball : You work hard !!!
Posted by ccc at September 8,2005 09:22
多謝各位的誇獎。只是個人 blog 寫寫好玩,像這篇,其實很多地方並不嚴謹,離真正統計的文章還有一段距離。不過,我真的是對目前許多棒球統計很不滿,我也相信很多人可以做得比較好,但或許很少具有良好統計知識的人對棒球統計有興趣。我自己向來對理論較有興趣,實際操作就很懶,或許以後找人合作 XD。
Posted by Bubble at September 8,2005 10:03
Have you read this before? At least, BP guys did not really use James's Pythagorean theorem for a long time. Many of James's results are quite raw, but we have to say, his works are inspiring.

http://www.baseballprospectus.com/article.php?articleid=342

It is unfortunate that all figures in this article are not available now.
Posted by walaykao at September 10,2005 13:43
我平常讀的這類東西很少,當某些東西難以令人信服時,要去多讀它,是件不容易的事,尤其我本來就懶。不過,在我要寫這篇文章之前,曾經稍微 google 一下,你提的文章,剛好有被我找到,稍微看過。

那篇文章有價值的地方在於它對於 run score 的 modelling。對於那部份,他提出模型,然後用資料去檢驗,我完全給予肯定。他的三個 poisson 相加的模型,意義上,我還不完全認同,但至少這是個還算合情合理的模型,這樣的討論,我當然認同。

但接下來,他是用這模型去檢視 expected wins。這作法也沒用問題。但這都無法解釋 expected wins 幾個公式的背後模型,而只是比較好壞。我寫這篇,第一段也先表達了我對棒球統計最大的質疑:公式後面沒有一套具有代表意義的模型在支撐。而我試圖要做的,也就是建構背後的理論。

Bill James' 有些東西的確有意思,但若說像這種 Pythagorean "Theorem" 有任何的 inspiring,那是我無法認同的。
Posted by Bubble at September 10,2005 21:37