Categories
level 2 python NLP

Betting on Twitter Sentiment, NFL Week 18, 2021

Unlike Weeks 17 and Week 16, I was traveling on Sunday this week so I wasn’t able to get all the NFL games analyzed. However, I did manage to get 4 of them down, and that puts us at 50 sample data points. In this post we’re going to cover the 4 Week 18 games I analyzed from Twitter and the heuristics around them. In this post, we’ll cover:

  • The Sentiment and Numerical Analysis Results so Far
  • NFL Week 18 Games Covered
  • Twitter Sentiment Predictions vs Actual Outcomes
  • Lower Twitter Sentiment Teams Win
    • Win Differential
    • Twitter Sentiment Differential
  • Higher Twitter Sentiment Teams Win
    • Win Differential
    • Twitter Sentiment Differential
  • New Heuristics for Predicting NFL Games from Twitter Sentiment
    • Twitter Sentiment Differentials vs Win for Higher Sentiment Team Graphs
    • Code for graphs
  • A Summary of Week 18 of the NFL, 2021

The Sentiment and Numerical Analysis Results so Far

The end of Week 17 left us at 19 to 27 when comparing Twitter sentiments. The team with the higher Twitter sentiment won 19 times and the team with the lower Twitter sentiment won 27 times. Here’s what we’ve learned in terms of heuristics for predicting NFL games with Twitter sentiment and win differential so far.

  1. Lower Twitter sentiment teams usually win (weird)
  2. Home team advantage is real
  3. The team with more than 3 wins usually wins, unless Twitter sentiment is less than 0.2

NFL Week 18 Games Covered

  1. Titans at Texans – Titans win (predicted)
  2. Packers at Lions – Lions win (not predicted, but desired)
  3. Colts at Jaguars – Jaguars win (not predicted, but lol)
  4. Bears at Vikings – Vikings win (predicted)

Twitter Sentiment Predictions vs Actual Outcomes

This week once again saw a 50-50 split between lower sentiment teams and higher sentiment teams winning. This could be because we only checked out 4 games, but anyway, let’s check the data we do have.

GameSentiments
Titans at Texans0.2461, 0.1455
Packers at Lions0.0810, 0.0910
Colts at Jaguars0.2293, 0.1709
Bears at Vikings0.1893, 0.0817

Lower Twitter Sentiment Teams Win

Week 18 only perpetuated the weird trend of teams with lower Twitter sentiments winning. In three out of the four games analyzed this week, the team with the lower Twitter sentiment won. 

Win Differential

GameSentiments
Titans at TexansTitans Up 7
Colts at JaguarsJags Down 7
Bears at VikingsVikings Up 1

The average win differential when the lower sentiment team won this week was 1 win. That doesn’t tell the full story at all though because the Jaguar’s win was crazy and the Titan’s win was expected. An illustration of how statistics don’t tell the whole story.

Twitter Sentiment Differential

GameSentiments
Titans at Texans0.2461, 0.1455 → -0.1006
Colts at Jaguars0.2293, 0.1709 → -0.0584
Bears at Vikings0.1893, 0.0817 → -0.1076

The average sentiment differential was 0.0866.

Higher Twitter Sentiment Teams Win

The four games predicted in Week 18 follow the general trend of lower sentiment teams winning. There’s no real averages to determine for higher Twitter sentiment teams winning this week. There was only one data point.

Win Differential

GameSentiments
Packers at LionsLions Down 11

Twitter Sentiment Differential

GameSentiments
Packers at Lions0.0810, 0.0910 → 0.0100

New Heuristics for Predicting NFL Games with Twitter Sentiment

Yeah so this Lions game screwed up all of the former heuristics around win differential and Twitter sentiment trends. At least it was a home game. We’ll have to treat this as an outlier and accept that we can’t always predict correctly. Combining this week’s data and the data from the last weeks we’ve looked at we have no real heuristics, we got two outliers from our usual predictions this week.

Graphs of Twitter Sentiment vs Win

Code for graphs

Here’s the code for the cumulative graphs.

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, 0.1006, 0.0584, 0.1076, 0.0100]
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,0,0,0,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
x2 = [-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, -7, 7, -1, -11]
plt.scatter(x2, y)
plt.title("Pre-game Win Differential")
plt.xlabel("Pre-game Win Difference")
plt.ylabel("Win/Loss")
plt.show()

Summary for NFL Week 18 2021 Predictions from Twitter Sentiment

Week 18 was pretty crazy, even the games we didn’t analyze. From the games we did analyze, the Jags knocked off the Colts and the Lions beat the Packers. Outside of the four games we got to analyze, the Chargers lost their playoff spot, the Browns beat the Bengals, and the Seahawks beat the Cardinals. It was a week of upsets. Our heuristics haven’t changed much, they still boil down to these few points:

  1. Lower Twitter pregame sentiment teams tend to win (20 wins for higher, 30 wins for lower)
  2. Home field advantage is real
  3. Average win differential is still about 3, but sometimes we’ll see crazy things

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.