Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
pmchem
Jan 22, 2010


Forever_Peace posted:

That is exactly one of the biggest questions I had, too. Like, 5.6 yards per carry is a lot, but with 93 carries, could that just have been due to random chance? What if it was 120 carries? 150? When would we start to believe he's a stud?

I just so happened to be writing an entire chapter on how we can answer this question (Chapter 4) last night. It's by far my favorite topic to write about so far. And it has gifs!

If you're going to delve into dealing with the statistics of small sample sizes, you would be well-served to read this article:
http://press.princeton.edu/chapters/s8863.pdf

In particular, figure 1.3 is relevant to the issue of 'judging performance of many RBs of varying sample size', although not a perfect comparison (of course!).

Adbot
ADBOT LOVES YOU

pmchem
Jan 22, 2010


Forever_Peace posted:

“Yeah, but take a look at where you actually start a run, a few yards behind the line of scrimmage. The opposite is true. Every step you take is, on average, a step closer to being tackled.”


Yeah, ok, that’s also true. Take a look at -5 yards. You’ll see that here behind the line of scrimmage, your expected yards remaining is about 9.1 yards. Which, surprise surprise, means that you’ll end up somewhere around… 4.1 yards, are the mean yardage on a rushing attempt. But if you break through the defensive line, things are looking good.
“Basically, you’re seeing in this graph the three major stages of a run: the yards that are blocked, the yards that are contested, and the open field.”

It’s the job of the offensive line try to help more runs go for more yards. In essence, pushing the cumulative density curve further to the right. In this “yards left” graph above, there’s almost a straight line on the left all the way up to about -2 or so yards, meaning that each step is bringing you closer to the actual “danger zone” where you are at risk of being tackled, but the blocking by the line ahead of you generally allows you to travel some “free” yards in the backfield from where you got the ball.

After that point, the defensive line kicks in. It’s their job to stop as many runs for as short of a gain as possible, pushing the cumulative density curve to the left.


“That’s cute that you think that.”


Ok, usually their job. Anyways, as we saw from the previous figures, most runs are stopped in this region, between 0-5 yards, depending the relative maneuvering of the offensive line and the defensive line. A solid running back is one that finds the blocked yards and falls forward every time without coughing up the ball.

I haven't read your code, but I'm wondering about how you can rigorously evaluate wildly different quality of offensive line play? There's a proposition (quoted above) that it will shift the cumulative distribution but not affect its shape, but has this been tested/validated? Is it even possible to validate with the data on hand? That seems the most difficult part of comparing players cross teams. When a lineman pancakes a defender, the run breaks for an random number of additional free yards. That would change the shape of the cumulative distribution, not just shift it. It seems really problematic for this kind of player analysis.

Anyway, the thread is really fun and I do appreciate the effort put forth into doing the best you can do with the data on-hand.

pmchem
Jan 22, 2010


Forever_Peace posted:

The inability to capture and express these influences would be very hard for predictions, yes, but I've tried to be very clear that I'm mostly constraining myself to retrospective explorations so far. This is important because in a retrospective analysis, there is no "novel". We don't need to try to project how a player should perform given some new offensive line - we can simply interpret a player's distribution as already reflecting some combination of that player and his surrounding cast (including offensive line, quarterback, and playcallers).

This is a well phrased and very important distinction. I imagine many people are interesting in using player comps to predict future performance, whether for fantasy football or discussing draft/FA signings of their favorite team. Prediction is really difficult.

Thanks for the reply, fun thread. Maybe I'll peek at your code and see if it's easily pythonized ;)

pmchem
Jan 22, 2010


John Brown posted:

E: Actually, I have a request. Would you mind doing an analysis on Melvin Gordon in the same way you hit on TJ Yeldon? It's thrown around a lot in these threads that Gordon sucks and I'd like to know whether or not it's too early to make that assessment. According to NFL.com he had 184car, 641yds, a 3.5 YPC average, and no TDs.

Just read his latest big post in detail. Specifically,

quote:

When you see somebody throwing around yards per carry with small sample sizes, say:
“Well actually, if your sample size is around [N], then any yards per carry average
between [Blah and Blah] could easily be explained by the random variance of a perfectly
average running back.”

[N] [Blah and Blah]
10 2.80-5.10
15 3.06-5.00
20 3.25-4.90
25 3.28-4.88
30 3.37-4.87
40 3.48-4.78
50 3.54-4.70
75 3.65-4.62
100 3.74-4.57
150 3.81-4.49
200 3.87-4.46
250 3.90-4.42
300 3.92-4.41
350 3.95-4.39
400 3.96-4.38

150 < 184 < 200 and 3.5 < 3.81, therefore the entirety of the San Diego Chargers rushing game while Melvin Gordon was the chosen ball carrier was distinctly below NFL average.

However, we don't know if Melvin will be below average in the future or not.

pmchem
Jan 22, 2010


The Chargers' line was bad going into the season and became worse with injuries. That explains most of last year's performance for Woodhead and Gordon. Keep an eye on draft/FA for SD OLine.

pmchem
Jan 22, 2010


Next step to developing a predictive model should be trying to separate RB performance from the surrounding cast, but I don't know if you have the database for that on hand. Going to give it a shot? Or perhaps a confidence based model that can quantify similarity year-to-year in surrounding cast, and then forecast RB performance with some variable margins for error, or distributions of results?

Basically, you have dozens of readers wanting to know who to draft in fantasy this season (that's okay to talk about in broad generalities, here, I hope?). But you already knew that :)

pmchem
Jan 22, 2010


Forever_Peace posted:

Bottom Line
My personal take on this info is that Freeman is no slouch, is great in the passing game, and is evaluated as the better pass-blocker. But Coleman is probably the better runner (though small sample size etc etc).

I think your disclaimer at the end deserves more emphasis. From your own CH4 ( http://forums.somethingawful.com/showthread.php?threadid=3763012&userid=0&perpage=40&pagenumber=3#post456827392 ), the performance of either player "could easily be explained by the random variance of a perfectly average running back." We simply don't know which is the better runner. One thing we know for sure, though, is that Freeman is good at catching the ball.

pmchem
Jan 22, 2010


Going into week 17, I'm going to revisit some things I commented on much earlier in this thread:

On Melvin Gordon --

pmchem posted:

Just read his latest big post in detail. Specifically,

quote:

When you see somebody throwing around yards per carry with small sample sizes, say:
“Well actually, if your sample size is around [N], then any yards per carry average
between [Blah and Blah] could easily be explained by the random variance of a perfectly
average running back.”

[N] [Blah and Blah]
10 2.80-5.10
15 3.06-5.00
20 3.25-4.90
25 3.28-4.88
30 3.37-4.87
40 3.48-4.78
50 3.54-4.70
75 3.65-4.62
100 3.74-4.57
150 3.81-4.49
200 3.87-4.46
250 3.90-4.42
300 3.92-4.41
350 3.95-4.39
400 3.96-4.38

150 < 184 < 200 and 3.5 < 3.81, therefore the entirety of the San Diego Chargers rushing game while Melvin Gordon was the chosen ball carrier was distinctly below NFL average.

However, we don't know if Melvin will be below average in the future or not.


Forever_Peace posted:

Quick Hits: What the gently caress is up with Melvin Gordon?
Possibly a survival strategy for dealing with a poo poo line?

The poor line play didn't just impact Gordon. The rest of his teammates also didn't fare so well this year.

We see exactly the same propensity this year for Chargers running backs to get cut short. They just weren't breaking through to the open field. And we know that Woodhead has historically been really effective on the ground - above-average middle-distance running is actually kind of his thing as an elite pass-catching back.

The fact that not even Woodhead could break through for his typical gains tells me that problem may have been in the offense as a whole, rather than specifically for Melvin Gordon

Gordon doesn't look look like a grinder, much less a pass-catching guy. Hey looks like a JAG.

Finally, all this should lead us to ask: how much of this shaky performance could have been due to chance? How often does a league-average running back have a season like Gordon's?
The answer is "not very often". Given the number of touches Gordon has, a league-average back does better about 95% of the time:

Hopefully he can turn it around, but I wouldn't hold my breath. Things are looking pretty grim so far.

That above quote is heavily edited for space, no disrepect, but I wanted to include points that reflected both sides to the analysis. Yeah, the SD running game was real bad in 2015. That appeared to affect Gordon and Woodhead. But, even knowing that, Gordon gets hit bad in the final analysis -- which is phrased as predictive analysis. The JAG comment was probably most fitting to describe 2016. His YPC in 2016 was, indeed, explainable by that of a league average running back (still much better than 2015!). It's just so dang hard to separate out the effects of play-calling, health, and line play from individual performance sometimes.



Re: Freeman vs. Coleman --

pmchem posted:

I think your disclaimer at the end deserves more emphasis. From your own CH4 ( http://forums.somethingawful.com/showthread.php?threadid=3763012&userid=0&perpage=40&pagenumber=3#post456827392 ), the performance of either player "could easily be explained by the random variance of a perfectly average running back." We simply don't know which is the better runner. One thing we know for sure, though, is that Freeman is good at catching the ball.

Forever_Peace posted:

Yep, that's totally fair! 87 carries is really not a lot. Based on record alone, it's probably too soon to say.

But I think it is important to consider our priors here. Coleman had the better college career, showed more on film, and was drafted higher. The superior NFL running is converging with other lines of evidence.

Freeman turned out noticeably better than Coleman this year in YPC, but we face the same problem as last year: Coleman still suffers from sample size issues. ATL offense w/ Coleman could be explained by a league average back this year, but not w/ Freeman. I haven't examined the distribution for either. Amusingly, if you compare their aggregated 2015-2016 stats, their YPC is 4.25 vs 4.41. Basically indistinguishable, especially given sample size disparity.



Anyway, I hope this thread leads to more fun, novel analysis in the upcoming offseason. Maybe with new data sources! Who knows? Graphs are great.

pmchem
Jan 22, 2010


Forever_Peace posted:

:siren: Chapter 6 ("Surprisal Me") is now Live here :siren:

Wherein we invent, from scratch, a new statistic that:
- Is theoretically motivated.
- Is many times more stable from year to year than yards per carry.
- Works reasonably well for smaller, game-sized sample sizes.
- Handles the "long run" problem that YPC and other stats have.
- Comes with a special second script that anybody can use to calculate game score on their own.

The final draft weighs in at 7500 words, 28 figures, two equations, and 340 lines of code. Shoutout to my reviewers for helping me whip all this into respectable shape.

Chapter 6 app can be found here (I already released this earlier, but now it has it's own page).

Would appreciate help sharing this one. Tweet it at all your football people.

Good stuff. I see you added the log equation for surprisal as compared to the draft chapter. Could you also add the explicit formula for game probability? It would save some math nerds a trip to the R code to verify that the math you (presumably) implemented in the code matches the reader's interpretation of the verbal description given in the "whole-game probability" section.

I still want to see how this compares to some other historical data on advanced metrics or fantasy ranks, would be really interesting. e.g. surprisal ratings using data for 2010-2015, ranking those players, compare to fantasy rankings pre-season 2016, compare to other advanced metrics' ranks of players using ~2015 era data. Could do this for a whole series of years, of course. The questions being: is this merely an interesting statistic that yes, confirms our ideas about particular examples such as JCharles? Does it have predictive power greater than some other advanced metric? Does it confirm intuition from other sources?

An interesting tangent to that would be: how far does a player need to differentiate himself in one (or multiple) seasons on the surprisal metric in order to get into the HOF? It could be a necessary, if not sufficient, condition for HOF.

pmchem
Jan 22, 2010


Leperflesh posted:

Fantasy rankings are heavily skewed (or should be) by both receptions and scoring, whereas this surprise rating is entirely focused on yardage (which also means it's still underrating goal-line backs and under-valuing x-and-goal carries).

So I don't think the numbers are particularly comparable. You'll find some high-ranked fantasy guys who are also very surprising, but also a lot that aren't, because they're receiving backs or specialize at the goal line.

I agree, but it would be interesting. And let's face it: lots of these types of analyses are motivated by the fantasy football community. I mean, unless FP is gunning to get hired as a quant in some front office, his audience has immense overlap with fantasy football players.

pmchem
Jan 22, 2010


I have a NFL data science question and this seems like the most appropriate place. Let's talk raw data sources. Ground Control uses nfldb.

As far as I'm aware (and I might be wrong), if a player does not collect stats in a particular game, nfldb does not differentiate between: (1) player was active, but did not play, (2) player was inactive due to injury, (3) player was suspended. I'm also not sure what it does with players who not on a NFL roster for a given week but collect stats other weeks; presumably it has week-by-week NFL roster status for each player.

Is there an easy source for data types 1-3? Especially #2+#3? Preferably in a way that can be easily imported via a python interface such as nfldb? I am looking to do a little machine learning, but missing that data would make the effort pointless. Manually entering the data would be prohibitive on my human-time.

pmchem
Jan 22, 2010


Ghost of Reagan Past posted:

This is actually the hardest part of doing data science.

yeah, which is why I'm asking around. I looked at PFR and their weekly data seems limited to starters and participants. No information about deactivation due to injury vs suspension.

pmchem
Jan 22, 2010


Forever_Peace posted:

I don't know either but if you find a source let me know.

Well if you find a source of that data, I'll throw some of my ML skills at some things. Need the data, though.

pmchem
Jan 22, 2010


Forever_Peace posted:

Some other players 2+ SD above average:
Ezekiel Elliott
Mike Gillislee
Mark Ingram
BenJarvus Green-Ellis
Jeremy Hill

The fact that "the Law Firm" BJGE makes that list should only reinforce the fact that it's really the rushing offense that is being judged here, not the individual RB. While there may be a high correlation between the two, false positives (and negatives) will sneak in. BJGE is a career 3.9 YPC guy who managed a high TD/carry rate due to playing on the Patriots a few years.

pmchem
Jan 22, 2010


Well, without being able to peer into your formula and see how much each particular factor counts towards your EPA, it's hard to frame an argument. I can only discuss by example. So, example: David Johnson has 9 career fumbles compared to BJGE's 5, and DJ has those fumbles on a little more than half the career touches of BJGE. I'd take DJ over BJGE on my football team any day of the week and twice on Sunday. They were rated similarly in your SD metric.

BJGE, on the other hand, took years to earn a one-dimensional / GLB rushing job with the Pats. Their (arguably best front office in the NFL) let him walk in FA. He had one good season on a 3-year contract with Cincy, and washed out of the league before age 30, despite not having any major injuries. He's Just A Guy and sometimes fumble rates are just luck. I will never be convinced BJGE is 2 standard deviations above most other RB's. He was in the right spot, at the right time, with the right stocky, power rushing frame to fall forward for the Pats.

pmchem
Jan 22, 2010


Forever_Peace posted:

EPA is much more sensitive to playcalling and situational factors than other metrics I've worked with. It really reflects players that have been put in a situation to be successful.

It's real late after a 20-team draft and game of thrones, so I'm quoting just this part. Yes, I agree with the quoted part! I like your analysis and efforts. But they are often framed around individual players, and the casual reader may read it as an absolute metric of individual player value. There is so much going into it reflecting the rest of the team around the player, the playcalling, and the general offensive efficiency of the team that is extremely difficult to disentangle. You put BJGE on the 2010 Pats, he has a great EPA. You put him on I dunno, the 2010 Cardinals, he's Beanie Wells, nobody remembers him and his EPA is uninteresting.

The trick is identifying (algorithmically) the talents that transcend their situation. Charles might be one. Barrie Sanders was one.

Adbot
ADBOT LOVES YOU

pmchem
Jan 22, 2010


I just saw that the nfldb and nflgame github repos were marked unmaintained by the owner. So sad. Did anyone take over on a new fork, or is there a good alternative free, python-friendly nfl data source now?

There’s a couple kaggle datasets of questionable quality.

  • Locked thread