Back to insights
Predictive Analytics2026 · 8 min read

Predicting 10-year CHD risk: when logistic regression beats the ensemble

On Framingham data, a soft-voting ensemble beat tree and neural models — but still lost to logistic regression (AUC 0.6959). Simpler models win when the signal is linear.

Arnold Muzarurwi

Arnold Muzarurwi

Data Analyst candidate

Predicting 10-year CHD risk: when logistic regression beats the ensemble

A 15% positive rate changes everything

The Framingham Heart Study Teaching Dataset asks a deceptively simple question: can demographic, behavioral, and clinical features predict 10-year coronary heart disease risk? With only ~15% positive cases, accuracy is a trap metric. AUC-ROC is the right primary score.

Pipeline before models

  • KNN imputation (k=5) for missingness
  • Standard scaling
  • SMOTE to a balanced training set (null baseline = 50%)
  • Clinical interactions such as age×sysBP and age×diaBP

EDA already pointed at age, systolic blood pressure, hypertension, and diabetes. Extreme rarity in BPMeds, prevalentStroke, and diabetes limited those features' standalone power.

Seven models later

I compared XGBoost, Random Forest, MLP, Logistic Regression, KNN, SVM, a decision tree, and a soft-voting ensemble of the weaker learners.

  • Logistic Regression — AUC 0.6959 (preferred)
  • Soft-voting ensemble — AUC 0.6692
  • Random Forest — AUC 0.6553 (best tree/neural model)

Ensembles help when models make different mistakes. They hurt when one learner is clearly stronger and you dilute it with weaker votes.

What this means clinically

The preferred model beats the 50% null baseline and shows that Framingham features contain real signal for 10-year CHD risk. Logistic Regression also stays interpretable — important when predictions may inform clinical triage.

Next steps that matter: probability calibration, SHAP explanations for individual patients, and external validation on cohorts beyond Framingham's demographic slice.


Want to discuss this work? Get in touch.