This is the official repository for SMM638 - Network Analytics, an MSc module at City, University of London. The course teaches network analysis theory and practice using R and Python, with a focus on business and organizational applications.
π Course Website: https://simonesantoni.github.io/net-analysis-smm638
Networks are ubiquitous in modern life:
- Job opportunities reach us through interpersonal connections
- Social media content is shaped by our digital relationships
- Market valuations emerge from social influence spreading across networks
- Innovation diffuses through organizational and professional networks
This module provides students with cutting-edge network theories and practical analytical tools to understand the organization and functioning of diverse networks. The goal is to develop a distinctive perspective on how networks create value for individuals, organizations, and communities.
By the end of this module, students will be able to:
-
Understand Network Properties
- Analyze structural characteristics of networks (density, centralization, clustering)
- Identify network substructures (dyads, triads, motifs)
- Evaluate reciprocity and transitivity patterns
-
Analyze Communities
- Detect community structures using multiple algorithms
- Evaluate community quality and overlap
- Understand modularity and community evolution
-
Assess Individual Positions
- Calculate node centrality measures (degree, betweenness, closeness, eigenvector)
- Identify influential nodes and structural holes
- Analyze brokerage positions
-
Visualize Networks
- Create effective network visualizations
- Choose appropriate layouts for different network types
- Communicate network insights visually
-
Apply Technical Skills
- Use R packages:
igraph,tidygraph,ggraph,network,sna - Use Python libraries:
networkx,graph-tool,plotly,pyvis - Implement statistical tests for network properties
- Use R packages:
-
Solve Real-World Problems
- Apply network analytics to business challenges
- Design recommendation systems
- Analyze organizational structures
- Study information diffusion
net-analysis-smm638/
βββ website/ # Quarto website source (PRIMARY)
β βββ weeks/ # Weekly course materials
β β βββ week-1/ # Introduction to networks
β β βββ week-2/ # Network visualization
β β βββ week-3/ # Node centrality
β β βββ week-4/ # Dyads and triads
β β βββ week-5/ # Network dynamics & case study
β β βββ week-6/ # Community detection
β β βββ week-7-10/ # Advanced topics
β βββ course/ # Course information
β β βββ syllabus.qmd # Course syllabus
β β βββ schedule.qmd # Weekly schedule
β β βββ support.qmd # Office hours & help
β β βββ team.qmd # Teaching team
β βββ project/ # Course projects
β β βββ midTermProject/ # Mid-term project specs
β β βββ finalCourseProject/ # Final project specs
β βββ _quarto.yml # Website configuration
β βββ theme.scss # Light theme
β βββ theme-dark.scss # Dark theme
β βββ _site/ # Generated website (auto-built)
β
βββ data/ # Network datasets
β βββ soundcloud/ # SoundCloud case study data
β βββ deezer/ # Music streaming network
β βββ twitch/ # Gaming platform network
β βββ xoxoday/ # Employee network
β
βββ tutorials/ # Python tutorials
βββ finalCoursework/ # Final coursework materials
βββ CLAUDE.md # Repository guide for AI assistants
βββ README.md # This file
- π SoundCloud Case Study: Platform ecosystem analysis with network dynamics
- π Network Properties Analysis: Comprehensive reciprocity and transitivity testing
- Implemented Conditional Uniform Graph (CUG) tests
- Statistical comparison with ErdΕs-RΓ©nyi random graphs
- Fixed package conflicts between
snaandigraph
- π§ Technical Improvements:
- Added
freeze: autofor reproducible builds - Resolved GitHub Actions deployment issues
- Enhanced data visualization with course branding
- Added
- Dyads and Triads: Comprehensive analysis of network substructures
- Structural Balance: Theory and practice of signed networks
- Practical Exercises: Hands-on dyad census and triad census calculations
- Node Centrality: In-depth coverage of centrality measures
- Interactive Visualizations: Custom network plots with
ggraph - Practice Exercises: Centrality calculations on real networks
- Network Terminology Glossary: Interactive visualizations covering:
- One-mode and two-mode networks
- Directed vs undirected networks
- Signed and weighted networks
- Enhanced Materials: Updated with visual examples and case studies
# Install required R packages
install.packages(c(
"tidyverse", # Data manipulation and visualization
"igraph", # Network analysis
"tidygraph", # Tidy network manipulation
"ggraph", # Network visualization
"network", # Network objects
"sna", # Social network analysis
"ergm", # Exponential random graph models
"intergraph" # Convert between network formats
))# Create conda environment
conda env create -f smm638.yaml
conda activate smm638
# Or install with pip
pip install numpy scipy matplotlib pandas networkx plotly pyvis# Clone the repository
git clone https://github.com/simonesantoni/net-analysis-smm638.git
cd net-analysis-smm638
# Navigate to website directory
cd website
# Render the entire website
quarto render
# Or preview with live reload
quarto previewEach week follows a consistent 5P framework:
- π Prepare: Pre-class readings and materials
- π₯ Participate: Interactive lectures and discussions
- π» Practice: Hands-on coding exercises
- π Perform: Assessed assignments
- π€ Ponder: Reflection questions and further reading
| Week | Topic | Key Concepts |
|---|---|---|
| 1 | Introduction to Networks | Network terminology, data structures, basic visualization |
| 2 | Network Visualization | Layout algorithms, aesthetic principles, interactive plots |
| 3 | Node Centrality | Degree, betweenness, closeness, eigenvector centrality |
| 4 | Dyads & Triads | Subgraph analysis, structural balance, transitivity |
| 5 | Network Dynamics | Reciprocity, platform ecosystems, case study |
| 6 | Community Detection | Modularity, Louvain, Label Propagation algorithms |
| 7 | Two-Mode Networks | Bipartite graphs, affiliation networks, projections |
| 8 | Exponential Random Graph Models | Statistical modeling of networks, ERGM estimation |
| 9-10 | Advanced Topics | Temporal networks, diffusion, link prediction |
Comprehensive analysis of a music streaming platform with:
- 8,000 users, 1.2M tracks, 100K+ social connections
- Exploratory Data Analysis: User behavior, content patterns, engagement metrics
- Network Properties Testing: Statistical tests for reciprocity and transitivity
- Visualization: Interactive network plots and statistical distributions
Technologies: R, igraph, tidyverse, sna, CUG tests
- Rigorous Statistical Testing: Both ErdΕs-RΓ©nyi and Conditional Uniform Graph (CUG) tests
- Reproducible Research: Frozen computational outputs for CI/CD compatibility
- Professional Visualizations: Course-branded plots with consistent styling
- Framework: Quarto - Scientific and technical publishing system
- Languages: R (primary), Python (supplemental)
- Deployment: GitHub Pages via GitHub Actions
- Theme: Custom dual-mode (light/dark) with Atkinson Hyperlegible font
# Core network analysis
igraph, tidygraph, ggraph, network, sna
# Statistical modeling
ergm, btergm, statnet
# Visualization
networkD3, visNetwork, ggplot2, gridExtra
# Data manipulation
tidyverse (dplyr, tidyr, purrr, readr)# Core network analysis
networkx, graph-tool
# Visualization
plotly, bokeh, pyvis, matplotlib, seaborn
# Data manipulation
numpy, scipy, pandasThe repository includes several curated network datasets:
| Dataset | Nodes | Edges | Type | Description |
|---|---|---|---|---|
| SoundCloud | 8,000 | 100K+ | Directed | Music platform with users, tracks, follows |
| Deezer | 50K | 200K+ | Undirected | Music streaming social network |
| Twitch | 10K | 30K+ | Directed | Gaming platform follower network |
| Xoxoday | 500 | 1.5K | Undirected | Employee collaboration network |
Data Location: data/ directory (some files are .gitignored due to size)
- Network analysis of real-world dataset
- Individual work
- Due: Week 6
- Comprehensive network analytics project
- Group work (2-3 students)
- Includes presentation and written report
- Due: End of term
This is an active teaching repository. Contributions are welcome:
- Report Issues: Use GitHub Issues for bugs or suggestions
- Submit Pull Requests: For typos, clarifications, or enhancements
- Share Feedback: Contact the teaching team
- Module Leader: Dr. Simone Santoni
- Teaching Assistants: See course website
Office Hours: Check the support page
This project is licensed under the MIT License - see the LICENSE file for details.
Educational materials are provided for academic use. Please cite appropriately when using course materials in your work.
- Course Website: https://simonesantoni.github.io/net-analysis-smm638
- City, University of London: https://www.city.ac.uk
- Bayes Business School: https://www.bayes.city.ac.uk
For course-related queries:
- Email: simone.santoni.1@city.ac.uk
- Moodle: SMM638 course forum
- Office Hours: See support page
- Built with Quarto
- Network analysis powered by
igraphandNetworkX - Visualization using
ggraphandPlotly - Hosted on GitHub Pages
Last Updated: November 2025