Thursday, September 22, 2016

2016 NFL Game Predictions: Week 3

Welcome!  I intend this to be an ongoing project of predicting NFL game outcomes, point spreads, and final scores.  My hope is that my models will improve over time as they become more sophisticated and use better data.  I will try to regularly publish predictions to keep myself accountable, and will make observations along the way about what is working and what isn't.  See below for latest updates.  Enjoy!


Previous 2016 Predictions:


------------------------------------------------------------------------------------------------------------------------
Recap: Week 3
9-7.  So the running total is 20 - 12 (62.5%).  With the probabilities I gave, the expected outcome was 9.44 correct predictions.  So this is as expected given my model performance and the probability predictions it output.
Did the ensemble do any better?  Yes.  If I go with the ensemble prediction with ties decided by outcome prediction, the prediction was 11-5.  If I let ties be decided by the final score, the prediction was still 11-5.  So I definitely should look into ensembling in a more robust and consistent way in the future.
_________________________________________________________________________________

Week 3:
My goal is to make some improvement in my models, however minor, once a week.  This week I made two changes.

The first was to normalize the distribution of final scores before predicting them.  The point of doing this is to reduce heteroscedasticity so that the regression errors of my model are more uniform.  In particular, the games in which a team scored 0 points cause the data to be skewed left.  I applied a power transform (.75) to bring the values above 0 closer to 0 so that the overall distribution is more normal.  This caused my final score model to perform better (r-squared = .146 to r-squared = .156).  It's still a terrible model, but now it is less terrible.

The second change was to start making my outcome, score difference, and final score models vote on the outcome.  The models often disagree in the final outcome, so this is a way of ensembling the models to produce a single outcome.  Right now, I am mostly curious about how this ensembling model performs compared to the outcome model.  So this is just exploration.  In the future, I hope to make a more serious attempt at ensembling models and using this ensemble to predict outcomes.  For now, my outcome predictor is my final prediction of the game.

Oddities and Bold Predictions:
  • Broncos vs. Bengals:
    • my outcome model gives the Bengals the win (barely at .504), the score difference predicts 0, and the final score model predicts 27-23 Broncos victory.  So this is essentially a tie.  Personally, I'd go with the Broncos against my outcome prediction.
  • Chiefs vs. Jets:
    • same as above.  Chiefs get the outcome win, score difference is 0, and Jets get the final score victory 27-25.  So another tie.  Still going with a Chief's victory.
  • Giants vs. Redskins:
    • my outcome says Giants, but the score difference and final score models both say Redskins.  I'd go with the Giants.
  • Raiders vs. Titans:
    • outcome says Titans, but score difference and score final say Raiders.  Both are 1-1 and I don't know enough about either team to make a judgement call.
Good luck in Week 3!

Here are the predictions for Week 3






Week
Date
Team
Home Away
Opponent
Prob. Win
Pred. Team Win
Actual Team Win
Pred. Team PD
Actual Team PD
Pred. Team Score
Pred. Opp. Score
Actual Team Score
Actual Opp. Score 
Ensemble Prediction Win
3
9/22/2016
Patriots
Texans
0.523
1
1
3
27
25
20
27
0
1.00
3
9/22/2016
Texans
@
Patriots
0.477
0
0
-3
-27
20
25
0
27
0.00
3
9/25/2016
49ers
@
Seahawks
0.468
0
0
-2
-19
18
22
18
37
0.00
3
9/25/2016
Bears
@
Cowboys
0.422
0
0
-3
-14
21
25
17
31
0.00
3
9/25/2016
Bengals
Broncos
0.504
1
0
0
-12
23
27
17
29
0.50
3
9/25/2016
Bills
Cardinals
0.295
0
1
-5
15
21
26
33
18
0.00
3
9/25/2016
Broncos
@
Bengals
0.496
0
1
0
12
27
23
29
17
0.50
3
9/25/2016
Browns
@
Dolphins
0.388
0
0
-3
-6
20
23
24
30
0.00
3
9/25/2016
Buccaneers
Rams
0.745
1
0
7
-5
24
14
32
37
1.00
3
9/25/2016
Cardinals
@
Bills
0.705
1
0
5
-15
26
21
18
33
1.00
3
9/25/2016
Chargers
@
Colts
0.499
0
0
-1
-4
25
26
22
26
0.00
3
9/25/2016
Chiefs
Jets
0.541
1
1
0
21
25
27
24
3
0.50
3
9/25/2016
Colts
Chargers
0.501
1
1
1
4
26
25
26
22
1.00
3
9/25/2016
Cowboys
Bears
0.578
1
1
3
14
25
21
31
17
1.00
3
9/25/2016
Dolphins
Browns
0.612
1
1
3
6
23
20
30
24
1.00
3
9/25/2016
Eagles
Steelers
0.382
0
1
-5
31
19
24
34
3
0.00
3
9/25/2016
Giants
Redskins
0.509
1
0
-1
-2
24
27
27
29
0.33
3
9/25/2016
Jaguars
Ravens
0.277
0
0
-6
-2
21
25
17
19
0.00
3
9/25/2016
Jets
@
Chiefs
0.459
0
0
0
-21
27
25
3
24
0.50
3
9/25/2016
Lions
@
Packers
0.377
0
0
-3
-7
25
26
27
34
0.00
3
9/25/2016
Packers
Lions
0.623
1
1
3
7
26
25
34
27
1.00
3
9/25/2016
Panthers
Vikings
0.595
1
0
1
-12
23
21
10
22
1.00
3
9/25/2016
Raiders
@
Titans
0.49
0
1
2
7
30
27
17
10
0.67
3
9/25/2016
Rams
@
Buccaneers
0.255
0
1
-7
5
14
24
37
32
0.00
3
9/25/2016
Ravens
@
Jaguars
0.723
1
1
6
2
25
21
19
17
1.00
3
9/25/2016
Redskins
@
Giants
0.491
0
1
1
2
27
24
29
27
0.67
3
9/25/2016
Seahawks
49ers
0.532
1
1
2
19
22
18
37
18
1.00
3
9/25/2016
Steelers
@
Eagles
0.618
1
0
5
-31
24
19
3
34
1.00
3
9/25/2016
Titans
Raiders
0.51
1
0
-2
-7
27
30
10
17
0.33
3
9/25/2016
Vikings
@
Panthers
0.405
0
1
-1
12
21
23
22
10
0.00
3
9/26/2016
Falcons
@
Saints
0.628
1
1
5
13
29
27
45
32
1.00
3
9/26/2016
Saints
Falcons
0.372
0
0
-5
-13
27
29
32
45
0.00

No comments:

Post a Comment