Hello everyone! It's been another couple of years, and I'm ready to update stabilization points again. These
are my estimated stabilization points for the 2022 and 2023 MLB seasons, once
again using the maximum likelihood method on the totals that I used for
previous years. This method is explained in my articles Estimating Theoretical Stabilization Points and WHIP Stabilization by the Gamma-Poisson Model. As usual, all data and code I used for this post can be found on my github.
I make no claims about the stability, efficiency, or optimality of my code.
I've
included standard error estimates for 2022 and 2023, but these should not be
used to perform any kinds of tests or intervals to compare to the values
from previous years, as those values are estimates themselves with
their own standard
errors, and
approximately 5/6 of the data is common between the two estimates. The
calculations I performed for 2015 can be found here for batting statistics and here for pitching statistics. The calculations for 2016 can be found here. The 2017 calculations can be found here. The 2018 calculations can be found here. The 2019 calculations can be found here. I didn't do calculations in 2020 because of the pandemic in general. The 2021 calculations can be found here.
The
cutoff values I picked were the minimum number of events (PA, AB, TBF,
BIP, etc. - the denominators in the formulas) in order to be considered
for a year. These cutoff values, and the choice of 6 years worth of
data (2016-2021 for the 2022 stabilization points and 2017 - 2022 for the 2023 stabilization points) were picked fairly arbitrarily. This is consistent with my previous work, though I do have concerns about including rates from, for example, the covid year and juiced ball era. However, including fewer years means less accurate estimates. A tradeoff must be made, and I tried to go with what was
reasonable (based on seeing what others were doing and my own knowledge
of baseball) and what seemed to work well in practice.
Offensive Statistics
2022 Statistics
StatFormula2022 ˆM2022 SE(ˆM)2022 ˆμCutoffOBP(H + BB + HBP)/PA316.4819.720.331300BABIP(H - HR)/(AB-SO-HR+SF)459.4450.100.304300BAH/AB473.8638.690.263300SO RateSO/PA51.892.200.210300BB Rate(BB-IBB)/(PA-IBB)105.364.960.0833001B Rate1B/PA195.2210.550.1473002B Rate2B/PA1197.83153.680.0473003B Rate3B/PA561.0151.430.004300XBH Rate(2B + 3B)/PA1002.35114.030.051300HR RateHR/PA155.398.290.035300HBP RateHBP/PA248.1015.530.011300
2023 Statistics
StatFormula2023 ˆM2023 SE(ˆM)2023 ˆμCutoffOBP(H + BB + HBP)/PA301.1118.460.329300BABIP(H - HR)/(AB-SO-HR+SF)426.8045.290.302300BAH/AB434.5134.080.259300SO RateSO/PA53.162.250.213300BB Rate(BB-IBB)/(PA-IBB)107.365.060.0833001B Rate1B/PA196.9710.650.1453002B Rate2B/PA1189.22151.900.0473003B Rate3B/PA634.1462.080.005300XBH Rate(2B + 3B)/PA1035.82120.930.051300HR RateHR/PA156.778.340.035300HBP RateHBP/PA256.2416.040.011300
In
general, a larger stabilization point will be due to a decreased spread
of talent levels - as talent levels get closer together, more extreme
stats become less and less likely, and will be shrunk harder towards
the mean. Consequently, it takes more observations to know that a
player's high or low stats (relative to the rest of the league) are real
and not just a fluke of randomness. Similarly, smaller stabilization
points will point towards an increase in the spread of talent levels.
This is a good opportunity to compare the stabilization points I calculated for the 2016 season to the stabilization points for the 2023 season, as the 2023 season includes data from 2017-2022, so there is no crossover of information between them.
StatFormula2023 ˆM2016 ˆMOBP(H + BB + HBP)/PA301.11301.32BABIP(H - HR)/(AB-SO-HR+SF)426.80433.04BAH/AB434.51491.20SO RateSO/PA53.1649.23BB Rate(BB-IBB)/(PA-IBB)107.36112.441B Rate1B/PA196.97223.862B Rate2B/PA1189.221169.753B Rate3B/PA634.14365.06XBH Rate(2B + 3B)/PA1035.821075.41HR RateHR/PA156.77126.35HBP RateHBP/PA256.24300.97
What is most apparent is the stability of most statistics. The stabilization point for OBP, BABIP, SO Rate, BB rate, 2B rate, and XBH rate are nearly identical, indicating that the spread of abilities within this distribution is roughly the same now as it is in 2016. Stabilization points for BA, 1B rate, HR Rate, and HBP rate are fairly close, indicating not much change. The big outlier is 3B rate, or the rate of triples. Though the estimated probability of a triple per PA is approximately 0.005 in both seasons, the stabilization rate has nearly doubled from 2016 to 2023. This is indicative that the spread in the ability to triples has increased - though the league average rate of triples has remained the same, there are fewer batters that have a "true" triples-hitting ability which is much higher or lower than the league average.
Pitching Statistics
2022 Statistics
StatFormula2022 ˆM2022 SE(ˆM)2022 ˆμCutoffBABIP(H-HR)/(GB + FB + LD)929.31165.620.284300GB RateGB/(GB + FB + LD)66.564.380.4393001FB RateFB/(GB + FB + LD)61.794.030.351300LD RateLD/(GB + FB + LD)1692.45467.980.210300HR/FB RateHR/FB715.15226.830.135100SO RateSO/TBF80.134.000.220400HR RateHR/TBF1102.12175.150.032400BB Rate(BB-IBB)/(TBF-IBB)256.2820.370.074400HBP RateHBP/TBF931.55131.510.009400Hit rateH/TBF414.0333.460.230400OBP(H + BB + HBP)/TBF395.8335.750.312400WHIP(H + BB)/IP*58.494.401.2880ER RateER/IP*54.504.070.46580Extra BF(TBF - 3IP*)/IP*61.964.751.2380
* When dividing by IP, I corrected the 0.1 and 0.2 representations to 0.33 and 0.67, respectively.
2023 Statistics
StatFormula2023 ˆM2023 SE(ˆM)2023 ˆμCutoffBABIP(H-HR)/(GB + FB + LD)809.54134.290.282300GB RateGB/(GB + FB + LD)66.244.400.4343001FB RateFB/(GB + FB + LD)59.403.900.357300LD RateLD/(GB + FB + LD)1596.98429.070.209300HR/FB RateHR/FB386.3477.010.133100SO RateSO/TBF77.464.850.223400HR RateHR/TBF942.58134.480.032400BB Rate(BB-IBB)/(TBF-IBB)258.7820.840.073400HBP RateHBP/TBF766.4098.750.009400Hit rateH/TBF391.5530.960.227400OBP(H + BB + HBP)/TBF358.5031.640.309400WHIP(H + BB)/IP*54.964.071.2780ER RateER/IP*50.333.680.45980Extra BF(TBF - 3IP*)/IP*58.004.371.2280
* When dividing by IP, I corrected the 0.1 and 0.2 representations to 0.33 and 0.67, respectively.
Once again, this is a good opportunity to compare the stabilization rates for 2016 to the stabilization rates for 2023.
StatFormula2023 ˆM2016 ˆMBABIP(H-HR)/(GB + FB + LD)809.541408.72GB RateGB/(GB + FB + LD)66.2465.52FB RateFB/(GB + FB + LD)59.4061.96LD RateLD/(GB + FB + LD)1596.98768.42HR/FB RateHR/FB386.34505.11SO RateSO/TBF77.4690.94HR RateHR/TBF942.58931.59BB Rate(BB-IBB)/(TBF-IBB)258.78221.25HBP RateHBP/TBF766.40989.30Hit rateH/TBF391.55623.35OBP(H + BB + HBP)/TBF358.50524.73WHIP(H + BB)/IP*54.9677.2ER RateER/IP*50.3359.55Extra BF(TBF - 3IP*)/IP*58.0075.79
Comparing 2023 to 2016, the outliers are obvious: the stabilization point for pitcher BABIP has nearly halved since then, while the stabilization point for line drive rate has nearly doubled (and similarly for hit rate). Given that the estimated mean pitcher BABIP and line drive rate are similar for the two years (0.284/0.210 for 2023 and 0.289/0.203 for 2016), this indicates a change in the spread of abilities. Simply put, there is a much lower spread of pitcher BABIP "true" abilities, and with it, a much higher spread of line drive rates. Simply put, teams appear to be willing to trade more or less line drives for less variance in the batting average when the ball is in play.
Usage
Aside from the obvious use of knowing
approximately when results are half due to luck and half skill,
these stabilization points (along with league means) can be used to
provide very basic confidence intervals and prediction intervals for
estimates that have been shrunk towards the population mean, as
demonstrated in my article
From Stabilization to Interval Estimation.
For example, suppose that in the first half, a
player has an on-base percentage of 0.380 in 300 plate appearances,
corresponding to 114 on-base events. A 95% confidence interval using my
empirical Bayesian techniques (based on a normal-normal model) is
114+0.329∗301.11300+301.11±1.96√0.329(1−0.329)301.11+300=(0.317,0.392)
That
is, we believe the player's true on-base percentage to be between 0.317
and 0.392 with 95% confidence. I used a normal distribution for talent
levels with a normal approximation to the binomial for the distribution
of observed OBP, but that is not the only possible choice - it just
resulted in the simplest formulas for the intervals.
Suppose
that the player will get an additional
˜n=250 PA in the
second half of the season. A 95% prediction interval for his OBP over
those PA is given by
114+0.329∗301.11300+301.11±1.96√0.329(1−0.329)301.11+300+0.329(1−0.329)250=(0.285,0.424)
That
is, 95% of the time the player's OBP over the 250 PA in the second half
of the season should be between 0.285 and 0.424. These intervals are
overly optimistic and "dumb" in that they take only the league mean and
variance and the player's own statistics into account, representing an
advantage only over 95% "unshrunk" intervals,
but when I tested them in my article "From Stabilization to Interval Estimation," they worked well for prediction.
As usual, all my data and code
can be found on my github.
I wrote a general function in
R to calculate the stabilization point
for any basic counting stat, or unweighted sums of counting stats like
OBP (I am still working on weighted sums so I can apply this to things
like wOBA). The function returns the estimated league mean of the
statistic and estimated stabilization point, a standard error for the
stabilization point, and what model was used (I only have two programmed
in - 1 for the beta-binomial and 2 for the gamma-Poisson). It also
gives a plot of the estimated stabilization at different numbers of
events, with 95% confidence bounds.
> stabilize(h$H + h$BB + h$HBP, h$PA, cutoff = 300, 1)
$Parameters
[1] 0.3287902 301.1076958
$Standard.Error
[1] 18.45775
$Model
[1] "Beta-Binomial"
The confidence bounds are created from the estimates
ˆM and
SE(ˆM) above and the formula
(nn+ˆM)±1.96[n(n+ˆM)2]SE(ˆM)
which is obtained from the applying
the delta method to the function
p(ˆM)=n/(n+ˆM). Note that the mean and prediction intervals I gave do
not
take
SE(ˆM) into account (ignoring the uncertainty surrounding
the correct shrinkage amount, which is indicated by the confidence
bounds above), but this is not a huge problem - if you don't believe me,
plug slightly different values of
M into the formulas yourself and
see that the resulting intervals do not change much.
As always, feel free to post any comments or suggestions.