Skip to content

PORTRAIT

PORTRAIT turns population health data into a per-patient passport - calibrated position, honest uncertainty, and what genuinely stands out - and refuses when the data cannot support a description.

Core trick

Runs a two-sample test for structure beyond reference covariance and abstains when it fails, keeping per-slice coverage calibrated.

Tags

Description

PORTRAIT turns population health data into a per-patient passport - calibrated position, honest uncertainty, and what genuinely stands out - and refuses when the data cannot support a description. Built and validated during the event on public NHANES. The describability-and-calibration gate holds per-slice coverage in [0.85–0.95] across all six age×sex groups on 2,247 held-out adults from unseen survey years, where a conventional split under-covers every group and abstention halves. A pre-registered confirmatory test found profile coherence adds mortality signal beyond twelve markers plus age and sex (ΔC≈+0.005, permutation p<0.001, survives frailty adjustment) - small, real, and against our stated null. Eight phase-gated sessions; every hypothesis git-tagged before running; every reported number traced to a manifest; a leakage guard separating an eligible target (AUC 0.48) from covert self-prediction (0.998). The interface is grounded in a 73-requirement specification drawn from UX systematic reviews and device standards (IEC 62366, WCAG 2.2 AA). What it means. A description tool that states its precondition and abstains when unmet is safer than one that always answers. PORTRAIT ships that behaviour with the negative results that earned it.
doehring-gh/PORTRAIT★ 00 forksHTMLMITCreated Jul 11, 2026 · last push Jul 15, 2026

README excerpt

# PORTRAIT — a calibrated, abstention-aware Patient Passport

[![DOI](https://zenodo.org/badge/1297704517.svg)](https://doi.org/10.5281/zenodo.21343950)

PORTRAIT describes an individual against a reference population on nameable, clinician-readable
axes — with calibrated uncertainty, and an explicit refusal to describe when the data do not
support a description beyond what covariance alone explains.

It is a **research characterisation aid.** Every statement it makes is a *population-position*
statement carrying a stated uncertainty.

## What it does

Given a reference cohort (a table of features for a population) and one individual:

1. **Describability gate.** A calibrated two-sample test decides whether the reference carries
   structure *beyond its own covariance*. If it does not, PORTRAIT **abstains** — it will not
   manufacture a rich description from noise. This is the core guarantee.
2. **Position.** Each feature is placed as a population centile with a distribution-free
   (DKW) confidence band, so the position carries a guaranteed-coverage interval.
3. **Atypicality.** A conformal, multiplicity-controlled flag for individuals who sit in a
   sparsely populated region of feature space.
4. **Profile coherence.** A per-feature decomposition of how internally consistent an
   individual's profile is, naming *which* features fail to cohere — information a single
   distance number cannot give.
5. **Conditional surprise.** Which individual features are surprising given 

Team