Archive for December, 2008

How the Price Guide Works, Part II (Positional Adjustments)

17 Comments
December 31st, 2008 by Mays
Categories: Price Guide

This is Part II in a series describing the methodology the Price Guide uses to come up with dollar values for players. If you haven’t already done so, you might be interested in reading Part I, which discusses how standard scores are used to build the initial player values.

In our previous example, we had a standard Yahoo setup with 12 teams and 9 hitters per team, for 108 total players drafted. In this league, there will be 12 players drafted at each position.

Notice that, in an auction, the last catcher drafted will go for $1, and the last 1B will also go for $1. This is true even though the last 1B is expected to produce much better stats than the last C. And that’s the key point: Despite the variance in expected production, the last players drafted at each position have the exact same value.

With this in mind, we want to adjust our values so that the last players picked at each position have equal values. In our sample league, the 12th best SS according to Marcel is Ryan Theriot, with a value of -2.97. The 12th best catcher is much worse–Chris Iannetta at -6.26. So for all of the SS, then, we will add 2.97 (i.e. subtract -2.97). For catchers we will add 6.26.

Now Theriot and Iannetta have the same value (0), and there are exactly 11 SS and 11 C with positive values. When this adjustment is done for all of the players, there will be exactly 108 players that have a value of zero or greater.

Notice just how huge of a bump this is for catchers. Before, Mauer, Martin, and McCann looked like 4th and 5th round selections (or $15-20 players). Now they land in the top of the 2nd round–worth upwards up $35.

The change is less dramatic for the other positions. Typically, middle infielders will get a small increase of $1 or $2; corner infielders (and often outfielders) will see a slight drop.

Flex Positions
There are a couple of complications when trying to find replacement levels. The first is dealing with “flex” positions like utility/DH, corner-infield, and middle-infield. To handle these, the Price Guide first marks all of the players that are above the replacement level at each of the regular positions. In our sample league, it marks 12 players at each of the primary positions, 96 in all.

Since our sample league uses a DH, the Price Guide finds the top 12 unmarked players and sets the DH replacement level at the 12th. David Ortiz is the top unmarked player, followed by Jim Thome. The remaining 10 are the best of the rest, typically 1B, OF, and 3B. For each player that is counted as a DH, that player’s value is used as the new replacement level for his primary position.

So the previous replacement level for 1B was -0.71, the value of James Loney as the 12th best 1B. But with the DH position, it turns out that 1B like Joey Votto, Conor Jackson, and Adam LaRoche are also worth drafting. The new replacement level for 1B drops to -2.07, which is LaRoche’s value as the 15th best 1B.

Multi-Position Eligibility
The second issue is handling players who are eligible at more than one position. Their value should be based on the most valuable position they are eligible at. However, if I move all of the multi-positional players to the most valuable position, it makes that position less valuable (because there is more talent available). Their old positions become more valuable, because we have fewer quality players to choose from.

There’s a possibility of getting stuck moving players back and forth between positions trying to find the most valuable position. Because of this, the Price Guide assumes the positions are ranked as follows (from greatest to least):

C
SS
2B
3B
CF
LF
RF
OF
1B
MI
CI
Util

That works for most leagues, but there may be situations where it is less than optimal. I haven’t discovered a better way to handle it programmatically, and it shouldn’t make much difference most of the time.

For a straight draft, once we have done the positional adjustments, we’re done! The players should all be ranked correctly. For an auction, however, the final step is converting our adjusted values into dollar values. That shouldn’t take long and will be covered in Part III.

How the Price Guide Works, Part I (Standard Scores)

29 Comments
December 30th, 2008 by Mays
Categories: Price Guide

I’ve stated that I believe the key to making the Price Guide the best possible tool for fantasy player valuation is to be transparent with how it works. By disclosing exactly what is going on, I hope that the community will be able to point out any flaws I have overlooked and provide insight into ways to improve.

With that in mind, I’m going to take a few posts to explain the methodology the Price Guide is using. A good deal of it is drawn from discussions elsewhere, but there are some unique aspects as well. (I also realize this is probably not terribly interesting stuff, so I figure that it is good to discuss it now while I’m basically just talking to myself.)

All of the systems for valuing players are based on finding the worth of the fantasy stats in relation to each other. All else being equal, is a player who hits 30 HR worth more than a player who steals 30 bases? How do those two relate to a player with 30 saves?

Comparing those players is not as simple as saying 30 = 30. Saves are more scarce than homeruns, and fantasy teams typically end up with far fewer saves than homeruns. Because they are more rare, each save is more valuable than each homerun. What we need to find out is exactly how much more valuable each save is.

To do this, we need to be able to put these various categories onto a single scale. This is actually a common problem in statistics, and the way it is solved is with standard scores. Standard scores will work perfectly for fantasy as well.

To compute the standard scores for each player’s stats, we want to subtract the stats of the average player and divide by the standard deviation for the pool of drafted players. That might sound complicated, but it is easy to do if you have a spreadsheet (and even easier with the Price Guide).

As an example, let’s generate values for a shallow, mixed league that uses the default Yahoo settings. In this league, there are 12 teams that each draft 9 hitters, meaning that a total of 108 hitters will be drafted for starting lineups.

Using the Marcel projections, then, the average stats for those 108 players will be:*

BA: 0.2840
R: 76.8
RBI: 75.7
HR: 19.5
SB: 10.5

Some Extra Work for Rate Stats
However, we need to do some extra work to find the standard scores for BA. If a player has 2 AB all year and gets 1 hit, they’ll have .500 BA. A player who has 600 AB and manages 200 hits will have a lower batting average (.333), but this player makes a greater positive contribution to a fantasy team’s BA than the first.

What we need to do is convert BA from a rate stat to a counting stat. To do that, we ask, “How many more hits would this player get than the average player, given the same number of AB?” We know that the average player will bat .284, so the formula for each player is:

xH = H – (AB * .284)

Consider the player above with 1 hit and 2 AB. The average player, given 2 AB will get 0.568 hits (2 * .284). Our sample player got 1 hit, or 0.432 above average (1 – 0.568). The formula explains how this works out:

xH = 1 – (2 * .284) = 0.432

For the other player, the formula yields:

xH = 200 – (600 * .284) = 29.6

That fits with what we expect–a player who bats .333 throughout the season is much more valuable than a player who hits .500 in a vary small sample.

Having computed xH for each player, we will use the average of xH instead of the average BA (.284). Our new averages are:

xH: -7.6E-15
R: 76.8
RBI: 75.7
HR: 19.5
SB: 10.5

The standard deviations for each category:

xH: 8.0
R: 11.6
RBI: 14.4
HR: 6.6
SB: 9.9

Computing Standard Scores
With the averages and standard deviations in hand, it is now possible to compute standard scores. Let’s use David Wright as an example, whom Marcel projects for 96 R, 101 RBI, 26 HR, 19 SB, 169 H, and 549 AB.

xH = 169 – (549 * .284) = 13.1

mH = (13.1 + 7.6E-15) / 8.0 = 1.6
mR = (96 – 76.8) / 11.6 = 1.7
mRBI = (101 – 75.7) / 14.4 = 1.8
mHR = (26 – 19.5) / 6.6 = 1.0
mSB = (19 – 10.5) / 9.9 = 0.9
Total = 1.6 + 1.7 + 1.8 + 1.0 + 0.9 = 7.0

Without any context, it’s not clear if those are good values or not. But if you do the same process for all the players, you’ll find that Wright has a very high value in all five categories. In fact, he ends up being the highest valued player in this league. You can see the full results that the Price Guide gives for this league:

12 team, 5×5 with 9 hitters

Also notice that, if you plug in the stats of the theoretically average player, his value in each category will be 0. So any player with a positive value for a category is above average in that category; any player with a negative value is below average.

We now have a preliminary value for each player, but our work’s not done yet. Before we can generate dollar values, these values need to be adjusted to take into account the replacement level at each position. That will be the subject of Part II.

*You may have noticed that I left out one crucial step here: How did we figure out who the best 108 players were before we generated values? The Price Guide handles this by going through the entire valuation process multiple times until it arrives at the optimal draft pool. This iterative approach is a topic I’ll tackle later on in this series.

The Official Price Guide To-Do List

12 Comments
December 29th, 2008 by Mays
Categories: Price Guide

This is going to be my running list of things I would like to add to the current functionality of the Price Guide.  This is also the official place for feature requests.  I’ll start off with these:

Customizable projections
Formula-driven projections don’t take a lot of things into account that fantasy players might take into consideration, even some fairly obvious things.  For example, it would be nice to be able to  knock 15% off of Chase Utley’s 2009 stats for the time he might miss.  Maybe tone down Matt Holliday’s projection outside of Colorado.  Remove Mike Mussina and add Matt Weiters and Kenshin Kawakami.  Changing any of those players will affect the values of everyone else.

I’d like to be able to edit the individual stats for any players and then rerun everything to get new dollar values for all players.

Keepers
One factor that can affect dollar values on draft day is keeper inflation. The Price Guide won’t be very useful for leagues where players end up going for 20-30% more due to inflation.

It would be nice if I could mark which players are kept, and at what prices. Then the values could be rebuilt with inflation automatically factored in.

Better multi-positional adjustments
The Price Guide already does a lot to try to handle replacement levels for different positions. It correctly handles utility positions like corner-infield or middle-infield. It works for leagues that have OF spots and leagues that have LF, CF, RF (and leagues that have some combination of both).

But for players who are eligible at multiple positions, I would like it to do better at finding each player’s most valuable position. Right now it assumes that a player is most valuable at C, then SS and 2B, then 3B, OF, and 1B. This order is typically true, but each league is different. Ideally, it would be nice if it recognized leagues where (for example) OF are particularly valuable.

What else do you want to see in the Price Guide?

Worth Reading This Week: Up and Down

No Comments
December 19th, 2008 by Mays
Categories: Worth Reading

Let’s look at some of the interesting fantasy writings for this week.

Tim looks at some of The Biggest Losers and The Biggest Gainers, players who have seen their average draft position radically changed from 2008 to 2009. It’s a good reminder of just how much changes between draft day and the end of the year. (RotoAuthority)

In a similar vein, Victor talks about some Forgotten Players, guys with a solid track record that may be undervalued after disappointing 2008 seasons. (THT Fantasy Focus)

David mentions some names of young pitchers who saw a significant increase in their workload last year (the Verducci Effect), something that could cause problems for them in 2009. (Fangraphs Fantasy Baseball)

While it wasn’t quite during this past week, Rudy announced the addition of Marcel projections for their 2009 Point Shares. I hope to be taking a closer look at the Point Shares methodology soon. (Razzball)

Introducing the Price Guide

1 Comment
December 15th, 2008 by Mays
Categories: Price Guide

Much of the discussion on this site will involve the Price Guide, a tool I developed to build accurate rankings and dollar values based on players’ stats (or projected stats). All you have to do is enter your league settings (number of teams, stat categories, and positions), and it spits out values for every player, customized for your league.

While there are other sites that try to do the same kind of thing, I think that the current feature-set of the Price Guide makes it one-of-a-kind:

Completely customizable
The Price Guide can handle whatever stats your league wants to use. Do you want to count hitters’ OBP? How about HR/9 or K/BB for pitchers? The Price Guide can handle these and many more.

(And, if you have a category that is not currently included, let me know and I’ll see about adding it.)

Able to handle any size league
A lot of the player valuators are geared toward 10 or 12 team leagues and will become less accurate the more your league diverges from those settings. The Price Guide will work with any size league (including AL-only and NL-only leagues of any size).

Adjusted for positions
The Price Guide takes into account how many players your league starts at each position, and it adjusts the baseline accordingly. For example, if you have an auction league with 12 teams that each start 2 catchers, the Price Guide sets the value of the 24th catcher at $1 and calculates the other values accordingly.

When doing this, the Price Guide will also consider a player’s positional eligibility, customized for your league’s eligibility rules. So no matter if your league requires 1 game to qualify or 50, each player will be ranked at whatever position gives them the most value.

Built on a meaningful scale
For auction leagues, it’s not enough to know how one player compares to another on an arbitrary scale. That’s why the Price Guide presents player values in terms of dollars.

Like everything else, the amount of money per team is customizable to whatever your league uses.

Back and forward looking
Not only does the Price Guide build values based on last season’s stats, but it can also look ahead with values based on various projection systems. While these projections have their limitations, the Price Guide is able to accurately convert the stats into fantasy dollar values.

Accurate
I mentioned that there are other sites that try to build rankings and values of players for fantasy, but the Price Guide beats out all of them when looking at which system actually gives the best chance of winning. (Later, I’ll show that the head-to-head results backup my claim.)

Based on open methodology
I want the Price Guide to be the best valuation system possible, and I realize that community input is going to be important in making that happen. I’m going to be open with how the Price Guide works, in hopes that any flaws can be exposed and then improved.

So let me know if there’s something you think doesn’t look right, or if there’s something else you would like the Price Guide to do.

Give it a try: Price Guide

Welcome to LastPlayerPicked.com

Comments Off
December 12th, 2008 by Mays
Categories: Uncategorized

Last Player Picked is a site exploring various aspects of fantasy baseball analysis, especially relating to drafting and player valuation strategies.

Much of what is discussed here will involve the Price Guide, an online tool I developed to build dollar values or player rankings customized for any league configuration.