Statistics at KNUST, from The Gambia. I build the model and the thing that serves it, because a result nobody can run is not finished.
Most of what is here is quantitative work with a working interface on top: mortality and credit risk, synthetic data, poverty measurement, and the occasional system that exists because I wanted it to exist.
nova · a Conditional Tabular GAN written from scratch in PyTorch. Mode-specific normalisation, a training-by-sampling conditional vector, and four independent validation metrics rather than a single score. Built because West African microfinance data cannot leave the institution that holds it, so the alternative to synthetic data is no data.
life-insurance-risk · Gompertz-Makeham mortality with select and ultimate rates, lapse and death as competing decrements, Cox proportional hazards with the assumption tested rather than assumed, and Solvency II VaR. The README documents an error I made in the annuity factor and what it did to the premium.
credit-risk-scorecard · weight of evidence binning, information value selection, and a Basel II points scorecard. It reports discrimination below the industry threshold and explains why the features cannot support better, because that is what the numbers say.
ayat · 6,236 Quranic verses embedded with sentence-transformers, reduced with UMAP, clustered with HDBSCAN, and rendered as a Three.js particle galaxy you can fly through and search.
gambia-poverty-transfer · a pre-registered test of whether prediction intervals for satellite poverty estimates survive a national border. Twelve West African DHS surveys. Registered before the data was touched.
forge · an accountability lock screen that will not let you in until you have logged something real, with an examiner that reads your submitted source and holds a viva on it.
Assumptions get stated. Weak results get published with the reason they are weak. Where a repository has tests, they check identities that must hold rather than the numbers today's run happened to produce, and where it has CI, the CI can actually fail.
Python, R, SQL, TypeScript. PyTorch, scikit-learn, lifelines, FastAPI, Next.js, Prisma, Docker.