A data-driven scouting analysis of the 2023 Africa Cup of Nations (AFCON 2023). The objective is to identify high-potential Under-26 midfielders using two complementary stochastic models: Absorbing Markov Chains (ball progression) and Poisson Processes (creative consistency).
# AFCON 2023 — Stochastic Tactical Scouting Report
> **Absorbing Markov Chains + Poisson Processes**
> *Stochastic Project | Sports Data Science*
---
## Table of Contents
1. Introduction
2. Stochastic Modelling — Concepts & Rationale
- 2.1 Algorithm Overview
- 2.2 Why Is This a Random Process?
3. Data Pipeline
4. Ranked Results
5. Visualisations & Interpretations
6. Player Profiles Summary
7. Project Conclusion
---
## 1. Introduction
This report presents a data-driven scouting analysis of the **2023 Africa Cup of Nations (AFCON 2023)**. The objective is to identify high-potential **Under-26 midfielders** using two complementary stochastic models:
- **Absorbing Markov Chains** — ball progression
- **Poisson Processes** — creative consistency
All event data is sourced from **StatsBomb's open data repository** via the `statsbombpy` library. The tournament covers **52 matches** (Competition ID 1267, Season ID 107).
---
## 2. Stochastic Modelling — Concepts & Rationale
### 2.1 What Is the Main Idea of the Algorithm / Simulation?
The pipeline combines two classical probability models, each capturing a different dimension of midfield quality:
---
#### A) Absorbing Markov Chain — Ball Progression Score (BPS)
The football pitch is divided into three longitudinal thirds:
| Zone | Definition |
|------|-----------|
| **D3** | Defensive third (x **BPS** is defined as `B[M3, Shot]` — the probability that a possession starting in the middle third ultimately ends in a shot. This is a single scalar summarising how *dangerous* a player's ball progression is from midfield.
---
#### B) Poisson Process — Creative Rate λ (lambda)
Key passes (shot assists + goal assists) are modelled as events arriving at a constant average rate **λ** per match. Under the Poisson assumption, the probability of observing *k* key passes in a match is:
$$P(X = k) = \frac{\lambda^k \cdot e^{-\lambda}}{k!}$$
Lambda is estimated as:
$$\lambda = \frac{\text{total\_key\_passes}}{\text{mat …