This is the 2nd part of a two-part article. We’re exploring a couple questions posed on the Bill James Online site:
Is it possible to calculate an expected number of 1-run games for a team in a season? The reason I ask is that the Mets played in 66 1-run games this year, 40.7% of their games. That seems like a whopping big number . . . but is it?
Asked by: kgh
It's a very large number, but I wouldn't know how to calculate an expected number. I don't even know what the variables would be. I suppose one-run games are slightly more common among teams which are near .500, and obviously they would be significantly more common in a low-run environment than in a high-run environment.
I built a dataset to answer those questions and a few more that popped up along the way. In Part 1, I focused on some Top 5 lists, such as the teams that played the most one-run games, or that won the most combined one-run and extra-inning games.
Now let’s move on to the meatier question.
Is it possible to calculate an expected number of 1-run games for a team in a season?
We can do a fairly decent job, depending on your definition of “fairly decent”. Many of you have better math and analysis chops than me. You might be able to get closer.
I took all 2,542 teams and put them into groups based on both winning percentage and run environment, as proposed by Bill James. Following Bill’s lead is a good idea.
I put teams in 5 roughly equal groups according to their winning percentages and labeled them: “terrible”, “poor”, “average”, “good”, and “great”. Don’t get hung up on whether or not some of the “great” teams are really “good”, or the “poor” teams were actually “terrible”. That’s not the point. They’re just labels, so we can easily name and distinguish the groups. I used an odd number of groups to ensure there was a central segment that we could call “average”, hovering around .500, to test Bill’s assertion that teams around .500 would be expected to play more one-run games.
Winning percentage ranges:
|Group||# Teams||Min WPct (Wins per 162)||Max WPct (Wins per 162)|
|Terrible||500||.235 (38)||.426 (69)|
|Poor||507||.427 (69)||.480 (78)|
|Average||524||.481 (78)||.526 (85)|
|Good||503||.527 (85)||.571 (92)|
|Great||508||.572 (93)||.763 (124)|
I calculated the runs per 9 innings (R9) for every team/season. This is the total runs scored by the team and their opponents. One could use separate run environments for home and road games. I opted not to do so in this case, thinking the benefit was not worth the effort or complication. As you’ll see, the impact of the run environment on one-run games is clear-cut. Then, I put teams in 5 roughly equal groups: “lowest” run environment, “low”, “average”, “high”, and “highest”. I wanted to match the number of groups used for the winning percentage side of the analysis.
Run environment ranges:
|Group||# Teams||Min Runs Per 9 Innings||Max Runs Per 9 Innings|
|Lowest||507||5.86 (1908 Brooklyn)||7.96|
|Highest||505||9.78||13.91 (1930 Phillies)|
Given those 2 variables, I arranged all the teams into a 2-dimensional matrix (think “magic quadrant”, but 5 x 5), like “Terrible/Lowest” and “Great/Highest”. Groups had a minimum of 86 teams (Terrible/Low and Good/Highest) and a maximum of 130 (Average/Average). Then I took the median percentage of extra-inning and one-run games (Xand1) for each group and sorted from most to least.
And how did that work? Pretty well, but not the way I thought or hoped (probably naively) it would. The sorted list ended up in exact order by R9 – the lowest R9 group had the most Xand1 games, then the low R9 group, the average, the high, then the highest. Within those groupings, the WPct groups varied quite a bit. In the lowest R9 group, the WPct group followed the pattern I expected going in: average, poor, good, terrible, great. The average WPct group wasn’t in the top for any other R9 group and was actually last for the high R9 and highest R9 groups. That made it clear that the primary factor is the run environment. I hoped it would allow some formula like 3 x R9 + 1 x WPct.
To salvage something from that, I simply took the median percentage of games for each group and used that rate for each team to estimate their Xand1 games. Doing that resulted in a net error for the entire dataset of 30 games fewer than actual, with an average gross error of 5 games in either direction.
Of the 2,542 team seasons in the dataset, this model is exactly right on 163 of them (6.4%) and within plus or minus 5 games on 1,587 (62.4%).
Seeing that the run environment influence was stronger than the winning percentage, I built a second model using only that. Using the same groupings (lowest to highest R9) as before, I mapped the Xand1 percentages. This yielded a straightish line:
Thinking that more groups might be better, I divided the teams into R9 deciles. This gave the same basic results, ordered from lowest R9 to highest and giving a mostly straight line again:
Straight lines I could deal with. Applying some fundamental algebra, I arrived at the formula:
Expected Xand1 percentage = 0.523 – (.0228 * R9)
Applying this formula to the dataset gave very similar results with a net error for all teams of 15 games fewer than actual and a gross error per team of plus or minus 5. This model hits the exact number of Xand1 games for 173 teams (6.8%) and is within 5 games for 1,563 (61.5%).
Given how close the results are and the simplicity of a single-variable formula, I prefer this second model.
How to improve the models
This is an easy one: learn more modeling techniques. I’m sure you could build a linear regression model or something and arrive at better results with less manual work. I’m retiring from my day job next year and hope to spend time improving my skills. Maybe I’ll return to this data as I build my technical skills.
How do our models do at projecting the 2021 Mets?
The 2021 Mets scored 636 runs and allowed 668 in 162 games. They pitched 1,379.1 innings or 4,138 outs. They made 4,173 outs (1,391 IP for opponents). That yields 8.473 R9. Plugging that into our Model 2 formula: 0.523 – (0.0228 x 8.473) = .3295 = 33% of 162 = 53 Xand1 games.
They fit into the Poor/Low category for Model 1. Looking that up in our table, they’d be expected to have 33.9% of their games tied or within 1 run at the end of regulation, which is 55 games.
The Mets actually played 71 such games in 2021. That’s a pretty big error. The original poster, Kevin, was definitely on to something. The Mets did play an unusual number of one-run and extra-inning games. By Model 2, that’s an error of 18 games, tied for 18th most all-time. By Model 2, the error is 16 games, which is tied for 36th most.
Do teams that play a lot of one-run and extra-inning games perform better in those games?
You hear announcers say this sort of thing all the time – “This team plays a lot of close games, so they’re used to the pressure and perform better than their opponents.” Is that true?
In a word, no.
First, let’s look at the 99th percentile of teams that played the most Xand1 games – 25 teams that collectively played 44.1% of such games. Those teams went 826-862 in Xand1 games for a .489 winning percentage, versus 1042-1095, or .488, in other games. They won a total of 5 games more in Xand1 games than you would expect, given their record in other games: so, 0.2 games per season.
Then, let’s expand that to the 90th percentile (plus ties) – 262 seasons. They had a total of 40% of their games in the Xand1 category. They went 8167-8164 in Xand1 games or .50009 and 12129-12347 in all other games, a .4955 winning percentage. That almost sounds like something. It equates to 76 games over their performance in other games, or 0.29 games per season.
So, there’s nothing there. Teams that play a lot of close games do not appear to gain some sort of experience that allows them to perform better than expected in those games.
Thanks for reading!