WHEI-lite Cameroon: composite ADM1 health access proxy index from open HDX data, with robust fallbacks and a static Plotly dashboard for GitHub Pages.
# WHEI-lite Cameroon
Portfolio project to build a composite **WHEI-lite** proxy index by Cameroon ADM1 regions from open data, then publish a static dashboard in `docs/index.html` for GitHub Pages.
## Project objective
Compute a regional composite score (ADM1) using open proxies and publish a static dashboard with:
- Choropleth map (WHEI-lite score)
- Top/bottom ADM1 bar chart
- Regional table (indicators + score)
- Method & limitations section
- Data sources section
## Open datasets
1. **Cameroon ADM boundaries (HDX / geoBoundaries package)**
- Dataset page:
data.humdata.org
- Download method: CKAN API `package_show` (resource auto-detection)
2. **Cameroon Healthsites (HDX)**
- Dataset page:
data.humdata.org
- Download method: CKAN API `package_show` (resource auto-detection)
3. **Population ADM1 CSV (HDX resource)**
- Direct CSV:
data.humdata.org
## WHEI-lite indicators (ADM1 proxies)
- `I1_facilities_per_100k = facilities_count / population * 100000`
- `I2_activities_coverage_rate = share of facilities with non-empty Activities`
- `I3_facility_type_diversity = unique Nature of Facility categories / facilities_count`
Optional activity signal:
- If `Activities` contains SRH/MNCH keywords (`maternity|anc|family planning|hiv|syphilis|hepatitis|malaria`), compute `sgrh_signal_rate` and use it instead of plain I2 for scoring.
## Composite index method
1. Min-max normalize each indicator to [0,1] with zero-division guard.
2. Weighted average score:
- `score_whei_lite = 0.5 * I1 + 0.3 * I2_used + 0.2 * I3`
3. Rank regions descending by score.
4. Optional PCA (`scikit-learn`) is attempted; if not feasible, pipeline continues and dashboard reports `PCA not computed`.
## Robust fallback rules
- If HDX boundaries fail: fallback to geoBounda …