Weighted Runs Above Average (wRAA) and Weighted Runs Created (wRC)

Kris Eberwein

2017-06-15

Weighted Runs Above Average (wRAA)

The wRAA metric attempts to establish an average of runs scored by all the players in the league and rate a single player as how many runs, above or below average, that player scored in a given year. The baseline of the metric is zero, so some players may have a negative wRAA.

Despite having all the characteristics of a “counting statistic,” wRAA is based on wOBA and the wOBA scale, which rely on linear weights, so wRAA could certainly be considered a predictive metric.

The formula for wRAA is:

\[\frac{wOBA - leagueWOBA}{wOBA scale} * (AB+BB-IBB+SF+HBP) = PA\]

The multiplier to the right is a formula for plate appearances, which differs from at-bats. Note that, SHs and IBBs are not counted in the PA formula because they are largely regarded as managerial decisions. For more information on wOBA, league wOBA, and wOBA scale; please see the wOBA vignette.

The wRAA metric is also used to calculate wins above replacement (WAR.)

Since wRAA relies on wOBA coefficients, we need three tables to make the calculation; Batting, Pitching, and Fielding. We use all three tables in order to determine a player’s primary position. More on this can be found in the wOBA vignette.

library(baseballDBR)
# Load data from Baseball Databank
get_bbdb(table = c("Batting", "Pitching", "Fielding"))

Batting$wRAA <- wRAA(Batting, Pitching, Fielding, Fangraphs=FALSE, NA_to_zero=TRUE, Sep.Leagues=FALSE)

Arguments

Weighted Runs Created (wRC)

The wRC metric attempts to quantify a player’s total offensive value and measure it by runs that player creates. The wRC metric is based the “Runs Created” metric that was originally used by Bill James.

wRC requires the same data and accepts the same arguments as the wRAA() and wOBA() functions.

library(baseballDBR)
# Load data from Baseball Databank
get_bbdb(table = c("Batting", "Pitching", "Fielding"))

Batting$wRC <- wRC(Batting, Pitching, Fielding, Fangraphs=FALSE, NA_to_zero=TRUE, Sep.Leagues=FALSE)