I finished finalizing my fantasy football ranking for this year's draft. Over the last 4-5 years I have not kept up with the NFL. So I have not been competitive in any of the I've been in. Since 2003 I haven't finished in the top five in the leagues I've participated in. I decided this has to change. To accomplish this, I decided to do some actual research and analysis.
The initial steps in my quest were to locate the historical data in a format I could load into a mysql database. The next step was to run a few queries to determine various useful information. I started by calculating the total fantasy points each player scored in every game he played.The one pay league I play in uses a fairly standard scoring system:
|Passing Yards||50 Yard Per Point|
|Passing TD||4 Points|
|Rushing and Receiving Yards||20 Yards Per Point|
|Rushing and Receiving TD||6 Points|
We also award or take away points for fumbles, fumble recoveries, 2pt conversions, etc, but I didn't factor those in as scoring change per player is usually less than 10 points per season.
Then came the fun part, weighing each score to determine which players will be valuable this coming year. To accomplish this I pulled the last three years of fantasy scoring averages per games played and total points scored. I also pulled the number of games played by each player in each of the 3 years I was looking at.
It took a while, but I think finally determined a system that gives me good information about each player, without the data seeming illogical. First, I calculating a score for the three year averages for each player. I first determined if the player had scored in the previous year. If he did not I gave that player a zero. If they did score then I determined for which of the three previous seasons he had scored points in. To calculate the score I valued the 2005 season at 1/4 of the average, 2006 was valued at 1/2 the average, and 2007 receiving the full average. I then divided the score by the number of years the player had been active. So in the case of Joseph Addai, I took half of his 2006 average of 6.56 added this to last years average of 9.87, divided the total by 2 and came up with score of 6.57.
if 2007_avg = 0; return 0;
elseif 2005_avg = 0; return (2006_avg * .5 + 2007_avg) / 2
else return (2005_avg * .25 + 2006_avg * .5 + 200_)avg) / 3
I used the same calculation for total points scored over the three years. Points for games that were played were calculated a bit differently. I wanted to penalize players that were injury prone, but I wanted last years games played to weigh heavily so rookies would not be impacted for not playing in previous seasons. If a player played 2-3 games in 2005 and 2006, but played all 16 in 2007, I wanted him to score highly. To accomplish this, I added the total games played in the three years and divided the total by 48, which was the number of possible games. I then added the number of games played in 2007 to that result. So in the case of Cedric Benson, I added 9, 15, and 11 and divided by 48 which returned .73, I then added that to 11 for a score of 11.73. If a player played in every game over the three years he received a 17.
proportion = (games_in_2005 + games_in_2006 + games_in_2007) / 48;
return proportion = games_in_2007;
Next I needed to use these scores to calculate a final ranking. This I accomplished by dividing the total points score by the game score. I then added that result to the players average score and then added the game score in. This resulted in the following top ten ranking.
return (total_points_score / games_played_score) + average_points_score + games_played_score;
These were my rankings, but I took it a step further. I assume people who worry about fantasy football for a living know more about the sport then me. I took some expert opinion into consideration. Using a magazine I picked up at B. Dalton, I gave each player a score based on five experts ranking of the top 25 players. I gave the number one pick for each expert 25 points and the 25th player one point. I then averaged the ranking and divided by 10. This resulted in the following top 25:
I'm happy with this result. Using these values should land me a solid team. Of course the game is won during the season, so I'm going to have to follow the league this year. Hopefully I can remain competitive, I would be happy with a 3th or 4th place finish this year. Hopefully having a useful way of valueing players before the draft will help me reach that goal.