This site functions as an archive of Conner's Blog, which was a blog from 2006-2014 located at http://connermccall.com. Images and links are likely to be broken.

Fantasy Football Rankings

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
Interceptions -2 Points
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.

[caption id="" align="alignright" width="240" caption="Future Football Stars or Fantasy Football Players"]Future Football Stars or Fantasy Football Players[/caption]

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
endif

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;

First Last Totals Averages Games Weight
Adrian L. Peterson 147 10.5 14.29 35.08
LaDainian Tomlinson 131.58 8.22 17 32.96
Tom Brady 129.42 8.09 17 32.7
Peyton Manning 107.75 6.73 17 30.07
Marshawn Lynch 103 7.92 13.27 28.96
Joseph Addai 100.25 6.57 15.65 28.63
Derek Anderson 90.5 6.01 16.54 28.03
Drew Brees 89.83 5.61 17 27.9
Ryan Grant 92 6.13 15.31 27.45
Brian Westbrook 87.67 5.97 15.88 27.37

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:

First Last Totals Averages Games Weight Experts Experts Weight
Adrian L. Peterson 147 10.5 14.29 35.08 2.4 37.48
LaDainian Tomlinson 131.58 8.22 17 32.96 2.48 35.44
Tom Brady 129.42 8.09 17 32.7 1.48 34.18
Peyton Manning 107.75 6.73 17 30.07 0.54 30.61
Joseph Addai 100.25 6.57 15.65 28.63 1.92 30.55
Marshawn Lynch 103 7.92 13.27 28.96 1.22 30.18
Brian Westbrook 87.67 5.97 15.88 27.37 2.14 29.51
Ryan Grant 92 6.13 15.31 27.45 1.52 28.97
Randy Moss 83.17 5.3 16.94 27.14 1.82 28.96
Derek Anderson 90.5 6.01 16.54 28.03 0 28.03
Drew Brees 89.83 5.61 17 27.9 0.02 27.92
Terrell Owens 77.75 5.54 15.79 26.26 1.32 27.58
Clinton Portis 69.42 5.06 16.83 26.01 1.48 27.49
Carson Palmer 84.5 5.28 17 27.25 0 27.25
Ben Roethlisberger 85 5.76 15.9 27 0 27
Tony Romo 81.25 5.08 17 26.86 0.12 26.98
Maurice Jones-Drew 85 5.52 15.65 26.6 0.34 26.94
Marques Colston 82 5.33 16.63 26.89 0.02 26.91
Jay Cutler 72.75 5.96 16.44 26.82 0 26.82
Marion Barber III 65.67 4.17 16.94 24.98 1.72 26.7
Matt Hasselbeck 77.58 5.14 16.92 26.65 0 26.65
Reggie Wayne 67.92 4.24 17 25.24 1 26.24
Steven Jackson 74.08 5.32 12.9 23.96 2.24 26.2
Brett Favre 75.75 4.73 17 26.19 0 26.19
Donovan McNabb 72.42 6.13 14.69 25.75 0 25.75

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.


Comments