Thursday, February 21, 2019

CBS: Predicting Pitcher Performance -- A Fool's Errand?


This post was an initial pass at digging into predicting pitching performance. The full enhanced version is on CBS: https://www.cbssports.com/fantasy/baseball/news/fantasy-baseball-draft-prep-how-much-can-pitching-projections-tell-us/

__________________________________________

Recently, there's been a lot of chatter on Twitter about the value of projections. They're certainly far from perfect -- the creators would admit as much -- but they're among the best we've got.

Many anti-projection arguments tend to put more weight into past stats than we should. Go dig up Kyle Freeland argument threads on Twitter if you don't believe me.

So what should we be using? Just projections? A combination of both?

To find out, let's starting with appreciating how wildly stats can fluctuate year-to-year, particularly those that many fantasy gamers play for in traditional 5x5 leagues.

To quantify this, here are the r-squared figures between the metric in one season ("season Y") and itself in the following season ("season Y+1"). This is using 1,114 player seasons from 2007 to 2018 for the traditional four starting pitching categories (excluded saves) (min. 150 innings pitched in each season):

Metric R^2
K 0.526
WHIP 0.208
IP 0.155
ERA 0.108
W 0.045

Basically, outside of strikeouts and maybe WHIP, previous season stats are terrible at predicting future performance in those areas. I also included innings given it's a key driver of performance, for strikeouts and wins, in particular. On the whole, the relationship between these stats year-to-year is weak

Now, let's see if projections fared any better -- taking an average of Steamer, Depth Charts, THE BAT and ZiPS for 2018 starting pitchers only (those who were projected for at least 75 innings by all systems):

Metric R^2         Diff
K 0.282 -46%
WHIP 0.238 14%
ERA 0.223 107%
W 0.188 316%
IP 0.113 -27%

That's a surprising mixed bag, BUT projections did fare significantly better in measuring talent -- that is, ERA and WHIP. They were much worse at estimating projected innings, a big factor in their worse projection of strikeouts. The giant surprise was projections outperforming previous year's stats in wins by a multiple of 3x, despite being nearly 30% worse at projecting innings. That goes to show how volatile -- and, dare I say, useless -- wins can be at measuring a pitcher's talent. The damn things fluctuate wildly each season!

For those volume stats -- strikeouts and wins -- what if we stripped away the innings projection and assessed the differing abilities to project future performance on a rate basis instead? Let's take a look at how the previous season and projections fared at predicting future strikeout and win rates:

Metric Season Y         Proj.
K/9 0.615 0.470
W/IP 0.017 0.134
W/GS 0.042 0.169

Hey, not bad! Our ability to project strikeouts per inning (or K/9 in this case) is anywhere from roughly 17-66% better than our ability to project raw strikeouts. Wins didn't fare the same -- somehow wins per inning and wins per game started are less sticky than raw wins. Oddly, when excluding ZiPS, projections actually predict W/GS roughly 5% better than raw wins. I'm not sure what's going on with ZiPS, but I'd rather not waste too much time with wins.

Okay, so far we've seen a mixed bag, but I'd argue this is a big win for projections. They are much better at predicting future ERA and WHIP than their previous, often-cited stats. They're also significantly better at predicting wins. If you must use previous season's stats, it appears the best place to do so would be with strikeouts (K/9 or K%) and potentially innings.

Let's wrap this up by assessing what are the best metrics to use when predicting the four primary "roto" starting pitching categories. 

ERA

Metric R^2
Proj. 0.223
SIERA 0.193
xFIP 0.183
K-BB% 0.176
FIP 0.174
K% 0.167
ACES 0.164

WHIP

Metric R^2
K-BB% 0.294
SIERA 0.251
Proj. 0.238
K% 0.218
xFIP 0.213
WHIP 0.208
ACES 0.205
FIP 0.200

STRIKEOUTS (K%)

Metric R^2
K% 0.615
K-BB% 0.514
Proj. 0.470
SwStr% 0.464
Contact% 0.456
SIERA 0.360
Z-Contact% 0.343
ACES 0.337

WINS

Metric R^2
Proj. 0.188
FIP 0.104
SIERA 0.100
xFIP 0.094
K 0.093
K-BB% 0.088
K% 0.074

INNINGS

Metric R^2
IP 0.155
TBF 0.121
Proj. 0.113
Pitches 0.103

LEAGUE-WINNING TAKEAWAYS

This piece wouldn't be complete without mentioning this -- projection testing is based on one season. I'd love to test multiple years -- similar to the actual stats -- but that will be for a different day. Additionally, we didn't even mention the new Statcast data -- "expected" stats, exit velocities, etc. That will also be for a different day. We could find a near infinite amount of metrics to test, but this should get us most of the way there.

With those caveats out of the way, how should we apply this information? 
  • Projections absolutely need to be used versus the actual stat itself from previous seasons, particularly for ERA, WHIP and wins
  • When evaluating pitchers, bet on strikeouts -- among traditional 5x5 categories, that's the category that we're far-and-away best equipped to predict
  • Use an array of metrics when evaluating and projecting pitchers: projections, ERA estimators (SIERA, DRA - not tested here, xFIP, FIP), K-BB%, K% and ACES.
  • Here's what I'll be looking at to assess and predict a pitcher's performance across the various categories:
    • ERA: Nearly all of the above -- projected ERA, ERA estimators, K-BB%, K% and ACES 
    • WHIP: K-BB%, projected WHIP, SIERA
    • Strikeouts: K%, K-BB%, projected K% or K/9
    • Wins: Projected wins
    • Innings: Previous season's IP/TBF and projected IP
There you have it -- the best tools we have to project pitchers. When the hitting portion of this series is complete, we'll come to see that hitters are more projectable than pitchers. Hopefully this analysis gives you the edge so you know what to look at -- and what not to look at -- while your competitors are poking around in the wrong places.

A NOTE ON SECOND HALF SPLITS

Read enough fantasy analysis and you're sure to come across someone citing second half splits. Maybe there's good reason for it -- injury, change in talent, etc. But more often than not, it's a case of recency bias.

I tested this using data from FanGraphs for starting pitchers who threw at least 30 second-half innings and then 150 innings the next season. I looked at the r-squared between their second half numbers in season one to the same stats in the full season two.

In essentially every case, you're significantly better off using the full season numbers over the cherry-picked second half numbers when the pitcher "figured it out." Outside of relatively obvious cases like injuries, I'd rather bet on the averages (i.e., full season numbers) while others try and find the outliers.

R-Squared of Full Season vs. 2nd Half Numbers

Metric Full 2nd Half Diff
IP 0.155 0.129 20%
TBF 0.129 0.121 6%
HR/9 0.163 0.086 90%
K% 0.615 0.553 11%
BB% 0.455 0.346 31%
K-BB% 0.553 0.469 18%
WHIP 0.208 0.135 54%
BABIP 0.039 0.031 27%
LOB% 0.025 0.018 38%
FIP 0.312 0.213 46%
xFIP 0.444 0.389 14%
LD% 0.027 0.021 27%
GB% 0.627 0.585 7%
FB% 0.617 0.581 6%
Soft% 0.006 0.010 -42%
Med% 0.065 0.023 183%
Hard% 0.067 0.034 97%
ERA 0.108 0.063 70%

Year-to-Year Stickiness

For reference, I've also included the year-to-year stickiness of all metrics I tested. This is measuring the year-to-year relationship with the metric in one season with itself in the next season.

Metric R^2
ACES 0.764
GB% 0.627
SwStr% 0.622
FB% 0.617
K% 0.615
K/9 0.615
Contact% 0.608
O-Contact% 0.556
Z-Contact% 0.554
K-BB% 0.553
Ks 0.526
O-Swing% 0.501
BB% 0.455
SIERA 0.455
xFIP 0.444
Z-Swing% 0.433
FIP 0.312
WHIP 0.208
HR/9 0.163
IP 0.155
Pitches 0.148
TBF 0.129
HR/FB 0.111
ERA 0.108
Hard% 0.067
Med% 0.065
W 0.045
BABIP 0.039
LD% 0.027
LOB% 0.025
GS 0.018
Soft% 0.006
G 0.003

Aaron Sauceda Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

CBS/SportsLine: Using ACES to Find Pitching Sleeper in Reserves Drafts


I leveraged my new ACES metric to identify 32 pitchers that could be "sleepers" this upcoming season based on the following criteria:

1. Available after pick 200 by NFBC ADP
2. Top third percentile by ACES
3. Wide depth of arsenal (i.e., three pitches thrown 10%+ of the time)
4. Projected ERA by both Steamer and THE BAT below 4.75 to significantly reduce "sucking risk"

I wrote up five (plus bonuses!) for CBS: https://www.cbssports.com/fantasy/baseball/news/fantasy-baseball-five-pitching-sleepers-plus-a-few-more-using-aces/

The full list of 32 is on SportsLine: https://www.sportsline.com/insiders/50671450/fantasy-baseball-32-pitching-sleepers-to-consider-on-draft-day/

Aaron Sauceda Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

CBS/SportsLine: Introducing ACES, A New Measure for Identifying Pitching Sleepers


I started contributing to CBS and SportsLine for this 2019 fantasy baseball season.

My inaugural post was about the new ACES metric I devised -- leveraging previous arsenal score work -- to identify the best pitchers looking only at their "stuff" (velocity, movement and command).

Despite it being only a two-season sample, the results were very promising -- ACES is among the stickiest metric I've seen and competitively predicts future ERA in line with projections and ERA estimators, and better than ERA itself.

Check out the full post on CBS for the free, public overview: https://www.cbssports.com/fantasy/baseball/news/fantasy-baseball-introducing-aces-a-new-way-to-find-sleepers-busts-at-pitcher/

The full post on SportsLine is behind a paywall and includes the full ACES leaderboard for 2017 and 2018: https://www.sportsline.com/insiders/50642112/fantasy-baseball-aces-results-for-2018/
Aaron Sauceda Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

Saturday, February 16, 2019

Roto Pope Podcast: Smorgasbord Du Jour: McBae No More, Lakers Tricking and More!



Sean Burch (@seanb44) and Aaron Sauceda (@RotoPope) discuss the finale of the NFL season, NBA trade deadline and a "taste" of baseball in the latest episode of the Roto Pope Podcast:
  • Baseball season is approaching, what do we have in the works?
  • Do Rams' Super Bowl woes make Sean McVay a fraud? (Of course it doesn't, but he was out-coached and missed key adjustments)
  • Mike Francesa isn't completely on bath salts regarding Tom Brady and Joe Montana?
  • Did the Lakers completely botch the trade deadline? 
  • Who won the NBA trade deadline? Are the Bucks the favorites in the East?
  • Our top 10 "Curb Your Enthusiasm" episodes countdown! We discuss #6 in this episode
Aaron Sauceda Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.

Saturday, January 5, 2019

Roto Pope Podcast: Closing the Book on 2018, Looking Ahead in 2019



Sean Burch (@seanb44) and Aaron Sauceda (@RotoPope) discuss the NFL season for the latest episode of the Roto Pope Podcast:


  • Recent holiday musings and New Years Eve assessment 
  • Shoe purchase debates 
  • Aaron's 2018 fantasy football recap, including a championship 
  • 2018 fantasy football MVPs and LVPs 
  • Projected top 5 picks for 2019 
  • Aaron's 3-pronged approach for 2019 
  • NFL Playoffs - Sean's wild card weekend gambling picks 
  • Revisiting Super Bowl picks Super Bowl gambling values (Pour one out for the 'Hawks) 
  • Top 10 Curb Your Enthusiasm countdown! Our #7 episodes
Aaron Sauceda Web Developer

Morbi aliquam fringilla nisl. Pellentesque eleifend condimentum tellus, vel vulputate tortor malesuada sit amet. Aliquam vel vestibulum metus. Aenean ut mi aucto.