2008/04/27

RBI Estimation (1)

有時候也會想算一些沒什麼意義的數據。

一直到現在打點都還被相當多的棒球界人士認為是打者-至少是中心打者-最重要的數據。不過對Sabermetrics有點研究的人都會知道RBI並不是個獨立數據,它和打者前段棒次的成績關連不小,兩個相同成績的打者在不同的打線中,前段棒次比較會上壘的那個理所當然會有較多的打點機會,也因此光用打點做為判斷打者的標準是不大公正的。

那如果將所有打者都放到一個聯盟平均的打線中,他們可以打出幾分打點呢?我們倒是可以嘗試著算算看這個數據。

首先要調查所有打者打擊時壘上跑者的狀況分佈,我們從Baseball-Reference找來2007年的split stats,整理成下表(為了編輯方便轉了90度):

Split

000

100

020

003

120

103

023

123

PA1028423416616781562813880603642974993
RBI28122727291919413381268022153582
1B162015812246589520861022607797
2B51091699771251634298185250
3B532148932661291930
HR281294436710436013898134
BB7804237023167911072506869351
HBP87931916368144754958
SF0003170433275416
SH0882266193175330
SO18097538927569432464974685881
GO*28661974843771422393616699951389
*GO為估計值

根據打擊結果的不同,打者的打點數應該如下:

  • 3B:壘上幾個跑者就幾分打點
  • HR:跑者數+1
  • BB,HBP:只有在滿壘情況時有一分打點
  • SF:只會出現在三壘有人時(一二壘不論),一分打點
  • SO:不會有打點
  • AO:如果有打點就會記成SF,其他的AO不會有打點

而比較不確定的有以下四者:

  • 1B:三壘跑者一定回得來,二壘跑者不確定,一壘跑者回不來
  • 2B:二三壘跑者一定回得來,一壘跑者不確定
  • GO:三壘跑者要是跑回來,也有一分打點
  • SH:在003023123時會有一分打點,然而發生在103時不確定

先將確定的部份所產生的RBI填上,RBI'為確定部份產生的RBI總數,RBI"為與RBI'實際RBI的差距,也就是不確定的部份該補上的產出

Split

000

100

020

003

120

103

023

123

RBI28122727291919413381268022153582
1B/RBI16201/00005812/00002465/????895/08952086/????1022/1022607/????797/????
2B/RBI5109/00001699/????771/0771251/0251634/????298/????185/0370250/????
3B/RBI532/0000148/014893/009326/002661/012229/005819/003830/0090
HR/RBI2812/2812944/1888367/0734104/0208360/1080138/041498/0294134/0536
BB/RBI7804/00002370/00002316/0000791/00001072/0000506/0000869/0000351/0351
HBP/RBI879/0000319/0000163/000068/0000144/000075/000049/000058/0058
SF/RBI0/00000/00000/0000317/03170/0000433/0433275/0275416/0416
SH/RBI0/0000882/0000266/000019/0019317/000053/????3/00030/0000
GO/RBI28661/00009748/00004377/00001422/????3936/00001669/????995/????1389/????
RBI'2812203615981716120219279801451
RBI"06911321225217975312352131

先做一些簡單的計算,由上表可以看出,在100時不足的691分打點,應該就是由1699支二壘安打打回來的數目,因此可以推出此時一壘跑者回來得分的比例為691/1699=40.7%;同理在020時一壘安打打回二壘跑者的比例為53.6%,在003情況下,跑者靠GO跑回來的比例為15.8%。

我們首先假設,在壘上有二個以上的跑者時,跑者額外進壘回來得分的比例沒有改變,將資料填回上表,結果變成了這樣:

Split

000

100

020

003

120

103

023

123

RBI28122727291919413381268022153582
1B/RBI16201/00005812/00002465/1321895/08952086/11181022/1022607/0932797/1224
2B/RBI5109/00001699/0691771/0771251/0251634/0892298/0419185/0370250/0602
3B/RBI532/0000148/014893/009326/002661/012229/005819/003830/0090
HR/RBI2812/2812944/1888367/0734104/0208360/1080138/041498/0294134/0536
BB/RBI7804/00002370/00002316/0000791/00001072/0000506/0000869/0000351/0351
HBP/RBI879/0000319/0000163/000068/0000144/000075/000049/000058/0058
SF/RBI0/00000/00000/0000317/03170/0000433/0433275/0275416/0416
SH/RBI0/0000882/0000266/000019/0019317/000053/????3/00030/0000
GO/RBI28661/00009748/00004377/00001422/02253936/00001669/0264995/01581389/0220
RBI'28122727291919413212261020703497
RBI"00001697014585

結果我們發現,當壘上有兩個以上跑者時,計算出來的RBI數低於實際值,顯示跑者額外進壘的比例在這些狀況下提高了。這倒是符合我們的常識,當壘上跑者不只一人時,守備方選擇放棄本壘而阻止其他壘上跑者的機會提高,跑者靠額外進壘回來得分的機率也就上升。

再仔細一想,會發現這個表並沒有考慮到盜壘的影響,以100的狀況來說,一壘跑者在這種狀況下盜壘成功了2195次,這2195個打席事實上應該算做020才對。而盜壘失敗的812個打席,則應該當成000來看。

這裡有一個奇怪的地方,列在100的SB指的顯然是從一壘盜上二壘(總不可能從本壘盜到一壘),那麼020的SB自然也是指從二壘盜上三壘,然而在223次盜壘成功,已經變成三壘有人的打席中,竟然沒有出現任何SF?(由003的split stat來看,SF出現的比率大約是5.6%,223個打席應該要出現約12.6次。)甚至在2006年也沒有SF紀錄,2005和2004僅各有1支。

先不管這個詭異的現象,仍然有其他關於盜壘的問題,當壘上跑者只有一人的100020003時,盜壘一定是由唯一的跑者發動,盜壘後的情況也很容易判斷;而123023分別只出現1次和2次CS,我們可以假設都是死三壘上的跑者,就算猜錯影響也可以忽略;問題在於120103的情況,無法確實判斷盜壘後的壘上狀況,在沒有其他數據的情況下,這個部份只好先用估計的了。

(待續...)


相關文章

  • RBI Estimation (2)
  • RBI Estimation (3)
  • 繼續閱讀

    2008/04/15

    小貼紙又掛掉啦~

    其實上週五就發現了,只是想說剛好乘機來改個板,所以就沒有去修,不過因為趕不出來,所以還是先乖乖回溯到3/16的備份檔。

    其實還發現水晶球的投手排行榜也壞掉了,所以也清空重來了。

    重建排行榜時還跑出了一個超猛的Carlos Zambrano..........

    繼續閱讀

    2008/04/06

    Baseball season is open

    好像應該寫season was open才對. XD

    今年在Yahoo! Fantasy Baseball只玩了三隊,其中一隊是小魚聯盟,另外Public(autopick)和Winner(live)各一隊。

    這兩三年Yahoo的O-Rank準確度進步很多,再加上Draft AnalysisExperts Rankings等實用的輔助工具,就算只靠Yahoo!的資訊,玩家要選很糟也不容易。反過來說,要像之前一樣輕易的偷到sleeper也變得困難得多了。

    以往選winner和public的差別是public常常可以撿到因為O-Rank差而掉出來的漏網之魚,winner比較不會有這種情況,現在選public的感覺就跟之前的winner差不多。

    今年選秀中段有好幾輪選得很痛苦,不過要是Yahoo!保持這種水準,未來大概就得要習慣於選到"就是這一輪該選"、"不賺不賠"、"沒有明顯比其他選擇好"的球員了吧。

    繼續閱讀

    2008/03/18

    2008小魚聯盟選秀戰記

    今年是第六年參加小魚聯盟的選秀會了。

    小魚聯盟是個18隊每隊29人的喊價制Keeper聯盟,每年開季前都會有現場選秀來決定FA球員的歸宿。詳細規定可以參閱以上網址或至Ptt2的FAAB板。

    背景資料 選秀前陣容
    守位球員

    薪資

    合約*

    CRamon Castro

    1

    B

    C 

     

     

    1B 

     

     

    3BGarrett Atkins

    13

    2

    CI 

     

     

    2BDustin Pedroia

    7

    2

    SSJason Bartlett

    3

    B

    MILuis Castillo

    10

    1

    OFTorii Hunter

    26

    B

    OFFranklin Gutierrez

    2

    B

    OFMark Teahen

    4

    1

    OFMarcus Thames

    2

    B

    OF 

     

     

    UT 

     

     

    SPFrancisco Liriano

    16

    3

    SPJustin Verlander

    12

    2

    SPChad Billingsley

    11

    3

    SPChuck James

    1

    1

    RPShaun Marcum

    3

    B

    RP 

     

     

    P 

     

     

    P 

     

     

    P 

     

     

    P 

     

     

    *: 合約剩餘年數,A代表合約第一年,B代表第二年,之後需簽固定年數合約 例:A-B-1, A-B-3-2-1

    今年的預定目標和過去兩年一樣: 1120R, 270HR, 1100RBI, 160SB, 0.283AVG, 100W, 0SV, 1180K, 3.90ERA, 1.30WHIP

    根據這個目標,在喊價會上要補到大約以下的水準:
    390R, 125HR, 455RBI, 50SB, 0.280AVG (826H / 2950AB)
    25W, 0SV, 410K, 3.99ERA, 1.30WHIP (288ER, 844OBA / 650IP)

    要靠164元,5打(含1捕手)5投來達成這個目標

    選秀策略

    投手方面,只要Maddux加上4個1元RP,再在板凳選兩個RP,基本上就可以達成目標。或是將其中一個RP換成Robertson甚至Germano也可以。我給Maddux留了8元的預算,整個投手群預計用12~15元搞定。

    剩下150元處理5名打者,首先要確定的是捕手,為了達成平均25HR,91RBI的水準,這個位置只有Victor Martinez可以勝任,我準備了應該是史上捕手最高價的36元喊他。

    接下來棘手的是SB和RBI的問題,這兩個項目很難兼顧,不過RBI的來源選擇比較多,所以決定要先確定好SB的來源,來決定其他三個打者要如何選擇。

    FA中有30SB實力的有Rollins, Crawford, Ichiro, Figgins, Furcal,Taveras,Lugo等人,這幾個打者各有不同的優缺點:

    Rollins的HR和RBI最好,喊到他的話需要再補約10個SB,缺點是會把UT塞滿。
    Crawford一個人可以把50SB搞定,RBI也夠,不過66元3打者要打90HR會是個大問題。
    Figgins基本上可以把SB搞定,但是HR和RBI都會很吃緊,優勢是可以守OF,在Thames非常需要有板凳幫他吃場次的情況下會很方便。
    Ichiro的強項R和AVG都是容易達成的項目,但是他和Adam Dunn是絕配。

    4名打者中,希望能用85~95元選兩個35元+的打者,留下25元左右在後半場選兩個15元級的打者,很有機會便宜買到。20~35元這一級的打者,和15元級的相比,c/p值通常太差,所以不予考慮。

    選秀情況

    為了確定情況,第一輪就把Rollins喊出來,價錢合理就收下,接下來目標就明確多了。照預定計畫,接下來最好是用44元把Carlos Lee喊下來。剩18元2打者要拿43HR+150RBI,根本不成問題。

    不過馬上在第二輪就碰上了大問題,Jason Bay $30,想說拱一下喊31,沒想到就入手了。在這一級的打者中,倒也不是特別貴,後面出來的同級打者也是被喊到這一帶,只是資產配置就亂套了。

    接著Victor Martinez被喊出來,而且一下就喊到$37+優先權,這是估價上的嚴重失誤。我知道他有$40+的價值,不過捕手通常會underpaid所以估36,因此$40我還是跟了,可是喊到43時,因為之前喊到超出預算的Bay,所以就跟不下去了。

    原本視為必喊的VMart沒喊到,策略就整個要重擬,由於Mauer也已經被喊走,接下來最好的捕手就剩下Soto,用$13喊到了他。

    中間David Ortiz出來,用$46喊到,他的HR和RBI比預定人選Lee好,算是彌補了一些捕手降級的影響。

    有鑑於去年太早將打者填滿,而投手無人可花錢的情況,今年決定要先把投手搞定,打者的深度比投手好,通常總是找得到合適的人選把錢花掉。而投手事實上也只有一個SP需要花錢,接下來全梭一名打者也沒問題,當然,$2到選秀尾盤是很強的,所以留點錢也無妨。

    因此在Maddux出來之前都相當克制,這也是喊到Bay的另一個影響,中間錯過了LaRoche, Ibanez, Delgado, Giambi, Drew, Griffey, Millidge等等。這段期間除了找RP之外,重點就是緊盯著Willingham和可能喊走他的GM。

    Maddux在第八輪以$5喊到,此時我最高能出到$11,能超過這個價錢的剩下friend和kage,其中friend只剩下1名打者和20元。第九輪開始連Justin Upton都被喊走,決定不能再等下去,將Willingham趕快喊出來,果不其然friend花了手上所有的20元喊走了他。

    剩下的FA打者中,最具長打力的應該是Jacobs,這一輪中kage將UT補滿,所以不能喊1B。於是下一輪用$6+優先權壓過只能出$8的qo將他拿下。

    在上半場已經以$3拿到Duchscherer,剩下$8選3個投手,先喊了岡島,smoo出到$4,發現smoo只能再喊這個RP就給他。接下來就隨我選了,想要的是Nate Robertson, Jamie Walker, Cla Meredith和Justin Speier。其中兩隻被death喊出來,加個$1就攔到了,Walker自己喊當然自摸。後來Meredith也在bench喊到。

    bench當然要補強打者,第一輪選了有長打的Dan Johnson,不過他是1B,守位和隊形不太配合;第二輪選了Owens;三輪選Active時沒喊的Meredish;第四輪繼續補強外野選了Murton;第五輪找不到明年可以上的prospect了(Scott Elbert回鍋? XD),就先選個口袋名單的Germano湊數。

    回顧整場選秀,最大的失誤是VMart估價錯誤,其次是喊到Bay,不過這兩個失誤剛好在某種程度上互補,所以整體來講還算是達到了目標,沒有錯上加錯造成崩盤。

    最終陣容

    守位球員

    薪資

    合約

    CRamon Castro

    1

    B

    CGeovany Soto

    13

    A

    1BDavid Ortiz

    46

    A

    3BGarrett Atkins

    13

    2

    CIMike Jacobs

    6

    A

    2BDustin Pedroia

    7

    2

    SSJason Bartlett

    3

    B

    MILuis Castillo

    10

    1

    OFTorii Hunter

    26

    B

    OFFranklin Gutierrez

    2

    B

    OFMark Teahen

    4

    1

    OFMarcus Thames

    2

    B

    OFJason Bay

    31

    A

    UTJimmy Rollins

    52

    A

    SPFrancisco Liriano

    16

    3

    SPJustin Verlander

    12

    2

    SPChad Billingsley

    11

    3

    SPChuck James

    1

    1

    RPShaun Marcum

    3

    B

    RPJustin Duchscherer

    3

    A

    PGreg Maddux

    5

    A

    PJamie Walker

    1

    A

    PNate Robertson

    2

    A

    PJustin Speier

    2

    A

    繼續閱讀

    2008/02/28

    Lineup Optimizer 2008 Update

    Lineup Optimizer

    新球季快開始了,大家都想排棒次吧。

    增加ZiPS今年的預測成績,使用介面和之前一樣,守位請自己勾選。 :p

    看了兩年前寫的程式碼,果然覺得很醜 XD 因為中途陸續加了很多功能,架構很雜亂,找個時間來重寫好了 =.=

    相關文章

  • Lineup Optimizer

  • 繼續閱讀

    2008/02/24

    Bench Hitter in Fantasy Baseball World

    這幾年玩Fantasy Baseball下來有一個感覺,Bench Hitter(這裡指FB中的,不是現實生活的板凳)在球隊中似乎沒什麼地位。理論上板凳球員是在先發球員出問題不能上場時替補上陣,但由於MLB休兵日很少,所以一旦發生了先發打者缺陣的情況,很難由板凳球員補上未出賽的場次。SP是五天先發一次,所以只要視情況調動陣容就可以在短時間內補回局數;而NBA則是賽程較鬆散,可以讓替補球員在先發球員休兵日的時候調上來補場數。只有MLB的打者,一旦臨時受傷或day-off,儘管有替補球員也很難補上。

    Fantasy Baseball是扮演GM兼Manager的虛擬遊戲,不過上述的情況並不能貼切的表現現實比賽。如果在現實生活中(或是其他棒球模擬遊戲)一支球隊有人無法上場,身為一個Manager,該做的事應該是選一個替補選手上陣,而不是擺個人型看板當做沒這回事;球員當然可以有day-off,但是理論上球員要不要上場是由manager(也就是玩家本人)決定的,所以不應該有玩家來不及更換先發選手的事發生。

    可是在FB的世界中,即使玩家已經幫每個位置都找好了替補人選,也決定好了替補策略,玩家仍然無法知道自己隊上的先發球員會不會上場,也就無法讓替補球員發揮應有的價值。

    Fantasy Baseball是個滿足球迷掌控慾的遊戲,如果玩家為預想到的問題準備好瞭解決之道,但事情就是無法像現實世界中一般的運作,這並不是個提高遊戲樂趣的設計。

    解決之道?

    先來看看另一個很多使用的設定:在先發九人外另加C,CI,MI,OF*2,這種設定可以增加聯盟深度和調度彈性,不可否認這五名打者也有模擬球隊中替補野手的意義,使得Fantasy球隊的陣容更接近現實的25人球隊。

    然而大多數的情況下,這五名增加的野手,仍然是現實的先發球員,玩家也會每天將這名球員排上場,造成一隊一季的球員總出場數超過2000場(162場*9=1458場),而FB陣容中則有"板凳的板凳球員"等著替補替補選手的位置。球隊事實上是兩名先發捕手、五名先發外野手,而不是一名先發捕手、三名先發外野手加上替補捕手和兩名替補外野手,與現實情況的差距反而更大,而替補球員難以使用的問題仍然存在。

    昨天忽然想到一個方法可以讓板凳打者很容易的補上先發打者的缺陣。只要使用14名先發打者的設定,然後將每個守備位置的場次上限調成108場就行了。

    如此,以MI為例,三個位置的場次加起來是324場,恰好是一年比賽場數的兩倍,如果兩名先發MI都全勤剛剛好可以輪替用完,當先發MI缺陣時,只要在之後讓替補MI一起上場,以每日三名MI的陣容就可以輕易的補足場次。 雖然不是同一天,但是替補球員一場補先發球員一場,這種想法應該還不會很難理解。事實上當投手局數不足或是NBA場數不足時,大家都在做同樣的事:靠著調動陣容讓有出賽的球員多上場以彌補之前不足的場數,只要最後總數對了就好。

    來看看三種設定下可能出現的出賽情形:

    GS場數2B,SS(162場)2B,SS,MI(162場)2B,SS,MI(108場)
    先發2B140140140
    先發SS150150150
    替補MI514034
    MI總和295430324
    第三種設定看起來不是很像真實球隊的情況嗎? :p

    繼續閱讀

    2008/02/13

    2007 Projections Comparison - Hitters (1)

    一個多月沒發新文章,主要是因為上班後沒什麼時間,決定先把接下來要做的事起個頭,不然就更不可能花精神寫完這篇了。 XD

    在BP的2007 Hitter Projection Roundup這篇文章中比較了八個不同來源的預測,他們比較的標準是OPS的差距。就評斷打者綜合能力而言,OPS是很不錯的評量標準(有點意外BP沒有使用EqA XD),不過若是以Fantasy Baseball的角度來看,OPS並無法提供我們足夠的資訊。

    在標準5*5 FB中,打者計分的項目包括R,HR,RBI,SB以及AVG,其中AVG和HR絕大多數是打者自身的能力,R和RBI需要考慮一些棒次與隊友的影響,SB有教練戰術頻率的考慮,球員的打席數則是必須考慮到球隊陣容。

    我認為各家預測可能有不同的強項,比方Marcel使用打者過去幾年的打席和幾條簡單的經驗法則來預測未來的打席數,而不管該球隊是否有位置給這些球員;相較之下,Rototimes的預測是人工產生的,就有考慮到球隊陣容的問題,應該是比較可信的。

    我找了四個免費的2007年預測─ Marcel, ZiPS, Chone和Rototimes來做細部的比較,選用的資料是2007實際打數前300名的打者(最少的是Tony Graffanino,231AB),除了AB的預測保留不變外,R,HR,RBI,SB以及H都校正到600AB來做比較。來觀察這幾家預測在不同領域的預測表現。

    (P.S: Rototimes今年的預測拖到現在都還沒公開,明明Draft Kit都出來了說 =.=)

    繼續閱讀

    2008/01/11

    2007 K-BB Chart

    (點擊放大)

    每年的例行公事。(06 05 04)

    今年有一些和過去不同的地方,首先是改用K/PA和BB/PA取代K/9和BB/9;另外是改用了Excel 2007,也就順便換了新樣式,更簡潔的風格我個人還蠻滿意的,不過我不會用VB改Excel 2007的泡泡圖的顏色,弄了一下午還搞不定,現在看到的這張圖其實是用兩張圖疊起來的(山不轉路轉 orz)。

    跟第一次碰到這種圖的讀者說明一下怎麼觀看,這張圖的縱軸是K/PA,越高代表三振能力越好,橫軸則是BB/PA,越左邊代表越不容易出現四壞球。這兩項能力佔了投手能力的絕大部份,我們可以從這張圖上快速的看出一個投手的投球類型和投球品質。

    假如一個投手的位置在另一個投手的左上方,代表他的三振率比較高且四壞率比較低,換言之,較好的投球品質(在此沒有考慮到聯盟及球場)。如果在右上方,也就是三振率和四壞率都較高,代表Power pitcher的成份較重,反之則是Fitness pitcher的成份較重。

    點的顏色代表投手的定位,藍色是先發投手,紅色是後援投手,綠色則是兩頭跑的投手。總共有167名投手在圖表上,沒有精確的選擇標準,我看順眼的就放上去。 XD

    繼續閱讀

    2007/12/08

    Hitting stats across the years

    本週本來想寫這個的,不過從PTT上看到有人已經做過類似的事了,那我就先省點事吧。 XD

    How do you measure a player in a year?

    上面這篇文章的作者將球員的打席分成奇數打席和偶數打席,然後去計算兩者的相關係數,他以相關係數0.7做為一個門檻(換言之,R-Square=0.49,R-Square是相關係數的平方),計算每項數據超過門檻所需的打席數。最後他也列出了650PA和300PA時各數據的相關係數。

    詳細的數據請自行參閱原文。從這些數據得出的結論,一個打者最穩定的能力是他的揮棒率(這不太能算能力)、揮到球的比率以及受這兩項影響最大的三振率,其次是四壞球率以及擊球類型(平飛/滾地/飛球比率),接下來是全壘打率,以上都是相當穩定的能力;再來才是一壘安打率,而二三壘打率的變動性很大不易保持。

    其他的複合數據排序關係不難由以上數據推出來,BABIP由一壘打率及二三壘打率組成,所以穩定性介於兩者之間。打擊率基本上是Contact Rate乘上BABIP,由於Contact Rate是十分穩定的能力,所以打擊率要比BABIP來得穩定些。上壘率是打擊率加上穩定性高的保送率所組成,所以要比打擊率更穩定;長打率與打擊率、ISO的關係亦同。

    至於Clutch(關鍵時刻的能力),基本上完全沒有穩定性可言。

    我想對Sabermetrics有研究的球迷對這個結果都不會感到意外,打者對於BABIP有一定的控制力,但是穩定性比不上K,BB和HR Rate,不過造成此現象的"元兇"是二三壘打率而不是一壘打,這可能是比較少人會想到的部份吧。

    相關文章

  • Pitching stats across the years
  • 繼續閱讀

    2007/11/24

    小貼紙

    小貼紙開放測試,可以從註冊頁面去申請帳號。

    註冊範例如上圖,應該要寫說明文件的,但是沒那個工夫。 XD 如有問題就請直接發問吧。

    如果所有項目都沒有錯誤,應該會出現以下的訊息: 將表單內的文字放到自己的網頁上就可以了。

    因為還在測試階段,如果使用後有發生錯誤或建議請通知我。

    在這段期間又有了另一個想法,目前的架構是每次有訪客瀏覽網站就會進行一場比賽,如果有複數的Blogger使用這個貼紙的話,想將它改成定期進行比賽,而訪客點閱次數則是影響球員能力的成長程度(當然我不會讓兩者關係是線性,而是接近指數函數)。

    換言之,點閱次數越高的Blog,球員成長就越多,當然各球員間還是有特性的差別。然後像部落格觀察一樣搞個排行榜,這樣應該會比較有意思吧?

    相關文章

  • Crystal Ball 小貼紙
  • 繼續閱讀
    Powered By Blogger