| PanelOLS Estimation Summary | |
| Dep. Variable | avg_goal_diff |
| Estimator | PanelOLS |
| Cov. Estimator | Clustered |
| No. Observations | 425 |
| R-squared | 0.0696 |
| R-squared (Between) | -7.5547 |
| R-squared (Within) | 0.0791 |
| R-squared (Overall) | -7.4274 |
| Log-likelihood | -576.14 |
| F-statistic | 12.052 |
| P-value (F-stat) | 0.0000 |
| F-statistic (robust) | 9.5381 |
| P-value (robust) | 0.0001 |
| Entities | 82.0 |
| Time periods | 20.0 |
| Avg Obs (entity) | 5.1829 |
Introduction
How many extra goal-difference points or wins does a national team gain purely from the home advantage of hosting the World Cup?
Simply comparing host teams to non-host teams, or comparing a host team’s performance in its hosting year to other years without controls, may produce heavily biased results.
Model definition
Reframing causal question
Following the PICO framework we identify:
- Population: Every team that has participated in a World cup
- Intervention: Selecting one of the teams as hosts of the world cup in year \(T\).
- Control group: Similar elite/mid-tier nations that qualified for year T but did not host.
- Outcome: We choose first Average goal-difference over the tournament as the outcome variable, i.e., \[ \text{avg\_goal\_diff} = \frac{\text{goals\_for} - \text{goals\_against}}{\text{n\_games}} \]
We fit the classical TWFE model by estimating the following equation via Ordinary Least Squares (OLS): \[ Y_{it} = \beta_{0} + \beta_{1} \text{is\_host}_{it} + \beta_{2}\text{pre\_elo\_rating} + \gamma_{i} + \delta_{t} + \epsilon_{it} \]
- Entity fixed effects (\(\gamma_i\)): Implemented via
team_id. This absorbs all time-invariant, team-specific unobservables — historical football culture, baseline national infrastructure, long-term geographic advantages, and the like. - Time fixed effects (\(\delta_t\)): Implemented via
year. This absorbs team-invariant, time-specific shocks such as changes in global tournament rules, ball design, tactical trends of a given era, or macro weather conditions. - The key estimator (\(\beta_1\)):
is_hostis the treatment indicator. Because unit and time effects are partialled out, \(\beta_1\) estimates the effect of hosting on goal differential per game, comparing a team to its own non-hosting baseline while controlling for tournament-wide trends and time-varying strength (pre_elo_rating).
Pre-tournament Elo rating is a good control precisely because it’s measured before the tournament, avoiding bad-control / mediator problems, where a covariate is itself affected by the treatment. Make sure pre_elo_rating is captured before any home-field advantage or hosting assignment could influence it.
Methodology
Dataset
Difference-in-differences (DiD) measures the effect of a treatment by comparing the change over time in a treatment group against the change over time in a control group.
| Variable Name | Type | Description | Role in Causal Inference |
|---|---|---|---|
| team_id | Categorical | Country name/code (e.g., BRA, FRA) | Entity ID |
| year | Temporal | World Cup Year (1930–2026) | Time ID |
| is_host | Binary | (0/1)1 if hosting that tournament, 0 otherwise | Treatment (D) |
| pre_elo_rating | Numeric | FIFA ranking (or Elo rating) 6 months prior | Pre-treatment Covariate |
The raw dataset is cleaned in separates data-cleaning posts for the matches and for the ELO ratings, which documents every transformation — column renaming, deduplication, dtype coercion, and stage-label normalization across World Cup rule changes — and produces the cleaned datasets used below.
Team-level (long) dataset
For the hosting-premium analysis, each match needs to become two team-level observations rather than one row with a home and away side. wc_games is reshaped into wc_games_long, with one row per team per match (match_id, year, team, goals_for, goals_against), home row first:
Fitting the model
One possibility in fitting the model was using statsmodels and C(team_id). However, this forces to explicitly construct a matrix column for every nation in the dataset — the Least Squares Dummy Variable (LSDV) approach. As the number of teams grows, inverting the \((X^T X)\) matrix becomes slow, memory-heavy, and clutters the summary table with hundreds of unwanted coefficient rows.
We choose instead an alternative approach where we use linearmodels, which de-means and absorbs fixed effects without ever constructing dummy variables.
| Parameter Estimates | ||||||
| Parameter | Estimate | Std. Err. | T-stat | P-value | Lower CI | Upper CI |
|---|---|---|---|---|---|---|
| is_host | 1.0197 | 0.2399 | 4.2500 | 2.80 × 10−5 | 0.5477 | 1.4918 |
| pre_elo_rating | 0.0020 | 0.0010 | 1.9982 | 4.65 × 10−2 | 0.0000 | 0.0039 |
| F-test for Poolability: F(100, 322) = 1.6774, p = 0.0004 Included effects: Entity, Time |
||||||
Conclusions
The TWFE estimate suggests hosting the World Cup is associated with a 1.02 goal-differential-per-game increase (95% CI: 0.55–1.49, p < 0.001) relative to a team’s own non-hosting baseline, after absorbing team- and tournament-level fixed effects and controlling for pre-tournament Elo. This is a large effect in practical terms — for context, a team that typically draws (0.0 avg goal diff) would be expected to outscore opponents by roughly a goal a game while hosting.
The pre-tournament Elo control is also significant (p = 0.047) but its coefficient is small (0.002 per Elo point), consistent with Elo capturing gradual team quality rather than being a strong predictor of a single tournament’s goal differential.
The model’s within-R² (0.079) is modest: fixed effects and Elo explain only a small share of within-team variation in tournament performance, which is expected given the high game-to-game variance inherent in short single-elimination-heavy tournaments (avg. ~5 games/team). The F-test for poolability (p = 0.0004) rejects the null that entity/time effects are jointly zero, supporting the TWFE specification over pooled OLS.
Taken together, the results are consistent with a genuine home-hosting advantage in the World Cup, though the estimate should be interpreted as an average effect across only 21 hosting instances — a small effective treatment count that warrants caution before treating the point estimate as precise.
Limitations & next steps
Small treated-group inference. With only 21 host-observations clustered among 82 entities, cluster-robust SEs may be unreliable (few-cluster bias). Worth reporting a wild cluster bootstrap or randomization-inference p-value as a robustness check alongside the asymptotic clustered SE.
Two-way clustering / serial correlation check. Standard errors are currently clustered only on
team_id. Since hosting years are also correlated across teams within a tournament (e.g., co-hosts, or tournament-specific shocks not fully absorbed by time FE), two-way clustering (entity × year) or at least a robustness check against tournament-clustered SEs would be worth showing.Recent TWFE-with-heterogeneous-effects literature. Given repeat “quasi-treatment” isn’t at issue here (hosting is close to one-shot per country), the classic negative-weighting critique (Goodman-Bacon/de Chaisemartin) is less of a concern than for staggered-adoption designs — but it’s worth noting why, or running a Callaway & Sant’Anna-style estimator as a sensitivity check, since some hosts (e.g. co-hosts, repeat hosts) do reappear in the panel.