Showing posts with label Statistics. Show all posts
Showing posts with label Statistics. Show all posts

Friday, April 7, 2017

Improvements to Baseball Mogul 2017


Baseball Mogul 2017 includes more than 130 improvements and bug fixes. As you would expect, we have included hundreds of new major and minor league players, and all MLB player and team statistics through 2016 (including the playoffs, off-season awards, and updated contracts and salaries).

But Baseball Mogul 2017 also includes proprietary data that you can't find anywhere else:
  • Hand-edited pitch repertoires and fastball velocities for more than 6,000 pitchers from 1881 through 2017.
  • More than 600,000 lines of PITCHf/x pitch data, including velocity and usage patterns for every season from 2002 and 2016.
  • More than 1.9 million lines of minor league stats from 1880 through 2016, at every level from AAA down to the 'D' leagues.
I've also made some major improvements to the simulation engine:

The first is a new model for improvement and decline at different defensive positions. The sim continues to adjust ratings based on age and playing time, but I've added a lot more data to the model. This means that each specific ability (such as an outfielder's range or a catcher's ability to hold runners) is calculated from all available data major and minor league data (including some data from foreign leagues). Additionally, each ability at each position has its own "maturation curve" -- and these curves change over time from 1890 through 2017 according to my analysis of the historical data.

The second is a new system for normalizing historical stats, leading to much more accurate player ratings and simulation results in historical years. The game now calculates individual averages and standard deviation for each statistic by season, defensive position and stadium. (Previous code used all-time averages for standard deviation, and normalized player statistics over their entire career.)

Finally, I planned a longer beta-test cycle this year, ensuring that the initial release was much more stable and bug-free. Baseball Mogul 2017 went on sale three days ago and the most serious bug that's been reported so far is that the home and away teams are flipped in the 2017 MLB schedule (this bug has already been fixed in the version currently for sale in our store).

Anyway, here's a longer change list. I'm sorry I haven't been able to describe these improvements in more detail, but it's easier for me to code and test changes and new features than it is for me to write about them.

2017 Database

  • Updated major and minor league statistics from 1880 through 2016.
  • Added biographical data for all 2016 MLB debuts and hundreds of new minor league players.
  • Updated 40-man rosters for opening day.
  • Imported more than 600,000 additional lines of PITCHf/x pitch data.
    • Added filters to fix data errors on-the-fly

Historical Simulations (1901 – 2016)

  • Rewrote code for deriving player ratings and statistical projections from historical data.
    • Improved historical accuracy for fielding error rates.
    • Improved historical accuracy for determining pitcher "Endurance" ratings.
  • More accurate defensive ratings, especially for designated hitters and pinch hitters.
  • Incorporated more data in player aging model.
    • Created more accurate career paths in both historical and modern leagues.

Simulation Engine

  • New model for player improvement at defensive positions.
  • More realistic adjustments for playing time at all levels.
    • Improved player health model and injury rates.
    • Improved realism for platoon advantage by player type.
  • Reworked code for simulating minor league games.
  • Updated Win Expectancy data.
  • Improved logic for intentional walks.
  • New system for generating fictional players to improve long-term stability of talent pool.
  • Bug fixes (e.g. small errors in Payroll Budget related to a bug estimated concessions revenue).

Artificial Intelligence

  • Improved selection of defensive starters and starting lineup
    • More realistic use of defensive substitutes
    • Improved logic for 25-man and 40-man rosters
  • Improved long-term (multi-year) roster management
  • Improved management of pitching rotation
    • Includes better logic for picking "alternate starters" from active roster
  • Bug fixes (such as the computer over-riding changes to a player’s position)

Interface / Options

  • Improved Player Rating Editor
    • (e.g. dynamic updating of Predicted stats when ratings are changed)
  • Improvements to Sortable Stats Dialog
    • "40-Man Rosters" added as selectable category when viewing/sorting.
    • "Pitches Thrown", "Strikes Thrown", "Strike Percentage" and "Pitches/Game" added.
    • "Steal Tendency" and "Steal Success" player ratings added to Sortable Stats.
  • Improved heat maps (in Charts Tab of Scouting Report).
  • Improved interface and readability in Play-By-Play screen.
  • Optimized League Builder to increase speed by about 400%.
  • Schedule importer now supports 3-letter team abbreviations.
  • Bug fixes
    • Errors converting between rating scales (“50-100”, “20-80”, “1-20” etc.)
    • etc.

Tuesday, December 9, 2014

Viewing Head-to-Head Stats (Baseball Mogul)

When I posted some news last week about Baseball Mogul Diamond, one of the responses was a request to add "hitter/pitcher results vs. each pitcher/hitter and hitter/pitcher results vs. each team".

As it turns out, we've been tracking player-vs-player and player-vs-team results since 2007. So here's some info in case you didn't know how to access this feature:

1. On the charts tab in the Scouting Report, click on the gray box that shows what is currently being displayed (batting average, 2 outs, etc.) and you will get a dialog box that lets you choose vs-player or vs-team:


2. Stats by each team's lineup versus the other team's pitchers are shown at game start (when selecting a starter or adjusting the lineup). For example, this screen shot shows a player comparing the career performance of two pitchers against the Yankees:


3. During game play, head-to-head stats are shown under the batter's scouting report.





Monday, September 2, 2013

A Note On Tackles

"Tackles" have been an official stat since 2001, but there is still some confusion about what the term means. For example, CBS Sports and NFL.com both show Luke Kuechly with 164 Tackles in 2012. But Pro-Football-Reference only gives him 103 tackles.

Luke Kuechly had 103 "tackles" last year. Or did he?
This is because CBS and the NFL are adding together "Solo Tackles" and "Assisted Tackles", but Pro-Football-Reference is only counting "Solo Tackles" (with a column next to it for "Assisted Tackles").

ESPN adds more confusion. Instead of a column called "tackles", they have a column called COMB (for "combined") and one called TOTAL. This doesn't clarify anything, because "total" and "combined" are essentially synonyms, both meaning to "add up".

(This convention even confuses ESPN's own writers. Their Fantasy Projection for Kuechly mentions "200 total tackles" when it is clear that what they really mean, according to their own nomenclature, is "200 combined tackles".)


So... for Football Mogul, we are sticking to the NFL's official definition:
[A tackle is] recorded when a defensive player makes contact with an offensive player, forcing him to go to the ground. Tackles can be recorded as either "solo tackles" or "assisted tackles".
In other words, "tackles" includes both "solo tackles" and "assisted tackles". For every tackle that occurs in the simulation, Football Mogul either awards a "solo tackle" to one defensive player, or an "assisted tackle" to each of two different players.

Tuesday, March 5, 2013

Baseball Mogul 2014: Minor League Park Factors

Park factors used for calculating 2013 Major League Equivalencies (MLEs) for minor league and major league players included in Baseball Mogul 2014. (.pdf version)

Five-year park factors generated using 2008-2012 minor league player data.

California League (Class A Advanced)

Team
State
Farm System
H
2B
3B
HR
BB
K
R
Bakersfield Blaze
CA
CIN
0.98
1.00
0.93
1.05
1.03
0.99
0.98
High Desert Mavericks
CA
SEA
1.05
1.03
0.85
1.23
1.03
0.94
1.13
Inland Empire 66ers
CA
LAA
0.98
0.96
1.15
0.79
0.99
1.03
0.93
Lake Elsinore Storm
CA
SD
0.96
1.01
1.13
0.84
1.02
0.97
0.95
Lancaster JetHawks
CA
HOU
1.08
1.04
0.91
1.21
1.01
0.96
1.14
Modesto Nuts
CA
COL
1.00
1.06
1.26
0.80
0.99
0.99
0.97
Rancho Cucamonga Quakes
CA
LAD
0.99
0.99
1.02
0.96
0.97
0.99
0.96
San Jose Giants
CA
SF
0.94
0.97
1.04
0.87
0.97
1.08
0.89
Stockton Ports
CA
OAK
0.98
0.95
0.71
1.22
1.02
1.04
1.00
Visalia Rawhide
CA
ARI
1.03
1.04
0.88
1.19
1.01
0.98
1.06

Tuesday, May 29, 2012

Pythagoras Explained


Pythagoras of Samos, mathematician and philosopher, died about 2500 years ago. Nevertheless, his name is familiar to baseball fans. The "Pythagorean Expectation", invented by Bill James in the 1980s, predicts a team's winning percentage from runs scored and runs allowed. Despite the intimidating name, Pythagorean win expectations can now be found on mainstream sites like ESPN and MLB.com.