Sample health study — codebook

The dataset behind File → Open Sample Dataset: a synthetic cross- sectional health study of 600 participants, 21 variables. It is generated (deterministically, by tool/generate_health_study.dart in the project repository) purely for training — no value in it describes any real person or population. Zone names are deliberately abstract for the same reason.

The same data ship in two forms:

  • the dressed .ckd document the app opens — all the metadata below already set;
  • a raw CSV (sample_test_data/health_study.csv in the repository) — the same values with no metadata, which is what module 1's import exercise recreates.

Variables

Variable Type Measure Meaning / coding
ParticipantID String Nominal P1000P1599
Age Numeric Scale Years, 18–80
Sex String Nominal Male / Female
StudyZone String Nominal Enrolment zone, Zone AZone D (synthetic)
Residence String Nominal Urban / Rural
EducationLevel Numeric Ordinal Coded 0=None, 1=Primary, 2=Secondary, 3=Tertiary (value labels in the .ckd)
MaritalStatus String Nominal Single / Married / Divorced / Widowed
Height_cm Numeric Scale Centimetres
Weight_kg Numeric Scale Kilograms
BMI Numeric Scale kg/m² — the classic recode-into-categories candidate
SystolicBP Numeric Scale mmHg
DiastolicBP Numeric Scale mmHg
HeartRate Numeric Scale Beats/min
FastingGlucose_mmolL Numeric Scale mmol/L; 99 = "Not measured", declared user-missing (~5% of cases)
TotalCholesterol_mmolL Numeric Scale mmol/L; ~4% blank (system-missing)
PhysicalActivity_minWk Numeric Scale Minutes/week; ~3% blank (system-missing)
FamilyHistoryDM String Nominal Family history of diabetes, Yes / No
SmokingStatus String Nominal Never / Former / Current
AlcoholUse String Nominal None / Occasional / Regular
Hypertensive String Nominal Yes / No (SBP ≥ 140 or DBP ≥ 90, with a little noise)
Diabetic String Nominal Yes / No (fasting glucose ≥ 7.0 mmol/L, with a little noise)

The planted structure (instructor's key)

Because the data are generated, we can say exactly what is in them — which is what makes exercises checkable:

Real effects (students should find these):

  • SystolicBP rises with Age and with BMI, and is higher again in current smokers; DiastolicBP tracks SystolicBP. Correlation, regression and the smoking group comparisons all show it.
  • FastingGlucose rises with BMI and with a family history of diabetes; a small cluster of diabetic-range values makes the Diabetic outcome real.
  • Hypertensive prevalence differs by SmokingStatus (via the SBP effect) — the module 5 crosstab's chi-square is significant.
  • The outcome labels carry ~3% classification noise, so Hypertensive/Diabetic agree strongly with their thresholds without being tautologies.

Deliberate nulls (students should find nothing — and learn to say so):

  • HeartRate relates to nothing — it is pure noise around 72 bpm.
  • PhysicalActivity_minWk is independent of TotalCholesterol_mmolL — the workbook's standing example of a plausible hypothesis the data do not support.

Missingness, for module 9:

  • FastingGlucose_mmolL — the declared code pattern: 99 is a real stored value, flagged user-missing in the metadata, labelled "Not measured".
  • TotalCholesterol_mmolL, PhysicalActivity_minWk — plain blank cells (system-missing).