| name | alterlab-missing-data |
| description | 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. |
| license | MIT |
| allowed-tools | Read Bash(python:*) |
| compatibility | Requires (declare in-session, no runtime install on Anthropic API): Python statsmodels>=0.14 (statsmodels.imputation.mice), pandas; scikit-learn IterativeImputer only for single imputation (NOT Rubin pooling) — OR the field-standard R mice>=3.19 via Rscript (mice/with/pool). Runs locally via `uv run python` / `Rscript`; no API key. |
| metadata | {"skill-author":"AlterLab","version":"1.0.0","depends_on":"alterlab-statistical-analysis (complete-data modeling), alterlab-sem-psychometrics (FIML for latent models); audited by alterlab-ssci-inference-gate"} |
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 |