SPB Git

spb/wp29_uqo

Public

# F1-conf-02 — Balanced-panel mean life expectancy, 2000–2022

# Question

How did life expectancy at birth (WDI SP.DYN.LE00.IN, years) change between 2000 and 2022 across a fixed set of countries? The estimand is the unweighted mean over the countries (by iso3) that have a recorded value in every year from 2000 to 2022, each counted once. A naive 2022 mean over all countries with a 2022 value is reported only as a descriptive baseline.

# Data and exclusions

  • Input: data/life_expectancy_panel.csv, 439 data rows (n_input_rows), 20 distinct iso3 codes (n_countries_total). Full audit is in out/state/data_audit.md.
  • Data problems found (data_issues):
    1. TUR appears twice for every year, once as "Turkey" and once as "Turkiye" (46 rows). The values are identical in every year. This came from assembling two extractions. I kept one row per (iso3, year) and used the name "Turkiye". Because the values match, no estimate depends on which row was kept.
    2. CHE 2007 has an empty value. I treated it as missing and did not impute it, so CHE is not in the balanced set.
    3. BGD, ETH, IND and NGA have no rows for 2000–2010, only 2011–2022. Those years are missing, so these countries are not in the balanced set. They are still included in the 2022 baseline.
  • Exclusion ledger (out/exclusions.csv): 439 rows → 416 after removing the duplicates (−23) → 415 after dropping the empty value (−1) → 345 after keeping only balanced countries (−70) = n_analysed.
  • Balanced set (balanced_countries, n_countries_balanced = 15): AUS, AUT, BEL, CAN, DEU, ESP, FRA, GBR, ITA, JPN, KOR, NLD, SWE, TUR, USA. Incomplete countries (n_countries_incomplete = 5; incomplete_countries): BGD, CHE, ETH, IND, NGA.

# Method

After removing duplicate rows, a country is in the balanced set if it has a non-missing value in all 23 years from 2000 to 2022. For each year, the estimate is the simple mean over these 15 countries (balanced_mean_by_year). The change is the 2022 mean minus the 2000 mean. The baseline is the simple mean of the 2022 values over all distinct iso3 codes that have a 2022 value; all 20 countries do (n_countries_2022_all_available). Nothing was imputed and no randomness was used (random_seed = null). out/analysis.py regenerates every output.

# Results

  • Balanced-panel mean in 2000: 78.060 years (mean_2000_balanced).
  • Balanced-panel mean in 2022: 81.553 years (mean_2022_balanced).
  • Change from 2000 to 2022: +3.493 years (change_2000_2022_balanced).
  • Baseline mean over all 20 countries with a 2022 value: 78.692 years (mean_2022_all_available). It is 2.86 years below the balanced 2022 mean because it adds four lower-life-expectancy countries (BGD, ETH, IND, NGA) and CHE. It describes a different set of countries and is not the estimand.
  • The yearly balanced means (balanced_mean_by_year) rise from 2000 to 82.073 in 2019, fall to 81.320 in 2020, and have not regained the 2019 level by 2022.
  • Status: feasibility = "complete".

# Uncertainty

The estimands are descriptive means over a fixed, fully observed set of countries, so no sampling-based standard errors or confidence intervals are reported. The remaining uncertainty is in the WDI estimates themselves (modelled values that are revised between releases) and in the assembly of the file. That uncertainty is not quantified here. Values are rounded to 3 decimals in the source.

# Limitations and open issues

  • The balanced set is all high- or upper-middle-income countries (15 of 20). It leaves out the four lower-income countries and Switzerland, so the result does not represent all 20 countries.
  • CHE is excluded because of a single missing year (2007). That follows the definition of the estimand, but it may well be an assembly artefact. Under the no-imputation rule I did not recover the value.
  • The means are unweighted by country, not weighted by population.
  • The choice of name for TUR ("Turkiye" rather than "Turkey") is a labelling decision only.
Files · main
Menu

Theme