PolicyEngine / PolicyEngine/sparsity-paper

Scope split: this paper = sparse selection under a fixed calibrator; the reweighter's own dossier moves to calibration-paper

Open
#17 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

tier:standard
Dominant language
Python
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

Decision

The portfolio review (2026-07-03) split the calibration story in two, so each operator gets its own dossier with clean attribution:

  • This repo (B): L0/Hard-Concrete sparse selection, under a fixed calibrator. Stays essentially the paper presented at IMA 2026: informed L0 vs random-subsample+reweight vs survey-weight sampling, record-budget sweeps, held-out target families, operability controls. Scope-tightening, not restructuring.
  • New sibling (A): calibration-paper — the gradient-descent reweighter itself vs classical calibration (raking/IPF, GREG, entropy balancing, chi-square, bounded variants) on the same frozen target surface. Experiment design is in that repo's PLAN.md; it reuses this repo's frozen-target machinery (precalibration freeze, target registry, holdout families, checkpointed sweeps) wholesale.

What to change in this paper

  1. Framing: state explicitly that the calibrator (gradient descent, capped relative-error loss) is fixed across all selection methods and is evaluated separately in the calibration-paper (cite it as in-prep). Any prose that reads as defending the calibrator's choice vs classical alternatives moves out or becomes a citation.
  2. Methods section: the sampler comparison is the contribution; trim any calibration-method digressions to one paragraph + citation.
  3. Infrastructure export: factor the frozen-target machinery (precalibration.py, target registry, holdout-family split, sweep checkpointing) so calibration-paper can depend on it by pinned commit rather than copying — a small refactor PR here, consumed there.
  4. No result changes: existing sweeps and numbers stand; this is a scope boundary, not a rerun.

Why (measured context)

The populace launch story currently validates the fill operator thoroughly (imputation-paper) and selection (this paper) — but nobody has benchmarked the gradient reweighter against what survey statistics actually uses, at modern target-surface scale. That gap is the calibration-paper's job; splitting keeps this paper's attribution clean (selection effects only) and gives the calibrator its own defense.

🤖 Generated with Claude Code

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the scope and the existing frozen-target machinery in precalibration.py, the target registry, holdout-family split, and sweep checkpointing. Factor those pieces for reuse by calibration-paper, then tighten the paper framing and Methods section so selection is the contribution and the calibrator remains fixed. Done means the infrastructure is consumable by pinned commit, existing results are unchanged, and no sweeps are rerun.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data, documentation
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.