First ML framework for crop yield prediction and post-harvest loss reduction in Sierra Leone — Evidence from FAOSTAT 2000–2024
# Can Machine Learning Forecast Rice Yields in Data-Constrained Settings?
## Satellite Climate Data, National Crop Statistics, and Lessons from Sierra Leone
**Author:** Ibrahim Denis Fofanah
**Affiliation:** Seidenberg School of Computer Science & Information Systems, Pace University, New York · RiseAfrica Foundation for STEM and Innovation, Sierra Leone
**Email:** IF57774N@pace.edu
---
## Overview
A reproducible pipeline that asks whether **rice yield (kg/ha)** in Sierra Leone
can be forecast from publicly available data, under **strict anti-leakage
discipline** and **walk-forward validation only**, benchmarked against naive
baselines.
The answer comes in two parts, both reported plainly:
1. **Crop statistics alone: no.** Trained on 25 years of FAOSTAT crop data
(2000–2024), no ML model beats a simple persistence baseline (predict this
year = last year).
2. **Adding free satellite climate data: yes.** With CHIRPS rainfall and NASA
POWER temperature aggregated to national growing-season features, a
climate-only XGBoost cuts forecast error by **one third** vs. persistence
(RMSE 284 vs. 428 kg/ha) — a gain that holds for a linear model too and is
robust to dropping the anomalous 2018 season.
The dominant predictor is **May–June (planting-season) rainfall**, observable in
CHIRPS months before harvest — the basis for a near-zero-cost early-warning
capability for Sierra Leone's Ministry of Agriculture and Food Security.
Honest boundaries, documented rather than hidden: **no model anticipated the
2018 yield collapse** (institutional, not climatic, in origin), and the record
yields of 2020–2022 occurred in *below-average* rainfall years, consistent with
input-driven policy gains. Full write-ups:
outputs/model_report.md (v1) and
outputs/model_report_v2.md (v2 + robustness).
> An earlier version of this pipeline — same-year features, FAOSTAT aggregates,
> random 70/30 split — produced an apparent R² of 0.96. Every component of that
> number was leakage; it is preser …