# F1-conf-02 — Balanced-panel mean life expectancy, 2000–2022 ## Question How much did life expectancy at birth (WDI `SP.DYN.LE00.IN`) change between 2000 and 2022? The comparison is made over a fixed set of countries, namely those with a recorded value in every year from 2000 to 2022. The estimand is the unweighted mean across those countries. ## Data and exclusions - Input: `data/life_expectancy_panel.csv`, 439 data rows (`n_input_rows`), 20 distinct iso3 countries (`n_countries_total`). - Data problems found (`data_issues`): - Türkiye (TUR) appears twice for all 23 years, once as "Turkey" and once as "Turkiye", with identical values. I kept one row per (iso3, year), which removes 23 rows. - Switzerland (CHE) has an empty value for 2007. This is treated as missing and not imputed. - Bangladesh, Ethiopia, India and Nigeria have rows only for 2011–2022. - Exclusion ledger (`out/exclusions.csv`): 439 → 416 after deduplication → 415 after dropping the empty cell → 415 after the year-window check → 345 after keeping only balanced countries (`n_analysed`). - Balanced set: 15 countries (`n_countries_balanced`, `balanced_countries`): AUS, AUT, BEL, CAN, DEU, ESP, FRA, GBR, ITA, JPN, KOR, NLD, SWE, TUR, USA. - Excluded: 5 countries (`n_countries_incomplete`, `incomplete_countries`): BGD, CHE, ETH, IND, NGA. ## Method Each step was applied in order: 1. Deduplicate on (iso3, year), checking first that the duplicate values are identical. 2. Drop empty values. 3. Keep only the countries whose recorded years cover all of 2000–2022. 4. For each year, take the simple mean over those countries. The baseline is the simple mean over all distinct countries with a recorded 2022 value (`n_countries_2022_available` = 20). No randomness is used (`random_seed` = null). `out/analysis.py` regenerates all outputs deterministically. ## Results - Balanced mean in 2000: **78.060 years** (`mean_2000_balanced`). - Balanced mean in 2022: **81.553 years** (`mean_2022_balanced`). - Change from 2000 to 2022: **+3.493 years** (`change_2000_2022_balanced`). - Baseline 2022 mean over all 20 countries: 78.692 years (`mean_2022_all_available`). This is 2.861 years lower than the balanced 2022 mean (`gap_2022_all_available_minus_balanced`). The gap reflects composition: the baseline includes four lower-life-expectancy countries that are absent from the balanced set. It does not reflect any difference in time trends. - Change by country within the balanced set: from +0.797 years for USA (`per_country_change_min`, `per_country_change_min_iso3`) to +6.770 years for KOR (`per_country_change_max`, `per_country_change_max_iso3`). ## Uncertainty The estimands are exact descriptive means for a fixed, fully observed set of countries, so there is no sampling uncertainty to report and no confidence interval is given. Countries differ in how much life expectancy changed: the standard deviation of the per-country change is 1.409 years (`per_country_change_sd`). The WDI values are themselves modelled estimates that may be revised, and that uncertainty is not quantified here. ## Limitations and open issues - The balanced set is mostly high-income countries; Türkiye is the only middle-income country left. All four low- and lower-middle-income countries drop out, and so does Switzerland, because of a single missing year (2007). The +3.49-year change therefore should not be read as a global or representative figure. - The means are unweighted, not population-weighted. - I assumed the missing CHE 2007 value and the missing 2000–2010 years for BGD/ETH/IND/NGA are file-assembly gaps; the README notes possible assembly errors. As the task requires, they were not filled from any outside source. - For TUR, the country name was harmonised to "Turkiye". The values were unaffected. - Feasibility: complete (`feasibility`).