Bayesian worked so well for Defenses, let’s see if it can do anything for Kickers. If you will recall, last year, my models did no better than randomly guessing a kicker every week:
Here I have boxplots of the accuracy scores for each week in the 2016 season. Remember that lower accuracy scores are better. The models here are:
- Model D uses only the Player/Team that’s playing, the predicted score, and the predicted opponent score. It’s a pretty stripped-down model, but it avoids overfitting and was no better or worse than any others.
- Model D-glm is the same model, but assumes that the data fits a poisson distribution. The residuals are better with that model, but the predictions are largely unchanged
- Randomly guessing a kicker every week
- Yahoo experts predictions
It’s really not great that I can’t beat a random guess. I’m going to try a few Bayesian models. To see how it can be used effectively, check out my article on modeling Defenses. To see how it can be used ineffectively, keep reading!
Four Bayesian models
Dammit! Do you have any idea how hard it was to code those models? Very! It shouldn’t be that hard, but I barely know what I’m doing and I’m not a careful programmer, so yeah, it was pretty hard!
I got very little out of that in terms of accuracy. The three new Bayesian models are all Gibbs sampled models with slightly different model terms:
- JAGS-1: The player, the predicted score, and the predicted opponent score
- JAGS-2: The player, the predicted score, the predicted opponent score, and the weather conditions (clear/rain/snow only)
- JAGS-3: Player, score, opponent score, weather conditions, and what stadium they’re in (who the home team is)
- JAGS-4: Player, score, opponent score, weather conditions, the stadium, and whether they’re playing at home or away
If I’m being honest, I shouldn’t have gone past JAGS-1 because the model scores got worse as I went along. In Bayesian models, you use something called the Deviance Information Criterion, or DIC. It’s a way to score the model and whether you’re getting anything out of the increased complexity, and I wasn’t really, but I wanted to see if the increased complexity somehow improved my model accuracy anyway. Obviously it didn’t.
Week-by-week the accuracies looked like this:
Nothing distinguishing itself. And the ANOVA test:
## Analysis of Variance Table ## ## Response: accuracy ##DfSum Sq Mean Sq F value Pr(>F) ## week 16 18815.5 1175.9730.186 <2e-16 *** ## model 770.4 10.05 0.258 0.9685 ## Residuals 1054090.5 38.96 ## --- ## Signif. codes:0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Yeah, absolutely nothing.
Well that sucked. I really can’t get ahead with kickers. I’ll obviously keep trying, but absolutely none of these beat just randomly guessing each week. Can I stop trying yet?
Check back soon and I’ll show you some cool QB models that show some promise. The season is starting soon(ish), and I’ll be ready when it does.