/r/Sabermetrics

Photograph via snooOG

Sabermetrics is the search for objective knowledge about baseball.

Sabermetrics - The search for objective knowledge about baseball through the analysis of empirical evidence.

Sabermetrics Analysis
Baseball Prospectus
Beyond the Box Score
Fangraphs
Hardball Times
High Heat Stats
Tom Tango
Tango Tiger Wiki
Balls and Strikes
Baseball Think Factory
Baseball Analysts
The Physics of Baseball, Alan Nathan
Baseball HQ Research and Analysis
Sabermetrics 101: Introduction to Baseball Analytics
Data Sources
Retro Sheet
Sean Lahman Database
DingerDB
Fangraphs
Baseball Reference
Stat Corner
Baseball Heat Maps
Pitch F/X
Brooks Baseball Pitch f/x
Baseball Savant
TexasLeaguers
Books
The Book: Playing the Percentages in Baseball
The Hidden Game of Baseball
Baseball Between the Numbers
Extra Innings: More Baseball Between the Numbers
The Bill James Historical Baseball Abstract
Curve Ball
The Baseball Economist
The Numbers Game
The Extra 2% - Jonah Keri
Big Data Baseball
Dollar Sign on the Muscle
Analyzing Baseball Data with R
Baseball Hacks: Tips & Tools for Analyzing and Winning with Statistics
The Sabermetric Revolution: Assessing the Growth of Analytics in Baseball
Trading Bases
AL East AL Central AL West
Yankees Tigers Oakland
Orioles WhiteSox Rangers
Rays Royals Angels
Blue Jays Indians Mariners
Red Sox Twins Astros
NL East NL Central NL West
Nationals Reds Giants
Braves Cardinals Dodgers
Phillies Brewers D-Backs
Mets Pirates Padres
Marlins Cubs Rockies
Related Subreddits
/r/baseball
/r/baseballstats
/r/fantasybaseball
/r/sultansofstats
/r/sportsanalytics
/r/footballstrategy
/r/nflstatheads
Misc.
/r/Sabermetrics Weekly Stat Discussions
Reddit Markdown Primer - how to make charts, other stuff in reddit

/r/Sabermetrics

13,689 Subscribers

12

How frequently do teams outperform or underperform the opposing pitching?

I posted this yesterday in r/mlb but wanted to follow up here with a different perspective.

https://www.reddit.com/r/mlb/comments/1gzlr34/the_yankees_and_dodgers_were_really_that_good_the/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

I started thinking more about this on a day to day basis, as teams could only win one game a day. So if a team unloads on bad teams a couple times, it could really inflate their numbers. Here are a couple graphs that look into how often a team overperforms or underperforms relative to this pitching they face.

https://preview.redd.it/0a70ykk4o93e1.jpg?width=2703&format=pjpg&auto=webp&s=52a16d6b4a1fcbc9885d1bc4a6bd77c8fa8f5bad

https://preview.redd.it/1o1eujk4o93e1.jpg?width=2703&format=pjpg&auto=webp&s=572830d00af6829342ef063187ce5e8d45acf5ad

All feedback appreciated. I am happy to discuss how I got these numbers as well.

3 Comments
2024/11/26
15:46 UTC

5

Is WAR a cumulative criteria?

Is WAR a perfectly equivalent criteria?

For instance, is it better to have one level 9 WAR player + eight level 2 WAR players, or better to have eight level 3 WAR players and one level 1 WAR player?

Or is WAR transferable, so that it's roughly the same. Both teams have 25 WAR (28=16; 91=9 and 83=24; 11=1)

18 Comments
2024/11/19
22:29 UTC

1

RE: BBWAA 2025

Does anyone know if there is a formula to determine the maximum hypothetical Hall of Fame class? I read somewhere on Facebook that he would vote Ichiro, Sabathia, and Pedroia as first–ballot inductees; combine that with Wagner, Jones, and Beltran within 20 percentage points and that makes a hypothetical six-man class this year.

1 Comment
2024/11/18
22:43 UTC

0

Stadium Stands Coordinates

Hello,

I am trying to use hc_x, hc_y (or let me know if there is a better way), to graph where in the stands home runs have gone. However, I can't seem to find coordinates for the stadium sections. Ideally, I would be able to look at a cordinate and map it to a section. I am specifically trying to do this for Yankee stadium, but general case would also be helpful. Right now I feel as though I might have to just visually overlay the stadium map with the plotting spray chart and create my own, but that feels highly prone to error.

Just wondering if anyone did this before and has any advice.

Thanks

0 Comments
2024/11/17
15:42 UTC

4

Hey: Statistics Student trying to use IVB and Horizontal Movement

Hey folks, im trying to create confidence intervals for some pitchers on my college team, and I’m trying to use an “estimated average IVB” and an “estimate horizontal break” to use to compare to my pitchers. I literally can not find a single estimate for what would be an expected movement profile. This is a very basic easy project, so I just need any number or range from a decently reputable source. Anyone have any ideas??? Please!

9 Comments
2024/11/17
01:31 UTC

0

Would anyone be interested in creating a Discord server/Slack workspace?

Hi everyone,

I’m relatively new to baseball analytics and would love to connect with others to share ideas in a more interactive and dynamic way. Ideally, I’m looking to collaborate on projects, exchange ideas, and learn together. I was wondering if anyone here would be interested in joining or helping to build this community.

I’m from Mexico, so if anyone is familiar with the LMP or LMB, that would be awesome. I’m also interested in baseball from the Dominican Republic (LIDOM), Venezuela (LVBP), and Puerto Rico (LBPRC), as I feel a closer connection to those leagues. But really, I’m open to anyone who wants to help build a small, collaborative community around baseball analytics.

Thanks!

--------

Hola a todos,

Soy relativamente nuevo en analítica de béisbol y me gustaría conectar con otras personas para compartir ideas de una manera más interactiva y dinámica. Idealmente, estoy interesado en trabajar juntos en proyectos, compartir ideas y aprender juntos. Me preguntaba si alguien aquí estaría interesado en unirse o ayudar a crear esta comunidad.

Soy de México, así que si alguien conoce sobre la LMP o LMB, sería genial. También me interesa mucho el béisbol de la República Dominicana (LIDOM), Venezuela (LVBP) y Puerto Rico (LBPRC), ya que me siento más cercano a esas ligas. Pero en realidad, cualquiera que quiera ayudar a crear una pequeña comunidad colaborativa en torno a la analítica de béisbol es bienvenido.

¡Gracias!

4 Comments
2024/11/15
02:04 UTC

4

How to do a Hit Spray Chart?

Hello!

I am new to sabermetrics and data science and I am making a small page similar to baseballsavant but for the Dominican Winter League (LIDOM) with the help of the MLB statsAPI, using python and streamlit. I already made a leaderboard of percentiles for hitters, but I would like to know how to make a hit spray chart. The API offers me the data coordinates of the hits, this is an example:

"hitData": {
                "trajectory": "ground_ball",
                "hardness": "medium",
                "location": "3",
                "coordinates": {
                  "coordX": 165.86,
                  "coordY": 163.86
                }
              },

If I'm not mistaken, coordX and coordY are the coordinates where the ball landed.

I am thinking to use an image like this to draw the points:

https://preview.redd.it/vlxuh81ixq0e1.png?width=600&format=png&auto=webp&s=2651487384936fd3e3b15ca3317dab78cafc111a

But I don't really know where to start.

5 Comments
2024/11/13
22:41 UTC

1

What is Hyper Speed (new statcast metric)?

Statcast just released a few new metrics. One of them is "hyper_speed". It looks to be an adjusted exit velocity metric (at first glance), but there is no information available on what this actually is.

5 Comments
2024/11/13
21:45 UTC

3

Confused on batting runs

I'm following this site for calculating WAR.

Says Batting Runs = wRAA + (lgR/PA – (PF*lgR/PA))*PA + (lgR/PA – (AL or NL non-pitcher wRC/PA))*PA, however, I'm not 100% certain on what's supposed to be player PA, if there is any. I'm also not sure how to put Park Factor in, do I just use statcast Park Factor? Like '100' for Yankee Stadium? And finally, I'm not understanding 'AL or NL non-pitcher wRC' I'm assuming it's asking for league average position player wRC but I can't find that stat anywhere.

3 Comments
2024/11/12
16:35 UTC

3

dWAR

Question: why does WAR not equal the sum of offence and defence? Hockey-Reference’s Point Shares adds them, so what’s different?

5 Comments
2024/11/11
21:39 UTC

1

Where to Find Data on How Many Games Ended on a Specific Inning

I am currently working on a project where I am trying to show how the extra runner in extra innings rule changed which inning a game ended and was wondering where to find that data.

5 Comments
2024/11/11
21:27 UTC

1

Read Multiple .csv

So I have a report that I use for my university to show the pitchers various stats from their outings. I want to publish the app on Shiny R but before I do, I want to make it so they can click through each game and see stats for each game. In order to do so I need the code to read each .csv game file in the folder. Any help would be great!

2 Comments
2024/11/11
18:34 UTC

0

Unpopular opinion: Andrew Friedman is a better Executive than Theo

Theo broke 2 curses so he always has that advance. The reasons I have Friedman over Theo? Friedman proved he could have success with a small market Im not quite as sure if Theo could do that. Theo has one more ring than Friedman with 3 compared to 2 but Friedman has been to 2 more World Series. When Theo wins World Series he has had trouble Keeping the same team success Years after. Friedman? Is a guaranteed 95 + win team every year with dodgers, alongside great farm systems, great drafting/ player development/ best data. Theo left the redsox and cubs with a bit of a mess. Friedman has never bottomed out and has kept sustainable winning to the max.

5 Comments
2024/11/09
17:54 UTC

4

How was the dWAR component of WAR determined for historical players?

As I understand, WAR is determined in part by defensive WAR or dWAR. That includes errors but also assists and range of fielding plays.
But how was dWAR determined for historical ballplayers when we don't have much film about them and there's no contemporaneous eyewitness account?

Perhaps fielder errors were scored back then. But what about assists? And how could the fielding range be determined without film?

2 Comments
2024/11/09
01:30 UTC

0

Retrosheet: only downloadable box files for regular season?

I read online that Retrosheet has box score event files for All-Star and Post-season, yet I only see downloadable files for regular season box score data. They must have them, since the individual historical game summaries all include a box score section.

6 Comments
2024/11/08
03:47 UTC

7

What is the next big thing for player development?

Like what do you think has a chance to be the next competitive advantage for teams in player development?

12 Comments
2024/11/07
22:20 UTC

0

Would someone be so kind to provide me with the R or Python backtest code for my model? I keep getting errors and can't seem to figure it out?

I have heard that wOBA is the best indicator for runs, so I have picked this stat.  I am using player stats from 2023+2024 until July 1^(st) where I will only use 2024 stats(To avoid the High/low of small sample size).  For the bets I took in 2024, Dogs were up 20 units, but Favs were down 10 units, so I am thinking to just focus on dogs next year.

‘Adjusted wOBA’.   It multiplies a Teams wOBA-Split * Starting Pitchers wOBA (5.26 innings [current league average]) + Bullpen wOBA (3.74 innings) * Ball Park Factor.  Then I convert to projected runs.  **For my calculation I believe 5.26 Innings/Game converts to 58.44% for starters and 41.56% for relievers.  Since I don’t know which relievers will be brought into the game, I just use the average bullpen wOBA for each team.  Also, My starters have to have at least 5 Starts.

 wOBA_adj = (team's wOBA-Split) * (SP wOBAA * .5844+RP wOBAA * .4156) / LeagueAveragewOBA x BPF

 (both throwing a Right Handed Starter)

 Red Sox(+150): Team wOBA-RHP = 0.320

Twins(-178): Team wOBA-RHP = 0.322

Target Field BPF = 0.97

Pitcher Leage Average wOBA = 0.313

 

Red Sox - SP wOBA = 0.263

Twins – SP wOBA = 0.304

 

Red Sox Bullpen wOBA = 0.311

Twins Bullpen wOBA = 0.286

 

Red Sox wOBA_Adj = (.320) * ((.304 * .5844 + .286 * .4156) / .313) * .97 = 0.280

Twins wOBA_Adj = (.322) * ((.263 * .5844 + .311 * .4156) / .313) * .97 = 0.263

 

Now I convert these wOBA_adj to runs.  I lost contact with a saberist who gave me this calculation, and if anyone can tell me how he got these numbers(5211.999 and 917.5457), it would help me as I learn Python.   I do know he used 4-5 years and removed 2020 for his backtest.

 

Red Sox Runs Expected = 5211.999 * 0.280 – 917.5457 = 540.24 Runs… Divided by 162 = 3.33 runs

Twins Runs Expected = 5211.999 * 0.263 – 917.5457 = 455.10 Runs… Divided by 162 = 2.81 runs

 

This tells me the Red Sox have an advantage offensively, since they are +150 underdogs.

2 Comments
2024/11/03
16:12 UTC

6

For Classifying Pitch Types in Live Games what Classification Model does the MLB Use and how is it done instantly?

I have been playing around with some pitch data from Baseball Savant and Have tested a couple different methods including am rpart DTree, Multinomial Logistic Regression, and ensemble methods like Random Forests classifier, and also MLP NN and they all had great accuracies. I know this comes with the downside of having to generate one of these models each for every pitcher, and for live broadcasts the classification has to be done pretty much instantly. So I was wondering if for the MLB do they stick to one MLP model for each, or do they have a genralized single model, then adjusts it somehow for each pitcher? Thank you

2 Comments
2024/11/02
21:58 UTC

2

Hard Cutter and Gyro Slider classifications

Was curious if anyone had information or an article on differentiating cutters and/or sliders. Know prospectus does HC and FC but can't find how the determine the difference.

1 Comment
2024/11/02
16:12 UTC

2

Issues trying to calculate something similar to wRC+

hello. For a part of my engineer's thesis, I need to calculate and implement a version of wRC+. along the way I wasn't able to completely match my results with the ones I saw on fangraphs/baseball-reference, I'm hoping some of them can be answered under this post. I mainly used this post as help to calculate some slightly innacurate wOBA weights.

RE24 matrix and linear weights - what's an occurence?

Let’s use one out, man on first as our example. In order to calculate the run expectancy for that base-out state, we need to find all instances of that base-out state from the entire season (or set of seasons) and find the total number of runs scored from the time that base-out state occurred until the end of the innings in which they occurred. Then we divide by the total number of instances to get the average. If you do the math using 2010-2015, you get 0.509 runs. In other words, if all you knew about the situation was that there was one out and a man on first, you would expect there to be .509 runs scored between that moment and the end of the inning on average.

Now that you have a run expectancy matrix, you need to learn how to use it. Each plate appearance moves you from one base-out state to another. So if you walk with a man on first base and one out, you move to the “men on first and second and one out” box. That box has an RE value of 0.884. Because your plate appearance moved you from .509 to 0.884, that PA was worth +0.375 in terms of run expectancy.

Let's consider this following example: Runner on 1st, 0 out. Runner steals 2nd. The batter singles, scoring the runner from 2nd.

  • Does the single receive credit for the stolen base in terms of RE?
  • When calculating the RE24 matrix, do I count the occurence of runner on second, 0 out in the denominator for that situation?

I tested all combinations of the yes/no answers to the questions above, but still when calculating the linear weights, my triples weight is consistently around 0.02 or more higher than on websites with data, so if anyone had any similar issues and found a way to solve them, please let me know. Here are my current results for the 2015 season, counting the situation from the second question and the single not receiving credit in the first question.

eventfangraphs articlemy weights
out-0.26-0.259
BB0.290.308
HBP0.310.329
1B0.440.442
2B0.740.742
3B1.011.029
HR1.391.386

Park factors formula

After I hopefully manage to troubleshoot the weights, I wanted to apply some park factors, to make the stat a bit more complicated for the paper. To do so I used the equations from this article. Unfortunately, the result of the batting park factor in the article (1.07) doesn't match with the single season batting factor for those same 1982 braves used in the example (1.08).

Does anyone know of a new formula which is actually used? The formula from the article is from a book from the 90s, and it calculates an IPC, used to adjust the amount of outs in the 9th inning. Using retrosheet data and modern computing power, I could easily calculate the exact amount of outs made at every stadium. Does my formula for PF make sense?

RPO_x = [points scored by both teams in games at park X]/[amount of outs recorded in games at park X]

RPO_Lx = [points scored by both teams in games outside of park X]/[amount of outs recorded in games outside of park X]

PF = 100*RPO_X/RPO_Lx

Where PF is the ratio of how much more runs score at park X as opposed to league average. I am stumped as to how to arrive at two different numbers for batters and pitchers.

2 Comments
2024/11/02
15:02 UTC

31

3D MLB Visualizer

I created an app to visualize hits and pitches from MLB games. I posted about it earlier but I've made it a lot better now. I am now using 3D models of the actual fields for the teams to plot the data and create the arcs to get accurate locations for the hits.

Here's an example:

https://preview.redd.it/p23xxlfu7dyd1.png?width=1864&format=png&auto=webp&s=2900ab8c514af994c361a1aaedc47c18fbcdbcf5

Lmk what you think.

https://mlbvisualizer.streamlit.app/

14 Comments
2024/11/01
22:21 UTC

3

Fangraphs fielding value?

Hello all, I have a feeling I’m being stupid, but I am at a loss figuring out how fangraphs calculates the “fielding” component of fWAR.

The original write up states that it’s UZR, which was replaced with OAA in 2022. If I look at lindor though for instance, his OAA is 16 and his FRV is 12 (this matches the statcast leaderboard). Somehow though this gets to 10.8 runs in the actual fielding component of his WAR. What’s that -1.2 runs?

2 Comments
2024/10/30
23:57 UTC

2

Is there a site or database that has biographical data like height and weight by season? I'm trying to use this for a statistics project

So my current plan is to analyze BMI as an indicator of performance and also weight and height individually, but it seems like I can only get either the current or last updated biographical data. Is there anywhere that has records by the season? Baseball reference mentions only maintaining data since 2012, but I can't seem to find historical biographical data.

3 Comments
2024/10/30
00:45 UTC

Back To Top