Thursday, September 29, 2016

2016 NFL Game Predictions: Week 4

















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:


_________________________________________________________________________________

Week 4 Recap:

7 - 8.  Brutal.  And the ensemble predictions would have done worse: 6 - 9.  The probabilities I gave estimated 9.57 correct predictions, so this was definitely disappointing.  The running totals are now 27 - 20, or 57% correct. 

This week upset a lot of predictions.  What happened?  These were the surprising results according to my model:
  • The Bills beat the Patriots
  • The Rams beat the Cardinals
  • The Raiders beat the Ravens
Once again, each of these teams (Bills, Rams, and Raiders) hasn't been to the playoffs in a long time.  The Rams haven't been to the playoffs since 2004.  The Bills haven't been since 1999.  The Raiders haven't been since 2002.  I worry that these teams will continue to be over penalized by this variable in the model, and maybe that is partly why these predictions were off.  I'll work on adjusting this variable in the model so that it remains helpful while not hurtful.

We'll try again in Week 5.
    _________________________________________________________________________________

    Week 4:

    First improvement: add a picture.  The above is generated in R using the basic plotting methods (plot, lines, polygon).

    Second, I tried to use area under the curve from an ROC curve instead of using accuracy to assess my outcome model.  It doesn't really improve.  This is to be expected as the confusion matrix is pretty symmetrical since I am really making two predictions for the same game: one for the home team and one for the away team.  Plus, the attributes doing the predicting are fairly balanced in that if I have one metric for the home team, I also have the same metric for the away team.  This would matter if I was only making one prediction or if my attributes focused on different aspects for each team.  But they don't, so the model still is generalizing to about 65% correct predictions of outcome.

    Third, I reanalyzed the attributes in my score difference and final score models.  Some attributes were discarded and others were added.  The score difference model increased from an r-squared value of .22 to .29.  The score final model increased from an r-squared value of .17 to .23.  However, the number of attributes for both models increased greatly, so I worry that these are overfitted.  In future weeks, I hope to do some pairing down of the attributes using a way to penalize the increased complexity.  So we are making progress, however slowly it may be.  I hope.


    Oddities and Bold Predictions:
    • Broncos vs. Buccaneers
      • Broncos are heavily favored by my outcome model, but slightly edged out in the point difference and final score models.  So the ensemble favors the Buccaneers.  I'd still go with the Broncos.
    • Cardinals vs. Rams
      • I still think the Cardinals are going to win, as all three models agree.  The models do rely heavily on the number of years since the playoffs, which is why the Rams always look so bad.  This game is surely overestimated and will likely be a tough match for the Cardinals.  The Rams always play well in divisional games.
    • Falcons vs. Panthers
      • My outcome model favors the Falcons, but the other two models favor the Panthers.  I would have said the Panthers, but they are 1-2, so maybe things have changed since last season.
    • Giants vs. Vikings
      • The outcome model is exactly a tie.  You have to go out to the fourth decimal in order to see a difference, which gives the Giants the victory.  Point difference is also 0, while the final scores give the game to the Giants.  So I guess I'll go with the Giants, even though the Vikings are 3-0.

    Good luck in Week 4!

    Here are the predictions for Week 4


    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
    4
    9/29/2016
    Bengals
    Dolphins
    0.51
    1
    1
    9
    15
    23
    19
    22
    7
    1
    4
    9/29/2016
    Dolphins
    @
    Bengals
    0.49
    0
    0
    -9
    -15
    19
    23
    7
    22
    0
    4
    10/2/2016
    49ers
    Cowboys
    0.427
    0
    0
    2
    -7
    16
    17
    17
    24
    0.333333
    4
    10/2/2016
    Bears
    Lions
    0.314
    0
    1
    -8
    3
    27
    33
    17
    14
    0
    4
    10/2/2016
    Bills
    @
    Patriots
    0.311
    0
    1
    -11
    16
    21
    28
    16
    0
    0
    4
    10/2/2016
    Broncos
    @
    Buccaneers
    0.626
    1
    1
    -1
    20
    26
    28
    27
    7
    0.333333
    4
    10/2/2016
    Browns
    @
    Redskins
    0.364
    0
    0
    -9
    -11
    17
    29
    20
    31
    0
    4
    10/2/2016
    Buccaneers
    Broncos
    0.374
    0
    0
    1
    -20
    28
    26
    7
    27
    0.666667
    4
    10/2/2016
    Cardinals
    Rams
    0.836
    1
    0
    14
    -4
    34
    20
    13
    17
    1
    4
    10/2/2016
    Chargers
    Saints
    0.546
    1
    0
    -1
    -1
    28
    25
    34
    35
    0.666667
    4
    10/2/2016
    Chiefs
    @
    Steelers
    0.437
    0
    0
    -3
    -29
    18
    20
    14
    43
    0
    4
    10/2/2016
    Colts
    @
    Jaguars
    0.662
    1
    0
    2
    -3
    23
    18
    27
    30
    1
    4
    10/2/2016
    Cowboys
    @
    49ers
    0.573
    1
    1
    -2
    7
    17
    16
    24
    17
    0.666667
    4
    10/2/2016
    Falcons
    Panthers
    0.533
    1
    1
    -4
    15
    22
    24
    48
    33
    0.333333
    4
    10/2/2016
    Jaguars
    Colts
    0.338
    0
    1
    -2
    3
    18
    23
    30
    27
    0
    4
    10/2/2016
    Jets
    Seahawks
    0.398
    0
    0
    3
    -10
    25
    19
    17
    27
    0.666667
    4
    10/2/2016
    Lions
    @
    Bears
    0.686
    1
    0
    8
    -3
    33
    27
    14
    17
    1
    4
    10/2/2016
    Panthers
    @
    Falcons
    0.467
    0
    0
    4
    -15
    24
    22
    33
    48
    0.666667
    4
    10/2/2016
    Patriots
    Bills
    0.689
    1
    0
    11
    -16
    28
    21
    0
    16
    1
    4
    10/2/2016
    Raiders
    @
    Ravens
    0.434
    0
    1
    3
    1
    22
    20
    28
    27
    0.666667
    4
    10/2/2016
    Rams
    @
    Cardinals
    0.164
    0
    1
    -14
    4
    20
    34
    17
    13
    0
    4
    10/2/2016
    Ravens
    Raiders
    0.566
    1
    0
    -3
    -1
    20
    22
    27
    28
    0.333333
    4
    10/2/2016
    Redskins
    Browns
    0.636
    1
    1
    9
    11
    29
    17
    31
    20
    1
    4
    10/2/2016
    Saints
    @
    Chargers
    0.454
    0
    1
    1
    1
    25
    28
    35
    34
    0.333333
    4
    10/2/2016
    Seahawks
    @
    Jets
    0.602
    1
    1
    -3
    10
    19
    25
    27
    17
    0.333333
    4
    10/2/2016
    Steelers
    Chiefs
    0.563
    1
    1
    3
    29
    20
    18
    43
    14
    1
    4
    10/2/2016
    Texans
    Titans
    0.45
    0
    1
    5
    7
    21
    18
    27
    20
    0.666667
    4
    10/2/2016
    Titans
    @
    Texans
    0.55
    1
    0
    -5
    -7
    18
    21
    20
    27
    0.333333
    4
    10/3/2016
    Giants
    @
    Vikings
    0.5
    1
    0
    0
    -14
    32
    26
    10
    24
    0.833333
    4
    10/3/2016
    Vikings
    Giants
    0.5
    0
    1
    0
    14
    26
    32
    24
    10
    0.166667