Add JOSS paper for submission - #201
Open
vahid-ahmadi wants to merge 7 commits into
Open
vahid-ahmadi wants to merge 7 commits into
vahid-ahmadi wants to merge 7 commits into
Conversation
The paper is a short software paper, distinct from the working paper in paper/, which it cites as the validation study. It is framed around the finding that motivates the package: benchmarking across seven domains shows no imputation method dominates, so the useful tool is one that measures which performs best on a user's own data. Also adds a citation file, a code of conduct, and the workflow that builds a draft PDF, none of which the repository had. The author list and ORCIDs still need confirming, and the missing licence in issue #197 blocks submission. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- fit/predict signatures matched to the actual API - weights claim narrowed to OLS and matching - six benchmark datasets, not seven domains, with the source's hedge - optional extras (rpy2/StatMatch, PyTorch) disclosed - statsmodels and R mice weight columns corrected to No - dropped the uk-public-services-imputation claim (declares microimpute but never imports it)
Adds the donor-receiver framing, the autoimpute workflow end to end, and the predictor-analysis utilities. Cites the policyengine JOSS paper in the research impact statement and links the PolicyEngine website.
compute_predictor_correlations reports association, not contribution; only leave_one_out_analysis and progressive_predictor_inclusion measure contribution by loss.
This was referenced Sep 16, 2026
Open
Open
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
paper.mdandpaper.bibfor submission to the Journal of Open Source SoftwareCITATION.cff,CODE_OF_CONDUCT.mdand.github/workflows/draft-pdf.yml, none of which the repository hadFollows PolicyEngine/policyengine.py#264, which was accepted and published.
This is a different paper from
paper/paper/main.texis a 39-page empirical study — SCF-to-CPS wealth imputation, an SSI policy simulation, cross-dataset benchmarking. JOSS wants a short software paper and will desk-reject a research article, so this is a new, software-focusedpaper.mdthat cites the working paper as the validation study rather than replacing it.The framing leads on the finding that justifies the package existing: benchmarking across seven domains shows no method dominates — QRF wins on nonlinear relationships, matching better preserves marginals, OLS stays competitive when relationships are near-linear. If performance is dataset-specific, the useful contribution is a harness that measures it, which is a stronger claim than "five imputation methods".
JOSS requirements
paper.mdwith Summary, Statement of Need, State of the Field, Software Design, Research Impact Statement, Acknowledgements, AI Usage Disclosure, Referencespaper.bib— 13 entries, all cited, no orphans, all DOIs resolveCITATION.cff, validated against schema 1.2.0CODE_OF_CONDUCT.md0009-0007-4946-2248, verified against the ORCID registryBlockers before submitting
Must fix — correctness
A pre-submission audit of the models turned up a set of silent correctness bugs. A reviewer will run these methods, and they produce plausible wrong numbers rather than errors. A second round of review, with every finding independently reproduced by an adversarial verifier before filing, added #207-#213.
QuantReg.fitonly fits the median,Matchingreturns identical values for every quantile, intercepts dropped on constant predictors, weights dropped in two places,train_sizeandrandom_stateinertrpy2policyengine-uk-datahits it: ten wealth variables and eleven consumption variables are each imputed in one barepredict()call. Components with ~0 true conditional correlation reproduce at 0.71 Spearmancross_validate_modelon the same model and data (2.14 against 0.79, truth 0.69). Integer targets with fewer than ten levels are also silently switched to classificationMatchinghyperparameter tuning substitutes the training mean on any exception, with no log or counter, and feeds that score to Optuna. A parameter set under which matching always fails can be selected as best and reported as the winning methodautoimputenever reaches itMust fix — compliance
LICENSEfile, no licence in packaging metadata. This is the first item on the JOSS checklist, and it also means the five downstream repositories currently depend on all-rights-reserved code__version__reported 1.1.2 while the package was 3.1.1 (PR open)**/*glob that also sweeps in stale__pycache__(501 KB of build-host bytecode in a test build).pyproject.tomlalso lists two of the four authors, omitting the paper's corresponding author, and carries nolicense,classifiersor[project.urls].github/CONTRIBUTING.mdbeyond its current 12 lines to cover dev setup, running tests, reporting issues, and where to seek supportShould fix — reviewers will raise these
>=3.12,<3.15range; 3.13 never runs on PRs, 3.14 never on main, and the full suite effectively runs on one versionpolicyengine-us-data, open since Octobercompute_predictor_correlationsdocuments a normalized mutual information matrix, but divides MI in nats by an entropy in bits whose continuous-column value islog2(n_distinct). Two identical variables score 0.55 rather than 1.0, and the value drifts with sample sizeZeroInflatedImputeris undocumented and unexported although the paper describes it;autoimpute()cannot reach fourImputer.fitparameters;validation.pyhas no test file; MDN tests are gated out of CI by a changed-filename grep; five tests cannot fail or assert nothing; dead config; and four stale docstrings, including acompare_distributionsexample that is wrong on both printed valuesWorth considering
microimputation-dashboard/to its own repository — a Next.js app roughly doubles the review surface for something that is not the Python packagepaper/clarifying that the manuscript is an unpublished working paper distinct from this submissionAn honest note on impact
Every dependent is inside the PolicyEngine organisation:
policyengine-uk-data,uk-trade-shock-study,uk-public-services-imputation,nics-exemption-inactive-employees,imputation-paper. There is no identifiable external user, and the repository has 0 stars. JOSS does not require external adoption but reviewers weigh it. The strongest honest framing is production dependency — a microsimulation data pipeline depends on this — rather than community uptake, and that is how the paper puts it.Authorship to confirm
Currently María (corresponding), Max, Nikhil, Vahid — by commit share that is 354 / 101 / 45 / small. @baogorek contributed 15 commits and is acknowledged rather than listed; worth confirming that is right with him.