After writing The Peak Age for an NFL Running Back, I became intrigued with how age affects running backs and how predictable the decline is. Data analysis programming languages, like Python and R, are very helpful when studying historical seasons. Let’s see how successful a predictive model using running back age and PPR scoring can be.

Defining a Peak Season

To win fantasy football championships, we are all attempting to identify quality or peak running back seasons — elite players we can start each week.

Typically, the RB12 hovers around 230 PPR fantasy points, which equates to 14.4 PPR fantasy points per game. For the purpose of this study, I included all running back seasons since 2000 to score at least 230 PPR fantasy points or at least 200 PPR fantasy points and 14.4 fantasy points per game.

To determine successes or failures, I charted whether the player maintained the same pace (14.4 fantasy points per game) in the following season. If the player maintained the same pace, he was charted as a success. If he failed to score 14.4 fantasy points per game, he was charted as a failure.

The study includes 234 individual running back seasons.

Note: A fair number of seasons were removed because of inconclusive results. For example, Jamaal Charles’ 2011 season was not included because in the following season, he was injured in Week 2. If results for the following season were not conclusive, the season was removed.

The table below contains all of the seasons that were included to create the models. The ‘0’ or ‘1’ under N + 1 indicates whether the player succeeded in the following season.

RkPlayerAgePPRFY
1Marshall Faulk*2732.851
2Priest Holmes2931.551
3Marshall Faulk*2830.191
4LaDainian Tomlinson*2730.071
5Priest Holmes3027.881
6LaDainian Tomlinson*2427.611
7Priest Holmes3126.610
8Le'Veon Bell2426.451
9Steven Jackson2325.961
10Todd Gurley2325.551
11David Johnson2525.491
12Jamaal Charles2725.201
13Edgerrin James2224.891
14Chris Johnson2424.741
15Brian Westbrook2824.691
16Arian Foster2424.561
17Ahman Green2624.251
18Clinton Portis2223.961
19LaDainian Tomlinson*2323.951
20Ricky Williams2323.431
21Ray Rice2423.431
22Shaun Alexander2823.361
23Arian Foster2523.321
24Larry Johnson2723.311
25Le'Veon Bell2223.161
26LaDainian Tomlinson*2822.981
27LaDainian Tomlinson*2622.821
28Ricky Williams2522.731
29Larry Johnson2622.711
30Tiki Barber3022.501
31LaDainian Tomlinson*2522.271
32Brian Westbrook2722.171
33LeSean McCoy2321.961
34DeMarco Murray2621.940
35Adrian Peterson2721.711
36Domanick Williams2421.711
37Charlie Garner3021.710
38Ezekiel Elliott2121.691
39Matt Forte2921.661
40Tiki Barber2921.661
41Brian Westbrook2521.351
42Devonta Freeman2321.091
43Matt Forte2821.081
44Eddie George2721.080
45Fred Jackson3021.060
46LaMont Jordan2721.060
47Arian Foster2821.041
48Priest Holmes2820.931
49Deuce McAllister2420.871
50Darren McFadden2320.721
51Edgerrin James2720.690
52LeSean McCoy2520.660
53Jamal Lewis2420.570
54Edgerrin James2520.551
55Shaun Alexander2520.471
56Ray Rice2220.441
57Frank Gore2320.441
58Deuce McAllister2520.421
59Adrian Peterson2420.371
60Marshall Faulk*2920.361
61Ezekiel Elliott2220.321
62Shaun Alexander2720.291
63Tiki Barber2720.281
64Maurice Jones-Drew2420.221
65Marshall Faulk*3020.160
66Ahman Green2420.071
67Alvin Kamara2220.031
68Frank Gore2619.901
69Ahman Green2319.901
70LeSean McCoy2819.891
71Clinton Portis2119.831
72Curtis Martin*3119.830
73LeSean McCoy2219.811
74Curtis Martin*2719.371
75Ahman Green2519.311
76Melvin Gordon2319.281
77Brian Westbrook2919.270
78DeAngelo Williams2519.231
79Shaun Alexander2619.191
80Matt Forte2319.090
81Brian Westbrook2619.031
82Edgerrin James2619.011
83Charlie Garner2818.930
84Marshawn Lynch2818.890
85Shaun Alexander2418.881
86Maurice Jones-Drew2618.810
87Steven Jackson2518.761
88Kevin Jones2418.740
89Curtis Martin*2818.691
90Ricky Watters3118.590
91Domanick Williams2518.570
92Matt Forte2618.561
93Peyton Hillis2418.560
94Adrian Peterson2518.461
95Kareem Hunt2218.451
96Joseph Addai2418.440
97DeMarco Murray2518.441
98Frank Gore2718.410
99DeMarco Murray2818.360
100Willie Parker2618.230
101Travis Henry2418.171
102Adrian Peterson2218.141
103Melvin Gordon2418.011
104Tiki Barber2517.971
105Devonta Freeman2417.761
106Leonard Fournette2217.711
107Ray Rice2517.690
108Corey Dillon3017.450
109Michael Pittman2917.440
110Michael Turner2617.441
111Maurice Jones-Drew2317.431
112Fred Taylor2717.391
113Mark Ingram2817.380
114Clinton Portis2617.291
115LaDainian Tomlinson*2917.290
116Mike Anderson2717.290
117Ray Rice2317.291
118Thomas Jones3017.241
119Reggie Bush2217.231
120Stephen Davis2617.210
121Marshawn Lynch2717.211
122Lamar Smith3017.200
123Adrian Peterson2617.161
124Chris Johnson2517.120
125Reggie Bush2817.090
126Clinton Portis2417.061
127Steve Slaton2217.061
128Maurice Jones-Drew2117.041
129Eddie Lacy2317.040
130Trent Richardson2216.980
131LaDainian Tomlinson*2216.961
132Mark Ingram2616.951
133Darren Sproles2816.891
134Maurice Jones-Drew2516.861
135Marshawn Lynch2616.851
136Ricky Williams2416.851
137Ryan Mathews2416.830
138Fred Taylor2616.761
139Chris Johnson2316.721
140Steven Jackson2416.701
141Jamaal Charles2816.691
142Le'Veon Bell2116.681
143Thomas Jones2616.681
144Darren Sproles2916.620
145Matt Forte2516.601
146Tiki Barber2616.591
147Matt Forte3016.520
148Jamal Lewis2816.480
149LeSean McCoy2916.480
150Steven Jackson2616.451
151Reggie Bush2116.421
152Domanick Williams2316.371
153Eddie George2916.310
154Marshawn Lynch2516.311
155Adrian Peterson3016.291
156Adrian Peterson2316.281
157Frank Gore2516.281
158Corey Dillon2716.211
159Eddie Lacy2216.171
160Jamal Lewis2316.121
161Todd Gurley2116.030
162C.J. Spiller2515.960
163Duce Staley2715.940
164Duce Staley2615.921
165Frank Gore2415.921
166DeAngelo Williams2615.920
167Brandon Jacobs2615.810
168Ahman Green2915.800
169Warrick Dunn2515.781
170Clinton Portis2315.771
171Steven Jackson2215.771
172Travis Henry2515.760
173Alfred Morris2415.750
174Moe Williams2915.620
175Clinton Portis2715.590
176Warrick Dunn2615.571
177Rudi Johnson2615.551
178James Stewart3115.530
179Marshawn Lynch2215.510
180Tiki Barber2815.481
181Justin Forsett2915.430
182Ricky Williams3215.410
183Willis McGahee2615.390
184Warrick Dunn2715.361
185Earnest Graham2715.350
186Jordan Howard2215.340
187James Stewart2915.320
188Ahman Green2715.310
189Ahmad Bradshaw2415.310
190Marion Barber2515.280
191Deuce McAllister2615.230
192Steven Jackson2715.211
193Rashard Mendenhall2315.190
194Jamaal Charles2315.181
195Mark Ingram2715.141
196Corey Dillon2815.060
197Thomas Jones2715.050
198Chris Johnson2815.010
199Jamaal Charles2614.971
200Edgerrin James2414.951
201Steven Jackson2814.920
202Marion Barber2414.921
203Curtis Martin*2914.910
204Chester Taylor2714.890
205Thomas Jones3114.880
206Latavius Murray2614.870
207Fred Taylor2814.850
208Ladell Betts2714.810
209Rudi Johnson2514.801
210Matt Forte2714.761
211Fred Jackson3214.670
212Reggie Bush2614.610
213Michael Pittman2514.610
214Carlos Hyde2714.610
215Michael Bennett2414.610
216LeGarrette Blount3014.560
217Doug Martin2614.520
218Rudi Johnson2714.520
219Maurice Jones-Drew2214.501
220Lamar Miller2414.490
221DeAngelo Williams3214.460
222Mike Anderson3214.440
223Michael Turner2914.430
224Todd Gurley2426.581
225Saquon Barkley2124.111
226Christian McCaffrey2224.091
227Alvin Kamara2323.611
228Melvin Gordon2522.961
229Ezekiel Elliott2321.941
230Joe Mixon2217.390
231James White2617.290
232David Johnson2715.410
233Phillip Lindsay2414.850
234Tarik Cohen2314.620

Preface

When it comes to machine learning, you must build and teach a model with a training set. Then, to analyze the accuracy of the model, some observations must be set aside to test the model.

In Kernel SVM I used 75 percent of the observations to train the model, meaning 175 of the 234 seasons were used as a training set. The remaining 25 percent, or 59 observations, were used to test the model.

Based on the type of data being analyzed, the two best algorithms appear to be Kernel SVM and Naïve Bayes. We’ll start with Kernel SVM and see which algorithm is more accurate.

Kernel SVM Model

Examining running back to predict decline.

Let’s first understand the chart. The Y-axis refers to PPR points per game while the X-axis refers to Age. The green points indicate players who succeeded in the following season, the red points indicate those who did not. The top left is young, high-scoring players. The bottom left refers to low-scoring, young players. The top right refers to old, high-scoring players. The bottom right refers to old, low-scoring players.

Note that there are far fewer points on the right side of the graph — 84.6 percent of the seasons took place before age 29. Once you include the age-29 seasons, it accounts for 214 of the 234 seasons — 91.4 percent. It is hard to just make this list at 28 years old or older, never mind succeeding in the following season.

The conclusion we can draw so far is the model doesn’t like the older, low-scoring seasons. The drop-off begins for low scoring seasons between age 27 and 28 seasons. At age 29, a running back play looks likely to fall off. This is the training model, which the machine learns from. Now so we will see how the model fares in predicting the remaining 59 observations.

Let’s check the results of the Kernel SVM Test.

Out of 59 total observations, the Kernel SVM model predicted 45 correctly, which is an accuracy rate of 76.2 percent. While there are some incorrect predictions on the boundary, the model does a decent job of predicting the drop-off.

Naïve Bayes Model

For the Naïve Bayes model, there are also 59 observations to test the model or 25 percent of the seasons. 175 observations were used to train the model.

The Naïve Bayes algorithm returns a similar result – as the curve appears to follow a very similar line. Let’s check the results of the Naïve Bayes model test.

 

Out of 59 total observations, the Naïve Bayes model predicted 47 correctly which is an accuracy rate of 79.6 percent. It was a little more accurate than the Kernel SVM model and on average, will predict four out of five seasons correctly.

What Does This Mean for 2020?

The two things that cause the models’ concern are old age and low scoring seasons. I wrote this article last season and the model advised avoiding David Johnson.

In 2019, 14 players scored at least 230 PPR fantasy points or at least 200 PPR fantasy points and 14.4 fantasy points per game. Each player is listed below.

PlayerAgeTmGPPRPPR/G
Christian McCaffrey23CAR16471.229.45
Aaron Jones25GNB16314.819.68
Ezekiel Elliott24DAL16311.719.48
Austin Ekeler24LAC1630919.31
Derrick Henry25TEN15294.619.64
Dalvin Cook24MIN14292.420.89
Leonard Fournette24JAX15259.417.29
Nick Chubb24CLE16255.215.95
Alvin Kamara24NOR14248.517.75
Saquon Barkley22NYG13244.118.78
Mark Ingram30BAL15242.516.17
Chris Carson25SEA15232.615.51
Todd Gurley25LAR15219.414.63
Kenyan Drake252TM14214.215.3

Mark Ingram will play next season at 31 years old and with a relatively low-scoring RB1 season, the model lists him as a clear fade.

Playing next season at 24 years old after averaging over 29 fantasy points per game, the model couldn’t be more optimistic about McCaffrey’s odds of remaining elite next season.

The model prefers the running backs who will be 25 next season to the backs who will be 26. The soon-to-be 25-year-olds are Ezekiel Elliott, Austin Ekeler, Dalvin Cook, Leonard Fournette, Nick Chubb, and Alvin Kamara.

The soon-to-be 26-year-olds are Aaron Jones, Derrick Henry, Chris Carson, Todd Gurley, and Kenyan Drake. Jones and Henry avoided the danger zone by scoring over 19 fantasy points per game. The model is less optimistic about Carson, Gurley, and Drake, who all hovered around 15 fantasy points per game.