Counterfactual prescriptions via hierarchical ML for missed chemotherapy appointment prevention.

Missed medical appointments, including cancellations and no-shows, disrupt clinical workflows, reduce resource efficiency, and can compromise patient care. This study develops a machine learning (ML) framework to jointly predict cancellations and no-shows using approximately 1.8 million chemotherapy appointments from Dana-Farber Cancer Institute in Boston, Massachusetts, USA. We implement a hierarchical ML approach that first detects cancellations and then predicts no-shows among the remaining cases. Combining static appointment features with dynamic temporal features derived from prior scheduling history, the model achieves F1-scores of 0.80 (cancellations) and 0.75 (no-shows), outperforming single-stage multiclass baselines in identifying the two non-attendance outcomes. To provide actionable insights, our ML pipeline also predicts the underlying reason for a missed visit. Lacking labeled no-show reasons, we apply a semi-supervised learning approach using short-notice cancellations as proxies and achieve F1-scores of 0.60 for cancellation reasons and 0.73 for no-show reasons. Finally, we use both models to conduct a counterfactual analysis to assess whether modifiable scheduling factors - such as appointment timing and provider consistency - can reduce cancellations and missed visits. We find that interventions informed by the literature, such as patient confirmations and scheduling lead time, are less effective in this setting than previously reported. We also evaluate two model-guided operational strategies motivated by the observed prediction patterns. Our findings highlight the value of designing predictive models with prescriptive intent, particularly when the goal is to tailor interventions to the specific operational context of a medical clinic.
Cancer
Access
Care/Management

Authors

Rajabzadeh Rajabzadeh, Senderovich Senderovich, Diamant Diamant
View on Pubmed
Share
Facebook
X (Twitter)
Bluesky
Linkedin
Copy to clipboard