Privacy — What Aggregation Cannot Hide

P15.fairness-privacy.03 · Audience: guest, it-ml, language-pro · Prerequisites: Where Bias Enters

Real LLM grading for this pageLLM grading (this page):

In the mid-1990s a state insurance commission released hospital records for research, carefully "anonymised" — names and addresses stripped out, leaving only medical details plus a few innocuous-looking fields: date of birth, sex, ZIP code. A graduate student bought the public voter roll for the state capital, which carried those same three fields alongside every voter's name, and joined the two. One record matched the sitting governor. She mailed him his own health records. Nobody had broken in; nobody had cracked a code. The "anonymous" data had never been anonymous — it only looked that way until someone lined it up against a second list everyone could buy.

That is the failure this module exists to prevent: the confident belief that deleting the obvious identifiers makes data safe to share. It does not. Privacy is normative — a person has a right not to be picked out of a crowd they were promised they had blended into — and it is also technical, because whether they blend in depends on arithmetic about how many others share their details. We build the attack that unmasked the governor on a four-row example you can check by hand, then the two defences — k-anonymity and small-cell suppression — and the trap that catches people who apply the defences carelessly.

Step 1 / 5Deleting the name is not anonymising

Personally identifiable information (PII) is any data that points at a specific person. The obvious kind — name, national ID, email, phone — we call direct identifiers, and stripping them out feels like anonymising. The dangerous kind is the quasi-identifier: a field that identifies nobody on its own, but that, combined with a few others, narrows the crowd to one person. ZIP code alone is thousands of people; date of birth alone is a slice of the calendar; sex alone is half of everyone. All three together can be unique.

ⓘ Concept: Identity leaks through combinations, not just columns
directidentifiers(name,id)removedanonymousquasiidentifiers(zip+age+sex)canstillsingleapersonoutdirect identifiers (name, id) removed ≠ anonymous · quasi-identifiers (zip + age + sex) can still single a person out

Why it matters — The whole difficulty of privacy is that identifying power is not a property of single fields you can point at and delete — it is a property of combinations. Famously, ZIP code plus date of birth plus sex uniquely identifies a large fraction of a national population, yet no one of the three would ever be flagged as sensitive on its own. This is why 'we removed the names' is not a privacy guarantee: the quasi-identifiers you left behind, each individually harmless, can recombine into a fingerprint. Protecting privacy means reasoning about what your remaining fields reveal jointly, against whatever other data an attacker can obtain.

🗣️ From a linguist's perspective: A description precise enough to name one person
An interpreter protecting a source would never say "an official" and think the job done if the next clause reads "the only woman on the forty-person delegation, who studied in Geneva". No single phrase names her; together they do. Anonymising a transcript is not deleting the word *name* — it is checking that no combination of the details left behind narrows to one individual. Quasi-identifiers are exactly those details: innocuous alone, identifying in concert.
Ask the mentor about this module

Ask a question about this content. The mentor explains and grounds its answer in what you are studying; asking is recorded as a learning signal, not a grade.

Ctrl/Cmd + Enter to send

🎓 Practice ladder

4 graded rungs · ~38 min

Now attack and defend the data yourself. Each rung is a three-panel workspace: instructions on the left, a code editor in the middle, output and test results on the right. Run checks the visible tests; Submit grades against hidden tables. The explorer rung re-identifies the anonymous rows by the linkage join; the practitioner rungs compute k-anonymity and apply small-cell suppression with its complementary-suppression trap; the senior rung designs a release that meets a k target while holding its key ratios within tolerance.

Rung 1 — Re-identify the anonymous row (explorer)

Loading exercise…

Rung 2 — k-anonymity counter

Loading exercise…

Rung 3 — Small-cell suppression

Loading exercise…

Rung 4 — Design the release (senior)

Loading exercise…

Try it yourself

A scratch console for this page's ideas — ungraded, nothing you run here is recorded.

Scratch console

A scratch console with the scientific stack (pandas, numpy, scikit-learn). Runs on the server — no network, resource-limited and measured.

Output appears here.