# F6-dev-01 — Income and life expectancy across countries (Preston curve) ## Question Does the cross-country association between real income per capita and life expectancy (the Preston curve) hold in the most recent year with usable World Bank data, and how strong is it? Estimand: the slope β of the linear projection LE_i = α + β·ln(GDPpc_i) + ε_i over countries/economies (equal weights), with heteroskedasticity-robust uncertainty. This is descriptive/associational; no causal claim is made. ## Data and exclusions - Inputs: `data/wb_indicators.csv` (2,349 rows, 261 entities × 2015–2023) and `data/wb_entities.csv` (296 rows), WDI indicators NY.GDP.PCAP.PP.KD (GDP pc, PPP, constant 2021 int'l $) and SP.DYN.LE00.IN (life expectancy at birth). Files read with only empty strings treated as missing (so a code like "NA" would not be silently turned into NaN). - Audit: no duplicate (iso3, year) rows; every iso3 in the indicator file is in the metadata; GDP is strictly positive. Two aggregate names differ between files only by trailing whitespace (LCN, SSF); joining is done on iso3. - Aggregates: 44 aggregate entities (396 rows) excluded (region == `Aggregates`), leaving 217 countries/economies per year. - Analysis year: both indicators are observed for 199 countries in every year 2015–2022 and 197 in 2023; the most recent year with ≥150 is **2023**. - Missing in 2023: **20** countries/economies are dropped, all for missing GDP per capita (life expectancy is reported for all): ASM, CHI, CUB, ERI, GIB, GUM, IMN, LIE, MAF, MCO, MNP, NCL, PRK, PYF, SSD, SYR, VEN, VGB, VIR, YEM. No imputation. **n = 197** analysed. - Implausible time-series volatility detected in life expectancy: Central African Republic (e.g. 31.5 in 2019, 18.8 in 2022, 57.4 in 2023), South Sudan (35.4 → 51.9 between 2017 and 2018), and West Bank & Gaza (76.7 in 2022 → 65.2 in 2023, consistent with the Gaza war). Only the 2023 values enter the estimate (SSD is anyway excluded for missing GDP). Values were kept as published, and a sensitivity check drops these entities. All issues are listed in `results.json → data_issues`. ## Method - Baseline (no-information model): predict every country's LE with the sample mean; its RMSE equals the population SD of LE. - Main model: OLS of LE on ln(GDPpc), one equally weighted observation per country. Fit is reported as the in-sample residual RMSE and R². The log specification is the standard Preston-curve form; a quadratic term in ln(GDPpc) was tested as a check on functional form. - Uncertainty: **HC3** heteroskedasticity-robust standard error (the most conservative of HC0–HC3 in small/moderate samples with leverage points), with a normal-based (z) 95% CI, β ± 1.96·SE. Checks: HC0/HC1/HC2 SEs; nonparametric pairs bootstrap (2,000 resamples, seed 20261029); slope without the volatile-LE entities; slope without high-influence points (Cook's D > 4/n); same regression in 2019 (pre-pandemic). Robustness numbers are in `out/sensitivity.json`, produced by `out/analysis.py`. ## Results | quantity | value | |---|---| | analysis year / n analysed / n excluded (missing) | 2023 / 197 / 20 | | baseline RMSE (mean only) | 7.08 years | | OLS residual RMSE | 3.59 years (≈49% lower than baseline) | | Pearson r (ln GDPpc, LE) | 0.861 | | R² | 0.742 | | slope β | **5.27 years per log-point** | | intercept α | 22.57 years | | HC3 SE of β | 0.211 | | 95% CI for β | [4.85, 5.68] | | conclusion | `positive_effect` | Interpretation: across countries in 2023, a 10% higher GDP per capita goes with about 0.50 more years of life expectancy (β·ln 1.1), and a doubling goes with about 3.65 more years (β·ln 2), on average. Figure 1 (`out/figure1.png`) shows the scatter and fitted line. Table 1 (`out/table1.csv`) gives means by World Bank income group: | income level | n | mean ln GDPpc | mean LE | |---|---|---|---| | Low income | 20 | 7.61 | 63.19 | | Lower middle income | 46 | 8.69 | 67.81 | | Upper middle income | 58 | 9.69 | 73.70 | | High income | 73 | 10.82 | 79.69 | Life expectancy goes up steadily across the income groups. ## Uncertainty - Robust SEs barely depend on the variant: HC0 0.207, HC1 0.208, HC2 0.209, HC3 0.211. The pairs-bootstrap 95% percentile interval [4.87, 5.69] is almost the same as the HC3 interval. - Excluding CAF and PSE (volatile LE series) gives β = 5.23; excluding the 9 observations with Cook's D > 4/n (the most influential are NGA, GRL, TCD, SLB, GUY) gives β = 5.42. Both are inside the main CI. - Functional form: a quadratic term in ln(GDPpc) is not significant (coef 0.17, HC3 p = 0.34), so in this year the linear-in-log form gives a good description. - In 2019 (pre-COVID) the slope is 5.92, above the 2023 CI. The slope is therefore not fixed over time. Pandemic-era mortality and the WPP-based LE revisions may affect the gradient, so the 2023 value should not be read as a structural constant. - The CI covers sampling-type uncertainty only. Measurement error in GDP-PPP and in modelled LE estimates is not included. ## Limitations and open issues - **What would invalidate the result:** (i) systematic error in the 2023 life-expectancy estimates. For many low-income countries these are model-based UN WPP projections rather than vital-registration data, and the CAF/SSD/PSE series show that single-year values can shift by 10–20 years between revisions or events. If such errors are correlated with income, β is biased. (ii) Errors in PPP conversion (2021 ICP benchmark), which are largest for poor and small economies. Classical error in ln(GDPpc) would bias β toward zero (attenuation). (iii) Non-random exclusion. The 20 dropped economies are mostly rich small territories/microstates (Monaco, Liechtenstein, Channel Islands…) and conflict/sanctioned states (Yemen, Syria, South Sudan, Venezuela, DPRK, Eritrea, Cuba). Dropping both tails could change β, and the direction of the effect is not identified from these data. - **What was not checked:** population weighting (the estimand is equally weighted, so China/India count the same as Nauru); other years beyond the 2019 comparison; data vintages (the API returns current revisions, so results may change on re-download); controls (health spending, education, region, HIV prevalence, conflict). A regression with controls would answer a different question and is outside this estimand. - **Main threats to interpretation:** the association is not causal. Reverse causality (health → productivity) and confounding by institutions, education and disease environment are both plausible. Heteroskedasticity and large negative residuals (Nigeria −15.3 y, Greenland, Nauru, Equatorial Guinea, Guyana: resource-rich or special cases) show that income explains only about three-quarters of the cross-country variance. Countries cannot be treated as independent draws from a population, so the "sampling" CI is a conventional summary, not a frequentist statement about a superpopulation. - The analysis year is set mechanically by the ≥150 rule. 2023 has only 2 fewer complete cases than 2022, so the choice does not hinge on the threshold.