# Botswana Food Inflation Forecasting
**Deep Learning IndabaX Botswana Hackathon 2024 — Phase 1 Submission**
Forecasting Botswana's FAO food price index (item 23014, YoY % change) for January–December 2024 using two declared models: **Index SARIMA** (classical) and **LSTM** (deep learning).
---
## Quick Start
### Prerequisites
- Python 3.10+ (tested on 3.12)
- `git`, `make` (optional)
### Cross-Platform Setup
**Bash / Linux / macOS / WSL / Git Bash:**
```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pytest
```
**PowerShell (Windows):**
```powershell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
$env:MPLBACKEND='Agg'
$env:MPLCONFIGDIR="$PWD\tmp\matplotlib"
pytest
```
### Run Individual Models
```bash
# Classical model — Index SARIMA (official submission)
python train_sarima.py
# → output/predictions.csv, output/sarima_results.json, output/sarima_backtests.csv
# Deep-learning model — LSTM (candidate forecast)
python train_lstm.py
# → output/lstm_predictions.csv, output/lstm_results.json
```
### Run Side-by-Side Comparison
```bash
python run_pipeline.py
# → output/model_validation_2023.csv, output/model_forecasts.csv
# → output/figures/comparison_2023_models.png, residual_diagnostics.png, forecast_2024.png
# → output/results.json (comparison metrics + HCP linkage)
```
### Run Scenario Analysis (Phase 2)
```bash
python run_pipeline.py
# → output/scenario_hormuz.csv, output/scenario_sa_el_nino.csv
# → output/scenario_baseline.csv, output/sensitivity_tornado.csv
# → output/hcp_impact_scenarios.csv
# → output/figures/scenario_report_p1_definitions.png ... p5_hcp_policy.png
# → output/figures/scenario_report_5pages.pdf
```
**Scenarios simulated:**
| Scenario | Shocks | Basis |
|----------|--------|-------|
| **Strait of Hormuz Closure** (mandatory) | BDI -30%, Brent +55% (via WB_Urea_yoy), FAO +18% (via WB_Maize_yoy) | 1990 Gulf War, 2019 Abqaiq, Ukraine wa …