Drafting Batters in Fantasy Baseball, Part 2



Where were we?

If you’re reading about my fantasy baseball experience for the first time, welcome! You may be better oriented by reading this post first.

In the previous post, I wrote about my draft strategy using WAR, and how I selected a catcher (Buster Posey), in the second round, and a shortstop (Andrelton Simmons), in the fourth round. In this post, I go a little deeper into those two decisions, and I explore fantasy talent by defensive position.

Positions for feast or famine

I chose to draft Posey and Simmons in the early rounds because my baseball intuition tells me that strong offensive catchers and shortstops are in short supply. Because of this, I wanted to fill those positions right away. I looked into whether the data bears that out, and these plots suggest that my intuition was correct. Let’s look at them one by one.

ggplot(batters, aes(position, HR, fill = position)) + 
  geom_violin() + 
  scale_fill_manual(values = wes_palette("FantasticFox1", 6, type = "continuous")) +
  theme_bw() + 
  theme(legend.position="none") + 
  scale_y_continuous(limits = c(0, 60), expand = c(0, 0))

This is a violin plot. The width of each column indicates how many players in that position are projected to hit the number of home runs indicated on the y-axis. For instance, there are plenty of catchers projected to hit 5 homeruns or fewer, indicated by the width of the violin at the bottom, below the 5 on the y-axis. There are few catchers projected to hit 25+ home runs, indicated by the narrowing of the violin at the top. Shortstops and second basemen also seem to have a similar distribution, though the violins for these positions are considerably narrower at the bottom compared to the violin for catchers. More second basemen and shortstops are projected to hit more homeruns than most catchers, but not nearly as many as those playing first base, third base, or outfield positions.

ggplot(batters, aes(position, R, fill = position)) + 
  geom_violin() + 
  scale_fill_manual(values = wes_palette("FantasticFox1", 6, type = "continuous")) +
  theme_bw() + 
  theme(legend.position="none") + 
  scale_y_continuous(limits = c(0, 125), expand = c(0, 0))

Now looking at runs scored, we see that catchers are still bringing up the rear. All other positions have violins that more closely resemble each other, but we see that a few star outfielders are projected to score more runs than any other position. No catchers, second basemen or shortstops are projected to score 100 runs, whereas there are a few outfielders, first basemen, and third basemen who are projected to break through and score 100 or more runs.

ggplot(batters, aes(position, RBI, fill = position)) + 
  geom_violin() + 
  scale_fill_manual(values = wes_palette("FantasticFox1", 6, type = "continuous")) +
  theme_bw() + 
  theme(legend.position="none") + 
  scale_y_continuous(limits = c(0, 150), expand = c(0, 0))

Finally, let’s look at RBIs. We see again that catchers are really not pulling their weight, and that a few star outfielders are projected to bring in over 100 runs. No second baseman is projected to bring in over 100 runs, whereas first basemen, shortstops, and third basemen are all projected to bring in over 100 runs, and their maximum projections are pretty close.

In summary, it looks like outfielders, first basemen, and third basemen are projected to contribute heavily to runs, homeruns, and RBIs, whereas catchers, shortstops and second basemen are projected to contribute less. My intuition was right on about the shortage of offense in those positions. However, perhaps drafting from stronger offensive positions in the early rounds would make sense too. After drafting Betts (OF), my next outfielder was in round 12. I left a lot of offense on the table. That’s a potential strategy to look into for next year.

Let’s go back to the idea of drafting from positions with a shortage of offense. From a scarcity point of view, it makes sense, since every team needs to have at least one catcher and one shortstop. Given that, maybe it was reasonable that I ended up with Posey and Simmons. It’s unfair to compare catchers and shortstops to outfielders I could have picked up in the early stages. Maybe Posey and Simmons represent the best offensive talent at their position, given what was available at the time. Maybe.

Should I invest in a time machine?

So this is where I start to beat myself up a little bit. Did I really make the best decision at the time, given my logic? Now that I’m able to take my time and reflect, I know that WAR isn’t a great way to select players. But given what I knew, was it reasonable to pick Posey as a catcher in the second round?

Let’s look at all the other catchers with high WAR, and see who else comes up.

batters %>% 
  filter(position == 'catcher' & WAR > 3) %>%
  select(Name, position, R, HR, RBI, OPS, SO, SB) %>%
  knitr::kable()
Name position R HR RBI OPS SO SB
Gary Sanchez catcher 72 31 90 0.842 115 3
Buster Posey catcher 64 14 69 0.821 62 4

Even using WAR as a metric to guide decisions, I might have been better off picking up Gary Sanchez for his overall projected offensive numbers. His strikeouts are a problem, but I could take wins in three categories for a loss in one. He was available at this point in the draft, but I chose Posey instead.

What about for shortstops?

batters %>% 
  filter(position == 'short' & WAR > 3) %>%
  select(Name, position, R, HR, RBI, OPS, SO, SB) %>%
  knitr::kable()
Name position R HR RBI OPS SO SB
Carlos Correa short 96 30 113 0.894 121 8
Corey Seager short 89 24 87 0.853 120 4
Francisco Lindor short 92 24 83 0.842 84 15
Trea Turner short 89 16 66 0.793 119 49
Xander Bogaerts short 86 15 75 0.789 110 11
Zack Cozart short 73 18 68 0.746 94 4
Brandon Crawford short 67 17 82 0.742 127 5
Andrelton Simmons short 70 11 67 0.710 64 13

Correa, Seager, Lindor and Turner were all drafted before my pick in the fourth round. This leaves me with Bogaerts. Based on the projections, he and Simmons were not that different, so I suppose this wasn’t a totally poor choice. The other two, Cozart and Crawford, weren’t really upgrades, either.

So, given what I knew at the time, Simmons was not a bad pick. Posey, however, was not the smartest choice. As a Giants fan playing her first season of fantasy baseball, I know it would have killed me a little inside if someone else had picked him up before I did. My fandom caused me to make a bad decision in the second round of the draft. It’s a good reminder to keep fandom out of fantasy baseball (or at least use the stats to support your bias).

Up next

In the next post, I’ll discuss another strategy that would have been less stressful, and more geared toward my specific league goals. Stay tuned!



Drafting Batters in Fantasy Baseball, Part 3