DFS: Finding Value in Slumping Hitters (Fantasy Baseball)
If you want to dive deeper into fantasy baseball, be sure to check out our award-winning slate of Fantasy Baseball Tools as you navigate your season. From our Lineup Assistant – which provides your optimal lineup, based on accurate consensus projections – to our Trade Analyzer – that allows you to instantly find out if a trade offer benefits you or your opponent – we’ve got you covered this fantasy baseball season.
When you get to the nuts and bolts of the game, Daily Fantasy Sports (DFS) is all about the price tags. DFS sites out there have pretty involved pricing algorithms that take into account most of the environmental factors that you may be considering when selecting players. It is no longer as simple as just selecting the players that are in the best spot to succeed; you have to weigh everything against the price you are paying. While this makes the game a bit tougher, it also simplifies it in some ways and gives an edge to the players who are more sensitive to price tags.
In MLB, a player’s price can be influenced by his recent production. In fact, we see this to be true when we plot salary progression against a player’s average points for his last five games:
You can see in these plots that the blue line seems to follow the pattern of the orange line with a day or two lag. When a player’s average points over his last five games spike, his salary will typically spike shortly thereafter – one way or another.
Now that we have somewhat proven this relationship, what can we do about it? We can only really take advantage of this pricing pattern if we know that a player’s recent production does not really affect his short-term future production. There is no denying that there are hot and cold streaks in baseball, but the more interesting question is if those streaks affect the next few games for a player. If they do not seem to make a difference, we can get a bit of an edge by buying into slumping players and taking advantage of that price discount.
I set off to look into the question in this manner.
First, I compiled a data set of every player in the league’s daily DraftKings points totals and their salary for every single day of the 2019 season.
Second, for each day of the season, I found what that player’s average DK score over the last five games and next five games was.
Third, I compared both of those numbers to the player’s overall season average score, and put each resulting number from both categories (last five games average score and next five games average score) into a list to compare together.
Fourth, I found the correlation coefficient between the two lists.
Say it’s July 1st, and Mike Trout is on a heater. He has averaged 15 DraftKings points per game over his last five. We subtract his season average (about nine points per game) from that average (six points) and add it to a list. Since we know what the average of his next five games will be in this case, we can check to see if that increased production (+6 points) will influence his next five games by seeing what he averaged in those next five games compared to that season average. In this individual case (one player on one day of the season), it doesn’t matter what the result is. It is far too small of a sample to draw any conclusions.
However, once we do this for every single player (I used only players that got 100 plate appearances or more) for every single day of the season, we end up with a huge sample of data (38,608 data points to be exact) that will tell us the truth.
After compiling both extremely long lists, I checked the correlation coefficient of the two lists. The correlation coefficient will give you a number between -1 and +1. The closer the number is to +1, the higher the positive correlation (meaning that as one variable goes up, the other variable will tend to go up as well). The closer the number is to -1, the higher the negative correlation (as one variable goes down, so will the other). The closer the number is to 0, the lower the correlation. Any number coming in between say -0.3 and 0.3 shows a very weak correlation – meaning the lists are not related. Randomness ensues.
This entire post and all of the coding work I did boils down to a single number. That number is –0.04. No correlation whatsoever. We see this same result when using longer lag numbers (such as looking at last and next ten games instead of five).
To further test, I sliced the two lists 10,000 different times and checked correlations among different subsections of the list just to see if narrowing the data down provides any correlation. This means I tested groups of players randomly to see if any correlations appeared, but none did. The highest number I could find anywhere was a 0.17, still nothing near a real correlation.
All of this is to say that a player’s recent performance does not predict anything about his future performance by itself. If a player is red hot in his last five games, he is no more likely to have a higher than average output in his next five games than during any other time during the season.
I am not sure if I have done the best job at explaining what I did in this analysis, so I will give another specific example. Here is a ten-game stretch from Mike Trout last year:
You can see the “Last5” column there gives you the average of his last five DK scores, the “Last5_v_avg” column subtracts his season average DK points from that number. On May 25th, you can see that last five games average bottomed out at just 7.2 points (he had scored 4, 6, 0, 14, and 7 points in his last five contests). There was a drastic price drop here as well, as his salary came down to a season-low $4,800.
On that day, DFS players should have been asking themselves: is today’s version of Mike Trout really worth this much less than normal just because he has been struggling in the last handful of games?
Given the benefit of hindsight, we can see that he picked up the production quite a bit in his next five games, averaging 11.7 points over those next five in that span.
To illustrate this even further, we can check to see if players average more points when their salaries are higher. If they do, that would be evidence that recent production has an affect on short term future production. If Trout scores more points when he is hot (and/or in a good matchup) and priced at $5,700 than when is cold (and/or in a bad matchup) and priced at $5,300 – that would suggest that there is something to the correlation between last x games and next x games.
I looped through every player that had 100 or more plate appearances last year and compared their average score at each price point to their overall average point production to see if a price boost predicts a points boost. The results were pretty interesting:
|DK Points Delta||-0.677||0.374||-0.054||-0.390||-0.367||-0.189||0.006||-0.153||-0.124||0.140||-0.151|
|DK Points Delta||0.087||0.047||0.175||0.057||-0.073||0.369||0.450||0.274||-0.244||0.218|
When players were priced $1,000 above their average, they actually averaged 0.68 DraftKings points below their season average. It is pretty rare for a player to be priced that far above the average, so it’s probably a relatively small sample size to get that number. However, you can see that there is really no consistency to the table, and salary does not seem to have anything to do with points scored on the individual play basis.
The conclusion here is very simple: buy into hitters when their salaries are depressed because of poor recent performance. Of course, opposing pitcher matters too – we aren’t talking about that here. If Trout was in a slump and his price came down $1,000 but he was also facing Gerrit Cole that day, that’s a different story. You might still not want to pay that price. However, if the price drop is mainly about a bad stretch of games a player is having, buying into that player at the discount is a very profitable strategy.
The reverse is also true. It is a good idea to avoid hitters that have seen their salary climb because of a recent surge in production.
If you have any further questions or want to see the Python code I used to do this analysis, hit me up on Twitter!