/r/Sabermetrics
Sabermetrics is the search for objective knowledge about baseball.
Sabermetrics - The search for objective knowledge about baseball through the analysis of empirical evidence.
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 |
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
I posted this yesterday in r/mlb but wanted to follow up here with a different perspective.
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.
All feedback appreciated. I am happy to discuss how I got these numbers as well.
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)
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.
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
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!
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!
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:
But I don't really know where to start.
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.
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.
Question: why does WAR not equal the sum of offence and defence? Hockey-Reference’s Point Shares adds them, so what’s different?
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.
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!
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.
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?
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.
Like what do you think has a chance to be the next competitive advantage for teams in player development?
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.
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
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.
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.
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.
event | fangraphs article | my weights |
---|---|---|
out | -0.26 | -0.259 |
BB | 0.29 | 0.308 |
HBP | 0.31 | 0.329 |
1B | 0.44 | 0.442 |
2B | 0.74 | 0.742 |
3B | 1.01 | 1.029 |
HR | 1.39 | 1.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.
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:
Lmk what you think.
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?
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.