FanPost

Simulating the Lineup

With the lineup voting that's been going on, I've been thinking a lot about how to make the perfect lineup. I come from a technical background, so I thought it might be fun coding up some simulations.

Caveat: This is a work in progress. Right now, I think the results from other simulations is more realistic in terms of overall numbers, but my hope is that this will allow me to have finer control over the input parameters (ie, more than just OBP and SLG). However, the patterns between different lineups should remain intact.

For the players, I took a typical lineup from last year:

Ellsbury 0.298/0.355/0.426

Victorino 0.294/0.351/0.451

Pedroia 0.301/0.372/0.415

Ortiz 0.309/0.395/0.564

Napoli 0.259/0.360/0.482

Gomes 0.247/0.344/0.426

Saltalamacchia 0.273/0.338/0.466

Drew 0.253/0.333/0.443

Middlebrooks 0.227/0.271/0.425

I simulated each plate appearance for each of these players based on their stats from the 2013 season. (For example, Pedroia hit 42 doubles out of 724 PAs last year, so I said his chances of hitting a double were 42/724). I created games based on a sequence of random plate appearances through the lineup, and kept track of the runs scored. I tallied these over 1000 seasons' worth of games for a few different lineups.

To make things easier, I assumed that every baserunner advances the same number of bases on any hit (ie, on a single, everyone advances 1 base). No stealing, or running into an out (yay no GIDPs). I plan on incorporating these stats in as I make this simulation more advanced, but this is where I am now. For now, my run totals are just a bit depressed, but as I said before, the relationships between different lineups is still preserved.

So without further ado, the results.

First, I tried a traditional-style lineup:

Runs/Game: 4.38955555556

Runs/Season: 711.108

Batter Average 162-Game Season

Ellsbury 0.296/0.354/0.423 (39 2B, 10 3B, 11 HR) 51 RBI, 87 Runs. 815 PAs.

Victorino 0.286/0.343/0.439 (38 2B, 3 3B, 22 HR) 67 RBI, 87 Runs. 796 PAs.

Pedroia 0.298/0.372/0.410 (44 2B, 2 3B, 9 HR) 52 RBI, 79 Runs. 778 PAs.

Ortiz 0.306/0.395/0.558 (48 2B, 2 3B, 37 HR) 113 RBI, 98 Runs. 760 PAs.

Napoli 0.258/0.360/0.480 (48 2B, 2 3B, 29 HR) 102 RBI, 82 Runs. 743 PAs.

Gomes 0.242/0.344/0.418 (33 2B, 0 3B, 25 HR) 87 RBI, 74 Runs. 726 PAs.

Saltalamacchia 0.272/0.339/0.464 (60 2B, 0 3B, 21 HR) 81 RBI, 69 Runs. 708 PAs.

Drew 0.250/0.333/0.437 (39 2B, 11 3B, 17 HR) 74 RBI, 65 Runs. 691 PAs.

Middlebrooks 0.224/0.270/0.418 (32 2B, 0 3B, 30 HR) 80 RBI, 65 Runs. 673 PAs.

Nothing too shocking here. I began drooling over what a full season from WMB could look like if only he had a bit better plate discipline.

Next, I tried going in order of OBP.

Runs/Game: 4.383

Runs/Season: 710.046

Batter Average 162-Game Season

Ortiz 0.306/0.395/0.559 (51 2B, 2 3B, 40 HR) 93 RBI, 113 Runs. 815 PAs.

Pedroia 0.297/0.371/0.410 (46 2B, 2 3B, 9 HR) 49 RBI, 79 Runs. 798 PAs.

Napoli 0.258/0.359/0.480 (51 2B, 2 3B, 31 HR) 91 RBI, 85 Runs. 780 PAs.

Ellsbury 0.297/0.355/0.425 (37 2B, 9 3B, 10 HR) 67 RBI, 68 Runs. 762 PAs.

Victorino 0.287/0.345/0.440 (36 2B, 2 3B, 20 HR) 86 RBI, 73 Runs. 744 PAs.

Gomes 0.242/0.343/0.418 (33 2B, 0 3B, 25 HR) 86 RBI, 75 Runs. 726 PAs.

Saltalamacchia 0.271/0.338/0.463 (60 2B, 0 3B, 21 HR) 79 RBI, 73 Runs. 708 PAs.

Drew 0.251/0.333/0.440 (39 2B, 11 3B, 17 HR) 73 RBI, 70 Runs. 691 PAs.

Middlebrooks 0.225/0.271/0.423 (32 2B, 0 3B, 30 HR) 82 RBI, 70 Runs. 673 PAs.

Nothing too surprising. I doubt the slightly smaller run total is statistically significant. Ortiz is a beast for being able to rack up 93 RBI from the leadoff spot.

Just to test my simulation, I tried going in reverse OBP.

Runs/Game: 4.32909876543

Runs/Season: 701.314

Batter Average 162-Game Season

Middlebrooks 0.225/0.270/0.421 (39 2B, 0 3B, 37 HR) 92 RBI, 84 Runs. 815 PAs.

Drew 0.251/0.333/0.439 (46 2B, 12 3B, 20 HR) 70 RBI, 80 Runs. 794 PAs.

Saltalamacchia 0.272/0.339/0.464 (66 2B, 0 3B, 23 HR) 76 RBI, 76 Runs. 776 PAs.

Gomes 0.242/0.343/0.420 (35 2B, 0 3B, 27 HR) 76 RBI, 80 Runs. 757 PAs.

Victorino 0.286/0.343/0.439 (36 2B, 2 3B, 20 HR) 71 RBI, 77 Runs. 738 PAs.

Ellsbury 0.296/0.354/0.424 (35 2B, 9 3B, 10 HR) 60 RBI, 70 Runs. 721 PAs.

Napoli 0.260/0.361/0.482 (46 2B, 2 3B, 28 HR) 88 RBI, 80 Runs. 704 PAs.

Pedroia 0.297/0.371/0.409 (39 2B, 1 3B, 8 HR) 56 RBI, 67 Runs. 686 PAs.

Ortiz 0.306/0.395/0.559 (42 2B, 2 3B, 33 HR) 107 RBI, 83 Runs. 669 PAs.

Why anyone would bat Ortiz last is beyond me. What most surprised me is how small the difference was between this lineup and the one before it. 9 runs over the course of 1000 averaged seasons is significant, but 9 runs isn't gonna cost you that many wins.

Next I tried in order of slugging percentage.

Runs/Game: 4.39293209877

Runs/Season: 711.655

Batter Average 162-Game Season

Ortiz 0.306/0.395/0.559 (51 2B, 2 3B, 40 HR) 101 RBI, 115 Runs. 815 PAs.

Napoli 0.259/0.360/0.482 (52 2B, 2 3B, 31 HR) 90 RBI, 93 Runs. 798 PAs.

Saltalamacchia 0.272/0.338/0.465 (66 2B, 0 3B, 23 HR) 83 RBI, 76 Runs. 780 PAs.

Victorino 0.287/0.344/0.440 (37 2B, 2 3B, 21 HR) 79 RBI, 73 Runs. 761 PAs.

Drew 0.251/0.334/0.439 (43 2B, 11 3B, 19 HR) 82 RBI, 71 Runs. 743 PAs.

Ellsbury 0.295/0.354/0.423 (35 2B, 9 3B, 10 HR) 66 RBI, 66 Runs. 725 PAs.

Gomes 0.243/0.344/0.420 (32 2B, 0 3B, 25 HR) 78 RBI, 74 Runs. 707 PAs.

Middlebrooks 0.224/0.270/0.419 (33 2B, 0 3B, 31 HR) 82 RBI, 69 Runs. 690 PAs.

Pedroia 0.298/0.371/0.411 (38 2B, 1 3B, 8 HR) 47 RBI, 71 Runs. 670 PAs.

Looks pretty good. Probably not any better or worse than the traditional lineup or the one by OBP, statistically speaking. Again, Ortiz rocks the leadoff spot.

And for completeness's sake, reverse SLG:

Runs/Game: 4.33780246914

Runs/Season: 702.724

Batter Average 162-Game Season

Pedroia 0.298/0.372/0.410 (47 2B, 2 3B, 10 HR) 56 RBI, 79 Runs. 815 PAs.

Middlebrooks 0.225/0.271/0.421 (38 2B, 0 3B, 36 HR) 93 RBI, 78 Runs. 798 PAs.

Gomes 0.243/0.345/0.421 (36 2B, 0 3B, 27 HR) 75 RBI, 79 Runs. 777 PAs.

Ellsbury 0.297/0.355/0.426 (37 2B, 9 3B, 10 HR) 60 RBI, 72 Runs. 759 PAs.

Drew 0.251/0.333/0.439 (42 2B, 11 3B, 19 HR) 80 RBI, 77 Runs. 741 PAs.

Victorino 0.287/0.344/0.440 (35 2B, 2 3B, 20 HR) 76 RBI, 76 Runs. 723 PAs.

Saltalamacchia 0.271/0.338/0.462 (59 2B, 0 3B, 20 HR) 76 RBI, 76 Runs. 705 PAs.

Napoli 0.258/0.360/0.482 (45 2B, 2 3B, 27 HR) 85 RBI, 80 Runs. 687 PAs.

Ortiz 0.306/0.395/0.558 (42 2B, 2 3B, 33 HR) 98 RBI, 82 Runs. 670 PAs.

Again, statistically significantly worse than an ideal lineup, but not by much.

So there you have it. I realize that this isn't anything entirely new or revolutionary, but I like the finer grain control I have over the simulation, and I like being able to see specific stats from specific lineup positions (like how Ortiz would do batting last. What a boss!).

I plan on tweaking this to make it more realistic. I'm losing about a run per game, mostly due to the fact that I'm not awarding extra bases to baserunners when the ball is hit. I'm also really curious what happens once I put Ellsbury on the basepaths and have him steal.

Anyways, that's it for now.

X
Log In Sign Up

forgot?
Log In Sign Up

Please choose a new SB Nation username and password

As part of the new SB Nation launch, prior users will need to choose a permanent username, along with a new password.

Your username will be used to login to SB Nation going forward.

I already have a Vox Media account!

Verify Vox Media account

Please login to your Vox Media account. This account will be linked to your previously existing Eater account.

Please choose a new SB Nation username and password

As part of the new SB Nation launch, prior MT authors will need to choose a new username and password.

Your username will be used to login to SB Nation going forward.

Forgot password?

We'll email you a reset link.

If you signed up using a 3rd party account like Facebook or Twitter, please login with it instead.

Forgot password?

Try another email?

Almost done,

By becoming a registered user, you are also agreeing to our Terms and confirming that you have read our Privacy Policy.

Join Over the Monster

You must be a member of Over the Monster to participate.

We have our own Community Guidelines at Over the Monster. You should read them.

Join Over the Monster

You must be a member of Over the Monster to participate.

We have our own Community Guidelines at Over the Monster. You should read them.

Spinner.vc97ec6e

Authenticating

Great!

Choose an available username to complete sign up.

In order to provide our users with a better overall experience, we ask for more information from Facebook when using it to login so that we can learn more about our audience and provide you with the best possible experience. We do not store specific user data and the sharing of it is not required to login with Facebook.

tracking_pixel_9351_tracker