Module 9 — Missing data

Question: some participants have no glucose measurement. What is the honest way to see, count and handle that?

Open the sample (Ctrl+Shift+O). The dataset plants both kinds of missingness on purpose (codebook).

Two kinds of missing

  • System-missing — the cell is simply blank. TotalCholesterol_mmolL (~4%) and PhysicalActivity_minWk (~3%) have these.
  • User-missing — a real recorded code, declared missing in Variable View. FastingGlucose_mmolL stores 99, labelled "Not measured": the Data View shows the value, every analysis excludes it. The declaration lives in the metadata — which is why the CSV round trip in module 1 lost it, and why 99 would silently poison a mean if it were undeclared.

See both: run Frequencies on FastingGlucose_mmolL — the 99s sit in their own "Missing" block of the table — and Descriptives on TotalCholesterol_mmolL, whose valid N is below 600.

Missing Value Analysis

Analyze → Missing Value Analysis…, variables FastingGlucose_mmolL, TotalCholesterol_mmolL, PhysicalActivity_minWk, Run.

You get per-variable missing counts and pattern summaries, plus Little's MCAR test — "is the missingness unrelated to the data?" This sample's missingness is generated at random, so expect no evidence against MCAR; real studies are rarely so lucky, which is exactly why you check.

What analyses do about it

Procedures exclude incomplete cases per-analysis (listwise/pairwise — correlation's pairwise Ns are why its valid N varies cell by cell). The serious upgrade — filling values in a defensible, uncertainty-preserving way — is multiple imputation (Analyze → Multiple Imputation…), beyond this course; see Analyzing Data.

Exercise

  1. How many of the 600 cases lack a glucose measurement? (Frequencies gives it directly.)
  2. Undeclare 99 on FastingGlucose_mmolL (clear it in Variable View), run Descriptives, and watch the mean and maximum jump. Re-declare it. That before/after is the whole argument for declared missing codes.
  3. Does correlate TotalCholesterol_mmolL with PhysicalActivity_minWk report N ≈ 560? Where did the other cases go?

The syntax trail

frequencies variables=[FastingGlucose_mmolL]
descriptives variables=[TotalCholesterol_mmolL]
missing_value_analysis variables=[FastingGlucose_mmolL, TotalCholesterol_mmolL, PhysicalActivity_minWk]