Replication of Yeh et al. 2020 (Nature Communications) — satellite-based wealth prediction across 23 African countries via deep learning. Modernized PyTorch 2.x port with fairness audit and novel uncertainty + temporal-drift extensions.
# Poverty CNN
Predicting village-level asset wealth across 23 sub-Saharan African countries from 8-band satellite imagery — a from-scratch replication of Yeh et al. (2020), and an audit of where it breaks.
> Onur Haniffa · ML/DL Internship 2026 · Advisor: Dr. Seda Nilgün Dumlu, Acıbadem MAA University
## The short version
I rebuilt Yeh et al. (2020) in PyTorch: an 8-channel ResNet-18 that reads Landsat surface reflectance plus night-lights and predicts a village's DHS asset-wealth index. Then I spent most of the project on the question the original paper doesn't ask — not *does it work*, but **who does it work for**.
It works, at benchmark level, on countries it never trained on. And it systematically fails the poorest, in a way that no standard fix repairs and that the model's own uncertainty can't even detect. The point of the project isn't a better model — it's mapping exactly where and why satellite poverty estimation hits a wall. That wall is physical: the strongest wealth cue from space is night-lights, and the poorest villages are dark.
## What I found
Every number below is **leave-country-out** — measured on countries held out of training entirely, with 95% confidence intervals from a country-level bootstrap.
**It replicates, honestly.** Pearson r 0.76 [0.72–0.79], r² 0.57 [0.51–0.62], Spearman 0.72 — in the range of published satellite-poverty models, on a harder split than most use. A random train/test split would have inflated r² to 0.73; the country-blocked number is the honest one, so that's what I report.
**It serves cities better than villages.** The absolute error is about the same in both, but ranking collapses for rural villages (Spearman 0.38 vs 0.54 urban) — and rural is the 8,473-village majority that aid targeting actually has to reach.
**It's confidently wrong about the poorest.** Sort villages by true wealth and the model over-predicts the poorest decile by +0.62 index points while under-predicting the richest — a clean regression-t …