{"id":247,"date":"2012-02-19T19:54:52","date_gmt":"2012-02-20T00:54:52","guid":{"rendered":"http:\/\/blog.rotovalue.com\/?p=247"},"modified":"2012-02-19T19:54:52","modified_gmt":"2012-02-20T00:54:52","slug":"batting-around-crystal-baseballs","status":"publish","type":"post","link":"https:\/\/blog.rotovalue.com\/index.php\/2012\/02\/19\/batting-around-crystal-baseballs\/","title":{"rendered":"Batting Around Crystal Baseballs"},"content":{"rendered":"<p>Matt Swartz tested several statistics projections against actual 2011 numbers <a href=\"http:\/\/www.fangraphs.com\/blogs\/index.php\/testing-projections-for-2011\/\">here<\/a>. He follows the guidelines Tom Tango outlined in <a href=\"http:\/\/www.insidethebook.com\/ee\/index.php\/site\/comments\/whos_evaluating_the_2011_forecasts_this_year\/\">this<\/a>\u00a0post, computing weighted on base average (<a href=\"http:\/\/www.insidethebook.com\/woba.shtml\">wOBA<\/a>) for each player and \u00a0then comparing the actual wOBA to the projection. From the errors on individual players he computed both <a href=\"http:\/\/en.wikipedia.org\/wiki\/Mean_absolute_error\">mean absolute error<\/a> and <a href=\"http:\/\/en.wikipedia.org\/wiki\/Root-mean-square_deviation\">root mean square error<\/a>.<br \/>\nOne of Matt&#8217;s assumptions was to run the calculations only for players with 200 or more plate appearances in 2011. In this post I&#8217;ll show results from a similar analyses without that cutoff, but compute the same MAE and RMSE values for the systems that I have data.<br \/>\nNot all projection systems made estimates for every player who actually played. I considered three different ways of addressing this:<\/p>\n<ol>\n<li>Compare only those players which have projections from all systems. This way you&#8217;re comparing the exact same players from each system, but you&#8217;re limited to fewer total players in the averages.<\/li>\n<li>Compare only the players projected by a given system. This uses all the projection data, but a system which projects more players, particularly young ones with little or no MLB experience, would fair poorer in this comparison relative to a system which projects fewer, more established players.<\/li>\n<li>Fill in data for &#8220;missing&#8221; players if a system hasn&#8217;t projected a given player. This has the advantage of being able to test all players, but it implies that for some systems, you use an arbitrary number for any players with no data. I&#8217;m using the cumulative forecast wOBA of all projected players.<\/li>\n<\/ol>\n<p>In his analysis, Matt only followed the third method. I&#8217;ll be reporting data for all three.<br \/>\nI currently have data for five different projection systems:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.tangotiger.net\/marcel\/\">Marcel<\/a>\u00a0&#8211; This is Tom Tango&#8217;s system, &#8220;that uses as little intelligence as possible.&#8221;<\/li>\n<li><a href=\"http:\/\/www.hardballtimes.com\/main\/article\/introducing-oliver\/\">Oliver<\/a>\u00a0&#8211; The Hardball Times&#8217;s system, developed by Brian Cartwright.<\/li>\n<li><a href=\"http:\/\/www.baseballprospectus.com\/article.php?articleid=15992\">PECOTA<\/a>\u00a0&#8211; Baseball Prospectus&#8217;s system, now maintained by Colin Wyers.<\/li>\n<li><a href=\"http:\/\/steamerprojections.com\/\">Steamer<\/a>\u00a0&#8211; A system developed by Jared Cross,\u00a0Dash Davidson, and Peter Rosenbloom<\/li>\n<li><a href=\"http:\/\/www.rotovalue.com\">RotoValue<\/a>\u00a0&#8211; A basic projection model I&#8217;ve developed and applied to both MLB and NBA basketball statistics, which I described previously <a href=\"http:\/\/blog.rotovalue.com\/?p=181\">here<\/a>.<\/li>\n<\/ul>\n<p>In addition, I&#8217;m using 2010 actual MLB data as a projection for 2011. This is a simple control: if your projections are less accurate than last year&#8217;s numbers, you&#8217;re not adding value.<br \/>\nFirst, the results only averaging players projected by all systems:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Source<\/th>\n<th>Num<\/th>\n<th>Avg wOBA<\/th>\n<th>MAE<\/th>\n<th>RMSE<\/th>\n<\/tr>\n<tr>\n<td>Actual<\/td>\n<td>404<\/td>\n<td>0.3263<\/td>\n<td>0.0000<\/td>\n<td>0.0000<\/td>\n<\/tr>\n<tr>\n<td>Marcel<\/td>\n<td>404<\/td>\n<td>0.3333<\/td>\n<td>0.0272<\/td>\n<td>0.0354<\/td>\n<\/tr>\n<tr>\n<td>Oliver<\/td>\n<td>404<\/td>\n<td>0.3315<\/td>\n<td>0.0261<\/td>\n<td>0.0345<\/td>\n<\/tr>\n<tr>\n<td>PECOTA<\/td>\n<td>404<\/td>\n<td>0.3292<\/td>\n<td>0.0265<\/td>\n<td>0.0346<\/td>\n<\/tr>\n<tr>\n<td>RotoValue<\/td>\n<td>404<\/td>\n<td>0.3225<\/td>\n<td>0.0323<\/td>\n<td>0.0435<\/td>\n<\/tr>\n<tr>\n<td>Steamer<\/td>\n<td>404<\/td>\n<td>0.3351<\/td>\n<td>0.0265<\/td>\n<td>0.0349<\/td>\n<\/tr>\n<tr>\n<td>2010<\/td>\n<td>404<\/td>\n<td>0.3311<\/td>\n<td>0.0356<\/td>\n<td>0.0478<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>For this set, Oliver edged out PECOTA and Steamer for the lowest MAE and RMSE, with Marcel next, RotoValue much further back, and 2010 the worst of all.<br \/>\nNext, I averaged all players in the system, computing errors for those who actually played in MLB in 2011:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Source<\/th>\n<th>Num<\/th>\n<th>wOBA<\/th>\n<th>MLB<\/th>\n<th>wOBA<\/th>\n<th>StdDev<\/th>\n<th>MAE<\/th>\n<th>RMSE<\/th>\n<\/tr>\n<tr>\n<td>Actual<\/td>\n<td>640<\/td>\n<td>0.3224<\/td>\n<td>640<\/td>\n<td>0.3224<\/td>\n<td>0.0446<\/td>\n<td>0.0000<\/td>\n<td>0.0000<\/td>\n<\/tr>\n<tr>\n<td>Marcel<\/td>\n<td>828<\/td>\n<td>0.3246<\/td>\n<td>525<\/td>\n<td>0.3319<\/td>\n<td>0.0235<\/td>\n<td>0.0278<\/td>\n<td>0.0367<\/td>\n<\/tr>\n<tr>\n<td>Oliver<\/td>\n<td>2090<\/td>\n<td>0.2895<\/td>\n<td>639<\/td>\n<td>0.3272<\/td>\n<td>0.0309<\/td>\n<td>0.0270<\/td>\n<td>0.0361<\/td>\n<\/tr>\n<tr>\n<td>PECOTA<\/td>\n<td>943<\/td>\n<td>0.3089<\/td>\n<td>601<\/td>\n<td>0.3260<\/td>\n<td>0.0277<\/td>\n<td>0.0271<\/td>\n<td>0.0359<\/td>\n<\/tr>\n<tr>\n<td>RotoValue<\/td>\n<td>504<\/td>\n<td>0.3213<\/td>\n<td>420<\/td>\n<td>0.3220<\/td>\n<td>0.0412<\/td>\n<td>0.0324<\/td>\n<td>0.0436<\/td>\n<\/tr>\n<tr>\n<td>Steamer<\/td>\n<td>619<\/td>\n<td>0.3332<\/td>\n<td>534<\/td>\n<td>0.3325<\/td>\n<td>0.0291<\/td>\n<td>0.0269<\/td>\n<td>0.0358<\/td>\n<\/tr>\n<tr>\n<td>2010<\/td>\n<td>616<\/td>\n<td>0.3270<\/td>\n<td>491<\/td>\n<td>0.3260<\/td>\n<td>0.0505<\/td>\n<td>0.0384<\/td>\n<td>0.0529<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Num refers to the total number of projections of any player by the system, and MLB is the number of projected players who played in 2011. The first wOBA column is the cumulative wOBA of all players in the sample, and the second is the average (weighted by plate 2011 plate appearances) of those who played in 2011. So systems like Oliver and PECOTA, which projected many more players than actually played in 2011, see their overall wOBA pulled down, but when restricted to those who actually played in 2011, their averages are now in line with the other systems.<br \/>\nIn this analysis, Steamer edged out Oliver and PECOTA for the lowest MAE and RMSE, with Marcel close behind, \u00a0RotoValue further back, and again 2010 much further back.<br \/>\nNow for the third and final table, this time filling in unforecast players with the average forecast wOBA:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Source<\/th>\n<th>Num<\/th>\n<th>wOBA<\/th>\n<th>MLB<\/th>\n<th>wOBA<\/th>\n<th>StdDev<\/th>\n<th>MAE<\/th>\n<th>RMSE<\/th>\n<\/tr>\n<tr>\n<td>Actual<\/td>\n<td>640<\/td>\n<td>0.3224<\/td>\n<td>640<\/td>\n<td>0.3224<\/td>\n<td>0.0446<\/td>\n<td>0.0000<\/td>\n<td>0.0000<\/td>\n<\/tr>\n<tr>\n<td>Marcel<\/td>\n<td>828<\/td>\n<td>0.3246<\/td>\n<td>640<\/td>\n<td>0.3315<\/td>\n<td>0.0229<\/td>\n<td>0.0285<\/td>\n<td>0.0377<\/td>\n<\/tr>\n<tr>\n<td>Oliver<\/td>\n<td>2090<\/td>\n<td>0.2895<\/td>\n<td>640<\/td>\n<td>0.3272<\/td>\n<td>0.0309<\/td>\n<td>0.0270<\/td>\n<td>0.0361<\/td>\n<\/tr>\n<tr>\n<td>PECOTA<\/td>\n<td>943<\/td>\n<td>0.3089<\/td>\n<td>640<\/td>\n<td>0.3258<\/td>\n<td>0.0276<\/td>\n<td>0.0274<\/td>\n<td>0.0365<\/td>\n<\/tr>\n<tr>\n<td>RotoValue<\/td>\n<td>504<\/td>\n<td>0.3213<\/td>\n<td>640<\/td>\n<td>0.3219<\/td>\n<td>0.0380<\/td>\n<td>0.0330<\/td>\n<td>0.0447<\/td>\n<\/tr>\n<tr>\n<td>Steamer<\/td>\n<td>619<\/td>\n<td>0.3332<\/td>\n<td>640<\/td>\n<td>0.3325<\/td>\n<td>0.0284<\/td>\n<td>0.0277<\/td>\n<td>0.0371<\/td>\n<\/tr>\n<tr>\n<td>2010<\/td>\n<td>616<\/td>\n<td>0.3270<\/td>\n<td>640<\/td>\n<td>0.3261<\/td>\n<td>0.0484<\/td>\n<td>0.0388<\/td>\n<td>0.0531<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Oliver has the lowest RMSE and MAE this time, closely followed by PECOTA, Steamer, and Marcel in that order. Once again RotoValue is further back, with 2010 data even further behind.<br \/>\nI hesitate to crown a &#8220;champion&#8221; as the best projection system, as the differences between the top 4 quite small, enough so that the particular assumptions you use may change the ordering among them. I can confidently say that my own system is not as good as the others, but is still a significant improvement over using 2010 data. It would be interesting to see how systems do over several years.<br \/>\nThis analysis focused on projecting a rate statistic, measuring offensive performance. So systems get no credit for predicting playing time well, although they do get more credit for being closer on players who play a lot than on those who hardly play. Perhaps\u00a0I&#8217;ll try a different method, which should take into account playing time as well.<br \/>\nPlease offer suggestions and feedback in the comments, or you can e-mail me at geoff at rotovalue dot com. If I can get data for other projection systems, I&#8217;ll rerun the analysis with them included. And if you want to do your own analysis of the data I have, I&#8217;ve posted a comma-delimited text file <a href=\"http:\/\/www.rotovalue.com\/2011woba.txt\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Matt Swartz tested several statistics projections against actual 2011 numbers here. He follows the guidelines Tom Tango outlined in this\u00a0post, computing weighted on base average (wOBA) for each player and \u00a0then comparing the actual wOBA to the projection. From the errors on individual players he computed both mean absolute error and root mean square error.&hellip; <a class=\"more-link\" href=\"https:\/\/blog.rotovalue.com\/index.php\/2012\/02\/19\/batting-around-crystal-baseballs\/\">Continue reading <span class=\"screen-reader-text\">Batting Around Crystal Baseballs<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/posts\/247"}],"collection":[{"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/comments?post=247"}],"version-history":[{"count":0,"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/posts\/247\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/media?parent=247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/categories?post=247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rotovalue.com\/index.php\/wp-json\/wp\/v2\/tags?post=247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}