COVID has made this NFL season, especially weeks 15 and 16 pretty wild. Week 17 was also a pretty wild week. The helmet catch from Jonathan Ward, Antonio Brown leaving in the middle of the game, Tom Brady’s 67th game winning drive, and the Fed-Ex Stadium railing collapse just to name a few. Week 16 left us 11-19 on our “basic” NFL Twitter sentiment predictor just depending on the Twitter sentiment value.
The Sentiment and Numerical Analysis Results so Far
Taking Week 16 data into account, we developed some heuristics for predicting games using the win differential and the Twitter sentiment value differential. We saw from Week 16 that the average win differential between teams that won with the lower sentiment was 0 wins. If the lower sentiment team won, the Twitter sentiment differential was less than 0.0231. Thus, we can also add this to our hypothesis: if the team with the higher sentiment has less than a 0.0231 sentiment difference and hasn’t won more than 2 games over their opponent, they will lose.
From Week 16 also we saw that no team lost when their sentiment was more than 0.0625 higher. We also saw that the average record difference when the team with the higher sentiment won was 2.6 more wins. Armed with this new information we have a new heuristic this week. Teams with a Twitter sentiment of 0.0625 and more than 3 wins over their opponent will win.
For week 17, we applied those heuristics. Let’s take a look at how well our predictions came out this week.
NFL Week 17 Games
- Chiefs at Bengals Bengals Win (not predicted)
- Giants at Bears – Bears Win (predicted)
- Eagles at Washington – Eagles Win (predicted)
- Rams at Ravens – Rams Win (predicted)
- Bucs at Jets – Bucs Win (predicted)
- Raiders at Colts – Raiders Win (not predicted)
- Jags at Patriots – Patriots Win (predicted)
- Falcons at Bills – Bills Win (predicted)
- Dolphins at Titans – Titans Win (not predicted)
- Texans at 49ers – 49ers Win (predicted)
- Broncos at Chargers – Chargers Win (predicted)
- Panthers at Saints – Saints Win (predicted)
- Lions at Seahawks – Seahawks Win (predicted)
- Cardinals at Cowboys – Cardinals Win (predicted)
- Vikings at Packers – Packers Win (predicted)
- Browns at Steelers – Steelers Win (predicted)
Twitter Sentiment Predictions vs Actual Outcomes
|Chiefs at Bengals||0.2010, 0.1291 → Bengals Win|
|Giants at Bears||0.1355, 0.1246 → Bears Win|
|Eagles at Washington||0.1291, 0.0131 → Eagles Win|
|Rams at Ravens||0.1365, 0.1058 → Rams Win|
|Bucs at Jets||0.2101, 0.1916 → Bucs Win|
|Raiders at Colts||0.1662, 0.2349 → Raiders Win|
|Jags at Patriots||0.1456, 0.3541 → Patriots Win|
|Falcons at Bills||0.2355, 0.0064 → Bills Win|
|Dolphins at Titans||0.1293, 0.1720 → Titans Win|
|Texans at 49ers||0.1230, 0.1681 → 49ers Win|
|Broncos at Chargers||0.1420, 0.1235 → Chargers Win|
|Panthers at Saints||0.1555, 0.0969 → Saints Win|
|Lions at Seahawks||0.1219, 0.0278 → Seahawks Win|
|Cardinals at Cowboys||0.1324, 0.1566 → Cardinals Win|
|Vikings at Packers||0.1664, 0.2327 → Packers Win|
|Browns at Steelers||0.0380, 0.1410 → Steelers Win|
Lower Twitter Sentiment Teams Win
Prior to the Week 16 Analysis we saw that, in general, lower sentiment teams tended to win. In Week 17 we added a heuristic by looking at not just whether or not the teams had higher or lower sentiment, but also the value differential. We also added another factor of the win differential. This week, the team with the lower sentiment won 8/16 games, or exactly half. Let’s take a look at the data.
|Chiefs at Bengals||Bengals Down 2|
|Giants at Bears||Bears Up 1|
|Raiders at Colts||Raiders Down 1|
|Falcons at Bills||Bills Up 2|
|Broncos at Chargers||Chargers Up 1|
|Panthers at Saints||Saints Up 2|
|Lions at Seahawks||Seahawks Up 3|
|Cardinals at Cowboys||Cardinals Down 1|
The average win differential when a lower Twitter sentiment team won was + .525 wins. Last week it was 0. The most wins up was 3 and the most wins down was 2.
Twitter Sentiment Differential
|Chiefs at Bengals||0.2010, 0.1291 → -0.0719|
|Giants at Bears||0.1355, 0.1246 → -0.0109|
|Raiders at Colts||0.1662, 0.2349 → -0.0687|
|Falcons at Bills||0.2355, 0.0064 → -0.2291|
|Broncos at Chargers||0.1420, 0.1235 → -0.0185|
|Panthers at Saints||0.1555, 0.0969 → -0.0586|
|Lions at Seahawks||0.1219, 0.0278 → -0.0941|
|Cardinals at Cowboys||0.1324, 0.1566 → -0.0242|
The average Twitter sentiment differential when the lower sentiment team won in Week 17 was 0.720. This is higher than the highest sentiment difference when the lower sentiment team won last week. The highest difference was 0.2291 and the lowest difference was 0.0109.
Higher Twitter Sentiment Teams Win
Even after the 8:8 odds for sentiment in Week 17, the total odds are still 16:19 for higher Twitter sentiment teams. Using extra rules like the win differential and Twitter sentiment differential values makes our actual predictions right 24 out of 32. Let’s take a look at the win differentials and Twitter sentiment differentials for Week 17.
|Eagles at Washington||Eagles Up 2|
|Rams at Ravens||Rams Up 3|
|Bucs at Jets||Bucs Up 7|
|Jags at Patriots||Pats up 7|
|Dolphins at Titans||Titans Up 2|
|Texans at 49ers||49ers Up 4|
|Vikings at Packers||Packers Up 5|
|Browns at Steelers||Same|
The average win differential when a team with the higher pre-game Twitter sentiment was was 3.75.
Twitter Sentiment Differential
|Eagles at Washington||0.1291, 0.0131 → 0.1160|
|Rams at Ravens||0.1365, 0.1058 → 0.0307|
|Bucs at Jets||0.2101, 0.1916 → 0.0185|
|Jags at Patriots||0.1456, 0.3541 → 0.2085|
|Dolphins at Titans||0.1293, 0.1720 → 0.0427|
|Texans at 49ers||0.1230, 0.1681 → 0.0451|
|Vikings at Packers||0.1664, 0.2327 → 0.0663|
|Browns at Steelers||0.0380, 0.1410 → 0.1030|
The average Twitter sentiment differential when a higher sentiment team won was 0.0789. This is almost the exact same absolute value as the sentiment differential when a team with lower sentiment won. The largest difference was .2085 and the smallest difference was 0.0185.
New Heuristics for Predicting NFL Games with Twitter Sentiment
Well this week was ALL over the place with Twitter sentiment differentials. We saw a much larger difference between each of the games, on average, than we did last week. Two trends that have not changed are 1) when a team with higher sentiment wins they always have equal or more wins than the lower sentiment team and 2) when a team with lower sentiment wins, it’s more likely to be a home game than not.
Twitter Sentiment vs Win for Higher Sentiment Team Graph
This graph contains Twitter sentimen data for Week 16 and Week 17.
Win Differential vs Win for Higher Twitter Sentiment Team Graph
This graph contains win differential data for Week 16 and Week 17.
Code for Graphs
Here’s the code we used to graph these
import matplotlib.pyplot as plt # sentiment difference wins and losses # team with higher sentiment win = 1, team with higher sentiment loss = 0 # x value = sentiment difference x = [0.0625, 0.0364, 0.0321, 0.0155, 0.0059, 0.0569, 0.1479, 0.0709, 0.0544, 0.0231, 0.0442, 0.0719, 0.0109, 0.0687, 0.2291, 0.0185, 0.0586, 0.0941, 0.0242, 0.1160, 0.0307, 0.0185, 0.2085, 0.0427, 0.0451, 0.0663, 0.1030] y = [0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1] plt.scatter(x, y) plt.title("Twitter Sentiment Differential") plt.xlabel("Twitter Sentiment Difference") plt.ylabel("Win/Loss") plt.show() # win differential wins and losses # x value = higher sentiment team's win difference # y value = did higher twitter sentiment team win x = [-3, 0, 1, 0, 5, -3, 3, 5, 1, 4, 0, 2, -1, 1, -2, -1, -2, -3, 1, 2, 3, 7, 7, 2, 4, 5, 0] plt.scatter(x, y) plt.title("Pre-game Win Differential") plt.xlabel("Pre-game Win Difference") plt.ylabel("Win/Loss") plt.show()
Summary for NFL Week 17 2021 Predictions from Twitter Sentiment
As we can tell from our graphs, it’s an absolute shit show in the NFL. The NFL has some of the greatest parity. We even saw the Cardinals lose to the Lions in Week 15. Given these new data points we can come up with some new heuristics:
- Teams with more than 3 wins over their opponents will most likely win regardless of Twitter sentiment
- Teams with a lower Twitter sentiment are still more likely to win for some odd reason
- Teams with a lower Twitter sentiment are more likely to win home games
- Teams with a lower Twitter sentiment are more likely to win if their sentiment is within 0.06
- Teams with a lower Twitter sentiment are more likely to win when their win differential is less than 3
To learn more, feel free to reach out to me @yujian_tang on Twitter, connect with me on LinkedIn, and join our Discord. Remember to follow the blog to stay updated with cool Python projects and ways to level up your Software and Python skills! If you liked this article, please Tweet it, share it on LinkedIn, or tell your friends!
I run this site to help you and others like you find cool projects and practice software skills. If this is helpful for you and you enjoy your ad free site, please help fund this site by donating below! If you can’t donate right now, please think of us next time.
Make a one-time donation
Make a monthly donation
Make a yearly donation
Choose an amount
Or enter a custom amount
Your contribution is appreciated.
Your contribution is appreciated.
Your contribution is appreciated.DonateDonate monthlyDonate yearly