Alterlab missing data
Skill AlterLab-IEU/AlterLab-Academic-Skills/skills/social-science-workflow/alterlab-missing-data
239 evaluated academic Claude/agent skills across 17 research domains (bioinformatics, data science, clinical, social-science methods, Turkish academia & more). Executable eval per skill, deterministic citation verifier, research→write→review→publish pipeline, and a skill-finder front door. Claude Code, Cursor, Codex, Gemini CLI & Copilot.
npx -y skills add AlterLab-IEU/AlterLab-Academic-Skills --skill alterlab-missing-dataAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Handles missing data with principled methods — forces an explicit MCAR / MAR / MNAR mechanism statement, then applies multiple imputation by chained equations (MICE) with Rubin's-rules pooling of estimates and standard errors, or full-information maximum likelihood (FIML) where a likelihood/SEM model applies. Uses statsmodels MICE / MICEData in Python or the field-standard R mice via Rscript, and warns that single (mean/regression) imputation and scikit-learn's IterativeImputer return one completed dataset without Rubin's-rules pooling, so they understate standard errors if used as multiple imputation. Use when a dataset has missing values, when choosing an imputation strategy, or when reporting how missingness was handled. For general modeling on complete data prefer alterlab-statistical-analysis; for latent-variable models with FIML prefer alterlab-sem-psychometrics. Part of the AlterLab Academic Skills suite.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.3 KB, as published. Nobody here has run it
Missing Data — Name the Mechanism, Impute Multiply, Pool by Rubin's Rules
Skill type: ANALYSIS MODULE. Missing data is not a nuisance to delete or fill with a mean. The discipline: state the missingness mechanism, then use a method whose uncertainty is honest — multiple imputation with Rubin's-rules pooling, or FIML. The dangerous shortcut is single imputation, which treats guessed values as observed and understates standard errors.
Core Mission
STATE THE MECHANISM (MCAR / MAR / MNAR). MULTIPLY IMPUTE AND POOL BY RUBIN'S RULES —
SINGLE IMPUTATION FAKES CERTAINTY IT DOESN'T HAVE.
When to Use This Skill
- "My dataset has missing values — how should I handle them?"
- "Should I use multiple imputation? How many imputations?"
- "How do I pool results across imputed datasets?"
- "Is mean imputation / listwise deletion okay here?"
Does NOT Trigger
| The request is really about… | Route to | Why not this skill |
|---|---|---|
| Modeling on already-complete data | alterlab-statistical-analysis / alterlab-statsmodels | No missingness to handle. |
| FIML inside an SEM / latent-variable model | alterlab-sem-psychometrics | That skill fits the latent model with FIML. |
| Survey weights / design (a different kind of "adjustment") | alterlab-survey-analysis | Design-based inference, not imputation. |
| Whether the study design is sound | alterlab-ssci-design-gate | Design routing. |
Step 1 — state the mechanism (Rubin)
| Mechanism | Meaning | Consequence |
|---|---|---|
| MCAR | missingness independent of everything | listwise deletion is unbiased (but wasteful) |
| MAR | missingness depends on observed data | MI / FIML are valid (the workhorse assumption) |
| MNAR | missingness depends on the unobserved value itself | needs a selection / pattern-mixture model + sensitivity analysis |
The mechanism is an assumption, largely untestable (MAR vs MNAR especially) — state it and
justify it; inspect the missingness pattern (mice::md.pattern) and test MCAR (Little's test) as
supporting evidence, not proof.
Step 2 — multiple imputation with Rubin's-rules pooling
Create m completed datasets (each imputes with added noise reflecting uncertainty), analyze each, then pool: the point estimate is the mean across imputations; the SE combines within-imputation and between-imputation variance (Rubin's rules), so it honestly reflects imputation uncertainty.
Python — statsmodels MICE:
from statsmodels.imputation import mice
imp = mice.MICEData(df) # chained-equations imputer over the frame
fit = mice.MICE("y ~ x1 + x2", sm.OLS, imp).fit(n_burnin=10, n_imputations=20)
fit.summary() # pooled estimates + SEs (Rubin's rules)
R — mice (field standard):
library(mice)
md.pattern(data) # inspect the missingness pattern
imp <- mice(data, m = 20, method = "pmm") # m completed datasets
fit <- with(imp, lm(y ~ x1 + x2))
summary(pool(fit)) # Rubin's-rules pooling (fmi, lambda, df)
FIML — for likelihood/SEM models under MAR, full-information ML uses all available data without
explicit imputation; route to alterlab-sem-psychometrics when the model is latent-variable.
The single-imputation trap (verified caveat)
- Mean / regression / single imputation treats imputed values as if observed → biased, understated SEs. Not acceptable as a final analysis.
- scikit-learn
IterativeImputerreturns a single completed dataset and does not pool by Rubin's rules — the sklearn docs say so explicitly. It is fine for a prediction pipeline, but using it as "multiple imputation" for inference understates uncertainty. If you must, run it repeatedly withsample_posterior=Trueand different seeds and pool manually — butmice/statsmodels MICE do this correctly out of the box.
How many imputations (m)
Rule of thumb: m at least the percentage of incomplete cases (higher fraction of missing information → larger m); modern guidance often uses m ≈ 20–50. Report m and the fraction of missing information (FMI).
Reporting checklist
MECHANISM: MCAR / MAR / MNAR — stated and justified; pattern inspected (md.pattern)
METHOD: MICE (m, imputation model) with Rubin's-rules pooling | FIML | (deletion only if MCAR)
POOLING: estimates + SEs pooled by Rubin's rules; report FMI
SENSITIVITY: for MNAR, a sensitivity analysis (selection / pattern-mixture)
References
references/mechanisms_and_pooling.md— MCAR/MAR/MNAR detail, Rubin's-rules math, FIML vs MI, m guidance, the sklearn caveat.
Part of the AlterLab Academic Skills suite.