A lab value records a patient. The decision to order that lab also records the hospital. In intensive care, frequent lactate or creatinine checks may signal clinical concern even before the values themselves change. A model can exploit that pattern—and silently learn a local monitoring policy alongside physiology.
Pike separates those signals in ICU mortality prediction. Physiological trajectories transfer from one hospital system to another. Features describing when and how often clinicians measured the patient help locally, but their advantage vanishes after transfer and reverses when measurement availability changes. Crucially, the timing experiments hold observation count fixed.
Three records of the same first 48 hours
The target is in-hospital mortality predicted 48 hours after ICU entry. R1 is a latest-value snapshot. R2 adds physiological severity, trend, and variability summaries: whether a value is worsening, recovering, or unstable. R3 adds the observation process: measurement frequency, timing, and time since the last observation.
The tiers are nested, but they are not a controlled one-feature intervention. R1, R2, and R3 contain 42, 334, and 514 shared features. Adding a tier changes interactions and regularisation as well as adding information, a limitation the paper states explicitly.
| Evaluation cohort | Representation | Log loss ↓ | AUROC ↑ |
|---|---|---|---|
| MIMIC-IV | R1 snapshot | 0.29589 | 0.85140 |
| MIMIC-IV | R2 trajectory | 0.28291 | 0.87258 |
| MIMIC-IV | R3 observation | 0.27519 | 0.88026 |
| eICU | R1 snapshot | 0.30116 | 0.80666 |
| eICU | R2 trajectory | 0.29194 | 0.82397 |
| eICU | R3 observation | 0.29182 | 0.82292 |
Rebuild the score before interpreting it
import math
def binary_log_loss(label, prediction):
p = min(1 - 1e-15, max(1e-15, prediction))
return -(label * math.log(p) + (1 - label) * math.log(1 - p))
def paired_log_loss_difference(labels, candidate, baseline):
candidate_loss = sum(binary_log_loss(y, p) for y, p in zip(labels, candidate)) / len(labels)
baseline_loss = sum(binary_log_loss(y, p) for y, p in zip(labels, baseline)) / len(labels)
return candidate_loss - baseline_loss
def milli_loss(difference):
return 1000 * differenceThe site runs the TypeScript version above; Python and C++ are faithful translations. The tested core returns ln(2) for a 50% forecast, 0.10536 for a correct 90% forecast, and a negative candidate-minus-baseline difference when the candidate is better. Charts express small differences in thousandths of log loss without rounding the stored values.
| Setting | Increment | Loss difference | 95% CI | Excludes 0? |
|---|---|---|---|---|
| MIMIC-IV transfer | R2 − R1 | -0.01298 | -0.01529 to -0.01074 | yes |
| MIMIC-IV transfer | R3 − R2 | -0.00772 | -0.00955 to -0.00583 | yes |
| eICU transfer | R2 − R1 | -0.00922 | -0.01148 to -0.00704 | yes |
| eICU transfer | R3 − R2 | -0.00012 | -0.00206 to +0.00208 | no |
| local eICU | R3 − R2 | -0.00257 | -0.00370 to -0.00146 | yes |
The core check confirms the contrast: the local eICU interval clearly excludes zero (yes), while the transferred R3 interval does not (no). Relative to R1, R2 reduces eICU loss by 3.06%. R3 then reduces R2 loss by only 0.04%.
Hold the count fixed and move the measurements
The key experiment removes observations and rebuilds every derived feature. For each patient and variable, timing comparisons retain the same number of measurements but select them randomly, prefer recent measurements, or spread them through the window. A separate test removes the final 12 hours and compares it with random removal of the same count.
Spreading observations through the window improves R3 by 0.03280, versus 0.00703 for R2. Removing the final 12 hours harms R3 by 0.01947, versus 0.00822 for R2. The observation-pattern representation is not merely sensitive to how much data remains; it is especially sensitive to where the data sits in time.
A useful local feature becomes harmful
On complete local eICU records, R3 improves on R2 by −0.00257. At 50% retention the gain nearly disappears (−0.00042). At 25% retention it reverses to +0.00326, and a final-12-hour outage widens the harm to +0.01081. This is the post's central result: a predictive workflow signal can be locally real and operationally fragile at the same time.
Updating helps only for the regime you update to
Retraining R3 on 25%-retained records restores its advantage under that restriction: loss falls by 0.01509 relative to complete-record training, and beats a similarly retrained R2 by 0.00336. But the restricted model is 0.01609 worse when evaluated on complete records. Matching the update to one regime trades away performance in another.
A calibrated blend of R2 and R3 responds more smoothly. As availability falls, the fitted coefficient on R3 drops from 0.503 on complete records to 0.325 at 50% and 0.199 at 25%. Recalibration recovers a modest R3 advantage under random thinning, but it cannot reverse the final-12-hour outage: R3 remains worse by +0.00392.
What to probe next
Start with a simple logistic-regression model whose coefficients can be audited, then compare snapshot, trajectory, and observation-process groups under hospital-grouped validation. Add ashallow XGBoost-style model only after the measurement-shift tests are fixed. The paper's penalised logistic regression exception is a reminder that the conclusion is not architecture-free.
Report performance across a grid of observation regimes, not one external cohort: random thinning, terminal outages, delayed labs, and site-specific schedules. Track calibration and fixed alert capacity alongside log loss. Finally, prospectively define which monitoring changes are plausible at deployment. A model that uses the act of measurement must be versioned with the workflow that gives that act meaning.
References
- Pike, B. T. (2026). Physiological Trajectories and Observation Patterns in ICU Mortality Prediction: Transportability Under Changing Measurement Conditions. arXiv
- Agniel, D., Kohane, I. S., and Weber, G. M. (2018). Biases in electronic health record data due to processes within the healthcare system. BMJ 361
- Che, Z., Purushotham, S., Cho, K., Sontag, D., and Liu, Y. (2018). Recurrent Neural Networks for Multivariate Time Series with Missing Values. Scientific Reports 8