When SPSS EM Imputation Quietly Fails: Reading the Iteration History Before You Trust the Numbers
SPSS EM imputation produces a completed dataset even when the algorithm never converged. Here's how to read the Iteration History, run EM via syntax, and sanity-check the results before trusting them.
16 Oct 2025, 17:34 UTC

You have a survey dataset with 8% of cells missing, scattered across a dozen scale items. Listwise deletion would throw away a third of your respondents, so you open Transform > Replace Missing Values or the Missing Values Analysis procedure, pick EM estimation, and get a clean completed dataset. The danger is that SPSS will happily hand you that dataset even when the Expectation-Maximization algorithm never actually converged — and nothing in the imputed data itself tells you.
The thesis here is simple: EM imputation in SPSS is a solid, long-standing tool, but its output is only as trustworthy as the convergence diagnostics you check afterward. Most researchers skip the Iteration History table entirely. That is where the real answer lives.
What EM is actually doing to your data
EM treats your observed values as fixed and your missing values as unknowns to be estimated under a multivariate normal model. It alternates between two steps: the E-step fills in expected values for the missing cells given the current means and covariances, and the M-step re-estimates those means and covariances from the completed data. The loop repeats until the parameter estimates stop changing by more than a tolerance value — 0.0001 by default in SPSS.
Two assumptions carry all the weight. First, the data should be roughly multivariate normal; heavily skewed items or ordinal Likert items with few categories stretch this. Second, the missingness mechanism should be missing at random (MAR) — meaning the probability of a gap depends on observed variables, not on the unobserved value itself. EM does nothing for missing-not-at-random (MNAR) data, and no diagnostic inside SPSS will warn you about MNAR. That requires a substantive judgment about why people skipped the question.
The failure mode nobody checks: non-convergence
EM is not guaranteed to converge within the default iteration limit, especially with many variables, high proportions of missingness, poorly scaled variables (mixing income in dollars with 1–5 ratings), or near-collinear items. When it hits the iteration cap, SPSS still produces estimates — they are just estimates from an unfinished optimization.
The check is in the output. When you run Analyze > Missing Value Analysis and request EM, SPSS prints an Iteration History table if you ask for it, and a note in the EM summary stating whether convergence was reached. What you want to see is the change in estimates dropping below the tolerance well before the iteration limit. What you do not want is the algorithm stopping at the maximum iterations with the change still visibly shrinking — that means the parameters were still moving when SPSS gave up.
If you see non-convergence, the practical fixes, in order of effort, are: rescale variables to comparable ranges, increase the maximum iterations in the EM dialog, drop or combine near-duplicate items, and reduce the number of variables in the EM model to those actually needed for downstream analysis.
A worked example with syntax
Menus work, but syntax makes the diagnostics explicit and reproducible. Run this in the SPSS Syntax Editor (no special permissions needed beyond a writable data file):
MVA age income q1 q2 q3 q4 q5
/EM(TOLERANCE=0.0001 CONVERGENCE=0.0001 ITERATIONS=100)
(OUTFILE='C:\work\em_imputed.sav').Replace the variable list with your own analysis variables and the outfile path with a location you can write to. Key things to verify in the Viewer afterward:
- The EM Means and EM Covariances tables exist and are populated.
- The iteration output shows convergence before iteration 100. If it stopped at 100, raise ITERATIONS and rerun.
- The imputed values in the saved file fall within plausible ranges for each variable — EM under violated normality can produce out-of-range values, like a 6 on a 1–5 scale.
One caveat on this example: exact subcommand names and dialog layout vary slightly across SPSS Statistics versions, so confirm against the Command Syntax Reference for your release. The EM procedure itself has been stable for many versions.
Weighted data changes the objective function
If your dataset uses a sampling weight via WEIGHT BY, EM respects it — but only when the weight variable is properly defined and continuous-ish in behavior. A mis-specified weight (for example, one with extreme values or one that is actually a frequency count) changes the likelihood EM is maximizing, and the imputations will quietly reflect that distortion. Before running EM on weighted data, run DESCRIPTIVES on the weight variable and confirm its mean and range match your design expectations.
The honest limitation
EM gives you one completed dataset, which understates uncertainty: downstream standard errors treat imputed values as if they were observed. Multiple imputation (available in SPSS via the Multiple Imputation procedure) is statistically stronger for inferential work because it pools results across several imputed datasets. EM remains reasonable for exploratory analysis, scale construction, and factor analysis where you need a single complete covariance matrix — but if the end goal is hypothesis testing with defensible p-values, EM alone is the weaker choice, and severe non-normality can bias the imputations themselves.
A three-step sanity check before publishing
- Confirm convergence in the iteration output, not just the existence of an output file.
- Rerun your key model (regression, factor analysis) on the EM dataset and on listwise-deleted data. If substantive conclusions flip, investigate why before trusting either.
- Spot-check imputed values for range violations and implausible combinations.
EM in SPSS is dependable when you verify it. The ten seconds spent reading the Iteration History is the difference between an imputation you can defend in a methods section and one you are simply hoping is fine.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.