Chapter 23: Further Reading - Network Analysis in Football

Academic Papers

Network Science in Sports

  1. "Passing Networks in Soccer" - Pena & Touchette - Foundation of sports network analysis - Centrality metrics interpretation - Team structure comparison

  2. "Network Analysis of Basketball" - Clemente et al. - Multi-sport methodology - Temporal network analysis - Performance correlation

  3. "Social Network Analysis in Sports" - Lusher et al. - Theoretical foundations - Team dynamics modeling - Communication networks

Football-Specific Research

  1. "NFL Coaching Trees and Success" - MIT Sloan - Coaching network analysis - Success propagation - Hiring pattern prediction

  2. "Recruiting Networks in College Football" - Journal of Sports Economics - Geographic patterns - Pipeline identification - Competitive analysis


Books

Network Science

  1. "Network Science" - Albert-László Barabási - Comprehensive introduction - Free online: http://networksciencebook.com/ - Theory and applications

  2. "Networks: An Introduction" - Mark Newman - Mathematical foundations - Algorithm details - Real-world examples

  3. "Social Network Analysis" - Wasserman & Faust - Classic reference - Method details - Statistical approaches

Sports Analytics

  1. "The Book: Playing the Percentages" - Tango et al. - Network concepts in baseball - Transferable methods - Data-driven analysis

  2. "Football Analytics with Python" - (Hypothetical title) - Applied network methods - Code examples - Case studies


Online Resources

NetworkX Documentation

  1. NetworkX Official - Python library for networks - Comprehensive tutorials - https://networkx.org/

Network Visualization

  1. Gephi - Interactive visualization - Large network support - https://gephi.org/

  2. D3.js Network Layouts - Web-based visualization - Interactive features - https://d3js.org/

Sports Networks

  1. StatsBomb Open Data - Soccer passing data - Transferable methods - https://github.com/statsbomb/open-data

  2. nflverse - NFL play-by-play data - Network-ready data - https://nflverse.com/


Tools and Libraries

Python

  1. networkx - Standard network library - All centrality metrics - pip install networkx

  2. python-louvain - Community detection - Louvain algorithm - pip install python-louvain

  3. graph-tool - High-performance - Visualization - https://graph-tool.skewed.de/

  4. pyvis - Interactive HTML networks - Easy visualization - pip install pyvis

R

  1. igraph - R network library - Fast algorithms - CRAN package

  2. ggraph - ggplot2 for networks - Beautiful visualizations


Data Sources

Play-by-Play Data

  1. College Football Data API - Passing data available - https://collegefootballdata.com/

  2. nfl_data_py - NFL play-by-play - Network-ready

Coaching Data

  1. Sports Reference - Coaching histories - Staff information - https://www.sports-reference.com/cfb/

Recruiting Data

  1. 247Sports - Recruit database - Commitment data - https://247sports.com/

  2. Rivals - Recruiting rankings - https://rivals.com/


Advanced Topics

Community Detection

  1. Louvain Algorithm - Original paper: Blondel et al. - Most common method - Fast and scalable

  2. Label Propagation - Alternative algorithm - Semi-supervised approach

Temporal Networks

  1. Dynamic Network Analysis - Time-varying graphs - Evolution patterns - Snapshot methods
  1. Predicting New Connections - Common neighbors - Jaccard coefficient - Adamic-Adar index

Suggested Learning Path

Week 1-2: Foundations

  • Study graph theory basics
  • Learn NetworkX fundamentals
  • Build simple networks

Week 3-4: Centrality

  • Calculate all centrality types
  • Interpret in football context
  • Compare players/teams

Week 5-6: Passing Networks

  • Build from play-by-play
  • Analyze target distributions
  • Create visualizations

Week 7-8: Coaching Trees

  • Construct from historical data
  • Calculate influence metrics
  • Trace scheme origins

Week 9-10: Recruiting

  • Build pipeline networks
  • Analyze geographic patterns
  • Identify competition

Week 11-12: Advanced

  • Community detection
  • Temporal analysis
  • Multi-layer networks

Practice Datasets

Synthetic Data Generation

# Generate sample passing data
import numpy as np
import pandas as pd

np.random.seed(42)
n_plays = 500

passes = pd.DataFrame({
    'play_id': range(n_plays),
    'passer': 'QB1',
    'receiver': np.random.choice(
        ['WR1', 'WR2', 'RB1', 'TE1'], n_plays,
        p=[0.35, 0.25, 0.20, 0.20]
    ),
    'yards': np.random.randint(0, 30, n_plays),
    'complete': np.random.choice([0, 1], n_plays, p=[0.35, 0.65])
})

Real Data Sources

  • cfbd API for college
  • nflverse for NFL
  • Statsbomb for soccer (method transfer)