Introduction to the NFL Dataset

This dataset contains historical NFL game data from the 1966 through 2021 seasons. It includes 13,290 games and contains information such as home and away teams, final scores, playoff status, stadiums, betting spreads, over/under lines, and weather conditions.

For this project, I created five main data visualizations to analyze different trends in NFL scoring and team performance. I included a multiple-line graph showing the average points scored per game by the Bills, Jets, Patriots, and Giants from the 2014 through 2020 seasons. I also created a multiple-bar graph comparing the average points scored in home playoff games by AFC East and AFC North teams. Another bar graph examines the number of home playoff games played by AFC East teams. Finally, I created heat maps to identify which weeks of the NFL season had higher average scoring between 2014 and 2020. These visualizations help show differences in scoring, playoff performance, and team performance over time. I chose to focus more closely on teams from the Northeast, particularly the AFC East, because I am a New York Jets fan and was interested in comparing their performance with other teams in the region.

I had a lot of fun with the project, since my education in information systems & data analytics I think this is project I think I can take with into my professinal experiecience

I had a lot of fun working on this project because it allowed me to apply skills that I have learned through my education in Information Systems and Data Analytics. I enjoyed working with the data, creating visualizations, and identifying different trends throughout the NFL dataset. I think this is a project that I can carry with me into my professional experience because it helped me strengthen my ability to analyze data and communicate findings through visualizations.

Dataset

This dataset contained many promblems within the dataset:

When running the head function you can already notice a promblem within the dataset.

##    schedule_date   schedule_season   schedule_week   schedule_playoff
##  Length   :13290   Min.   :1966    Length   :13290   Mode :logical   
##  N.unique : 2466   1st Qu.:1982    N.unique :   24   FALSE:12669     
##  N.blank  :    0   Median :1997    N.blank  :    0   TRUE :534       
##  Min.nchar:    8   Mean   :1995    Min.nchar:    1   NAs  :87        
##  Max.nchar:   10   3rd Qu.:2009    Max.nchar:   10                   
##  NAs      :   87   Max.   :2021    NAs      :   87                   
##                    NAs    :87                                        
##      team_home       score_home      score_away        team_away    
##  Length   :13290   Min.   : 0.00   Min.   : 0.00   Length   :13290  
##  N.unique :   43   1st Qu.:14.00   1st Qu.:13.00   N.unique :   43  
##  N.blank  :    0   Median :22.00   Median :20.00   N.blank  :    0  
##  Min.nchar:   13   Mean   :22.44   Mean   :19.75   Min.nchar:   13  
##  Max.nchar:   24   3rd Qu.:29.00   3rd Qu.:27.00   Max.nchar:   24  
##  NAs      :   87   Max.   :72.00   Max.   :62.00   NAs      :   87  
##                    NAs    :87      NAs    :87                       
##   team_favorite_id spread_favorite   over_under_line      stadium     
##  Length   :13290   Min.   :-26.500   Min.   :28.0    Length   :13290  
##  N.unique :   33   1st Qu.: -7.000   1st Qu.:38.5    N.unique :  113  
##  N.blank  :    0   Median : -4.500   Median :42.0    N.blank  :    0  
##  Min.nchar:    2   Mean   : -5.393   Mean   :42.2    Min.nchar:    8  
##  Max.nchar:    4   3rd Qu.: -3.000   3rd Qu.:45.0    Max.nchar:   35  
##  NAs      : 2566   Max.   :  0.000   Max.   :63.5    NAs      :   87  
##                    NAs    :2566      NAs    :2638                     
##  stadium_neutral weather_temperature weather_wind_mph weather_humidity
##  Mode :logical   Min.   :-6.00       Min.   : 0.000   Min.   :  4.00  
##  FALSE:13101     1st Qu.:48.00       1st Qu.: 3.000   1st Qu.: 57.00  
##  TRUE :102       Median :61.00       Median : 8.000   Median : 69.00  
##  NAs  :87        Mean   :58.78       Mean   : 7.751   Mean   : 67.22  
##                  3rd Qu.:72.00       3rd Qu.:12.000   3rd Qu.: 79.00  
##                  Max.   :97.00       Max.   :40.000   Max.   :100.00  
##                  NAs    :1130        NAs    :1147     NAs    :4867    
##    weather_detail 
##  Length   :13290  
##  N.unique :    8  
##  N.blank  :    0  
##  Min.nchar:    3  
##  Max.nchar:   20  
##  NAs      :10479  
## 
##  [1] "Miami Dolphins"           "Houston Oilers"          
##  [3] "San Diego Chargers"       "Green Bay Packers"       
##  [5] "Atlanta Falcons"          "Buffalo Bills"           
##  [7] "Detroit Lions"            "Pittsburgh Steelers"     
##  [9] "San Francisco 49ers"      "St. Louis Cardinals"     
## [11] "Washington Redskins"      "Los Angeles Rams"        
## [13] "Cleveland Browns"         "Dallas Cowboys"          
## [15] "Denver Broncos"           "Minnesota Vikings"       
## [17] "New York Jets"            "Oakland Raiders"         
## [19] "Philadelphia Eagles"      "Baltimore Colts"         
## [21] "Boston Patriots"          "Kansas City Chiefs"      
## [23] "New York Giants"          "Chicago Bears"           
## [25] "New Orleans Saints"       "Cincinnati Bengals"      
## [27] "New England Patriots"     "Seattle Seahawks"        
## [29] "Tampa Bay Buccaneers"     "Los Angeles Raiders"     
## [31] "Indianapolis Colts"       "Phoenix Cardinals"       
## [33] "Arizona Cardinals"        "Jacksonville Jaguars"    
## [35] "St. Louis Rams"           "Carolina Panthers"       
## [37] "Baltimore Ravens"         "Tennessee Oilers"        
## [39] "Tennessee Titans"         "Houston Texans"          
## [41] "Los Angeles Chargers"     "Washington Football Team"
## [43] "Las Vegas Raiders"        NA
##  [1] "schedule_date"       "schedule_season"     "schedule_week"      
##  [4] "schedule_playoff"    "team_home"           "score_home"         
##  [7] "score_away"          "team_away"           "team_favorite_id"   
## [10] "spread_favorite"     "over_under_line"     "stadium"            
## [13] "stadium_neutral"     "weather_temperature" "weather_wind_mph"   
## [16] "weather_humidity"    "weather_detail"
##       schedule_date     schedule_season       schedule_week    schedule_playoff 
##                  87                  87                  87                  87 
##           team_home          score_home          score_away           team_away 
##                  87                  87                  87                  87 
##    team_favorite_id     spread_favorite     over_under_line             stadium 
##                2566                2566                2638                  87 
##     stadium_neutral weather_temperature    weather_wind_mph    weather_humidity 
##                  87                1130                1147                4867 
##      weather_detail 
##               10479

One of the first things I noticed in the dataset was that historical team names were used. For example, the dataset includes both the Baltimore Colts and the Indianapolis Colts, even though they are the same franchise. This was one of the first issues I needed to address so I could accurately compare teams across different seasons and analyze their historical performance.

Also, there was a significant amount of missing data within the dataset. I had to remove the blank and missing values so they would not interfere with the numerical analysis or visualizations. I noticed that the 87 missing values in the score_away variable occurred in the same rows as many of the other missing values in the dataset. Because these rows were incomplete across multiple variables, removing them helped create a cleaner dataset and made the results and visualizations more accurate and easier to interpret.

Lastly, the weather deatail variable contained more than 80% missing values. Since such a large portion of the data was unavailable, I decided to remove this variable from the dataset. Keeping them would not have added much value to the analysis and could have made the results less reliable.

Findings

Plot 1 : Average Home Playoff Points by AFC East and AFC North

# Findings 1

The main purpose of this graph was to determine which teams scored the most points in their home playoff games. I also wanted to look historically at whether certain teams appeared to rely more on offensive production or a defensive style of play. The main finding is that the Buffalo Bills had the highest average points scored in home playoff games at 28.0 points, followed closely by the New England Patriots at 27.1 points and the New York Jets at 26.3 points. Overall, AFC East teams appeared near the top of the rankings, while the Baltimore Ravens had the lowest average at 18.9 points among the teams analyzed. This result is interesting because the Ravens have historically been known for strong defensive teams. For example, during their 2000 season, their offense averaged around 21 points per game, showing how a team can still be successful without being one of the highest-scoring offenses.

Plot 2: AFC East Home Playoffs Game

Plot was created to figuured out of the AFC East team which teams perform the best standard to get a home playoff game.

The main finding from this graph is that the New England Patriots had by far the most AFC East home playoff games, with about 34 games, followed by the Miami Dolphins with about 25, the Buffalo Bills with about 14, and the New York Jets with only about 7. The graph also shows that the Patriots’ home playoff appearances were spread across many seasons, especially during the 2000s and 2010s. Much of this success can be connected to the Tom Brady era, when the Patriots consistently dominated the AFC East and regularly earned home-field advantage in the playoffs.

In comparison, the Jets had the fewest home playoff games among the four teams. Their lower number of playoff appearances helps explain why they have had fewer opportunities to host postseason games. Some of the Jets’ earlier playoff success occurred during the Joe Namath era in the late 1960s and early 1970s. Overall, the graph shows the major difference in long-term playoff success between New England and the other AFC East teams.

Plot 3: Multiple Line Graph

Plot was created to compared offensive points score in 2014 to 2020 seasons by the Patriots,Jets,Giants,Bills The graph compares the total home points scored by the Buffalo Bills, New England Patriots, New York Giants, and New York Jets from the 2014 through 2020 seasons. The main finding is that the New England Patriots scored the most home points in most seasons, especially from 2014 through 2018. Their highest total came in 2014 at about 370 points, and they remained well above the other teams for several years before dropping sharply in 2019 and 2020.

The Buffalo Bills showed the biggest increase by 2020, jumping to about 300 home points and finishing with the highest total that season. The Jets and Giants were generally lower and more inconsistent throughout the period. Overall, the graph shows the Patriots’ offensive dominance during most of the timeframe, while the Bills improved significantly toward the end of the period.

Plot 4: Trelis Bar Plot

This plot was created to show from seasons 2014 to 2021 you find to what days from Sunday, Monday, or Thursday have the highest scoring games The graph shows the average total points scored in NFL games played on Sunday, Monday, and Thursday from the 2014 through 2021 seasons. Overall, the average scoring stayed fairly consistent across the three days, usually ranging from the low 40s to around 50 points per game. Monday games had the highest average in 2014, while Thursday games were among the highest-scoring in 2018, 2020, and 2021. Sunday games were generally consistent from year to year and did not show as much variation as the other days. The main takeaway is that there was no single day of the week that consistently produced the highest-scoring games, although Thursday and Monday games had several seasons with slightly higher averages.

Plot 5: Heat Map

This plot was show to find what season weeks from 2014 to 2021 had highest average scoring games. The heat map shows the average total points scored in NFL games for each regular-season week from 2014 through 2020. Overall, scoring varied quite a bit from week to week and from season to season, but there was no single week that consistently produced the highest average score every year. Some of the highest-scoring weeks shown were Week 2 of 2020 at 53.3 points, Week 4 of 2018 at 53.4 points, and Week 4 of 2014 at 52.1 points. In contrast, some weeks had much lower averages, such as Week 15 of 2014 at 36.4 points and Week 16 of 2017 at 37.8 points. The 2020 season stands out because several weeks had averages above 50 points, suggesting that it was one of the higher-scoring seasons in this period. Overall, the heat map makes it easier to identify when scoring increased or decreased throughout different NFL seasons.

Conclusion:

Overall, this project allowed me to explore historical NFL data while taking a deeper look at my favorite team, the New York Jets. I analyzed areas such as home playoff appearances, average points scored in home playoff games by AFC East and AFC North teams, and total home points scored across different seasons. Through the data and visualizations, it became clear that the New England Patriots dominated many of these categories, especially during the modern NFL era. They had the most home playoff appearances and consistently scored more total points at home than many of the other teams analyzed.

In comparison, the Jets struggled in several areas of the analysis. They had fewer home playoff appearances and generally scored fewer total home points across the seasons analyzed. This helped show the large difference in performance between the Jets and Patriots over time. The weekday and heat map visualizations also showed that scoring can vary depending on the season, week, and day of the game. However, there was not one specific day or week that consistently produced the highest scoring. This project also showed me the importance of cleaning data before creating visualizations, especially when dealing with missing values and historical team name changes.

Overall, I enjoyed working with this dataset because it allowed me to combine my interest in football with the data analysis and visualization skills I have learned through Information Systems and Data Analytics. This project strengthened my ability to clean data, identify trends, create effective visualizations, and communicate findings in a way that can be useful in future academic and professional projects.