← All projects Training & personal health
Research prototype · Live site · Kaggle

Wearable Exercise Physiology

What does a wrist wearable really see during acute stress, aerobic cycling and anaerobic sprints? A physiology-first analysis of Empatica E4 heart rate, electrodermal activity, skin temperature and movement from 36 healthy adults (public PhysioNet data). Signal quality is checked window by window, every result is computed per participant, and machine learning is evaluated only on people the model has never seen.

+5.0 bpm Heart-rate response to a mental-stress task, with the wrist stiller than at rest
3% Sprint windows with a usable wrist heart rate
0.83 → 0.66 Macro-F1 once the model is tested on unseen people
15 Data issues found that the dataset authors had not listed
PRODUCT CAPABILITIES

What is implemented today

  • Compare event-locked heart-rate, EDA, movement and skin-temperature responses to a stress task and to sprints.
  • See how much wrist heart rate survives quality control in each physiological state, and why the rest fails.
  • Follow individual participants through an incremental cycling test and through their stress response.
  • Check how validation, modality and missing data change what a classifier appears to learn.

Context

Wearables are increasingly used to infer stress and exercise intensity, but an accelerometer measures movement, not physiological state. Heart rate, electrodermal activity and skin temperature respond to both psychological stress and exercise.

Problem

The dataset’s original paper reported 84–93% classification accuracy using cross-validation over segments. I asked a different question: how much of what the wearable captures is physiology rather than movement, how trustworthy is wrist heart rate during cycling, and does any of it hold up in a new person?

My role

Independent analysis: data verification, signal processing, quality-control design, protocol segmentation, participant-level statistics, classification, interactive site and Kaggle publication. Original measurements belong to the source researchers.

What I built

Seven reproducible notebooks, from data audit to classification: 12,346 thirty-second windows with per-signal quality flags; outcome-blind heart-rate quality rules, including detection of PPG lock-in to the pedalling cadence using the prescribed rpm and the accelerometer; event-locked responses; paired effects with bootstrap intervals, mixed models and ICC; leave-one-subject-out classification with a leakage test, modality ablation and a missingness-shortcut test. An interactive D3 site and a public Kaggle notebook and dataset present the results.

Data or evidence used

The stress task raised heart rate by 5.0 bpm (95% bootstrap 2.2–7.8, same day) while wrist movement decreased; the aerobic peak raised it by 49 bpm. The stress effect was only detectable after quality filtering. HR and EDA were highly individual (ICC 0.83–0.99). On unseen people, all signals reached macro-F1 0.66; movement plus a single “HR missing” flag reached 0.64, because the wrist PPG fails during sprints. With movement uninformative (stress vs seated rest), physiology alone reached 0.65.

Limitations

Small sample of healthy young adults; the two cohorts are confounded with sex, training status, setting and protocol version. No ECG, power, VO₂ or lactate reference, so “aerobic” and “anaerobic” are protocol labels. Wrist PPG is unreliable during cycling, the resting reference is on a different day from exercise, and the stress tasks are short.

Next validation step

Recover heart rate during sprints with accelerometer-guided motion-artefact removal, test the sensitivity of the quality thresholds, and validate the seated stress detector on an independent Empatica E4 dataset before any personal-calibration study.

DATA AND REPRODUCIBILITY

Source data and published analysis

  1. Hongn, A., Bosch, F., Prado, L. E., Ferrández, J. M., & Bonomini, M. P. (2025). Wearable Device Dataset from Induced Stress and Structured Exercise Sessions (version 1.0.1). PhysioNet. https://doi.org/10.13026/he0v-tf17 ↗

    Original measurement source (ODC-By), credited separately from my analysis and figures.

  2. Hongn, A. et al. (2025). Wearable Physiological Signals under Acute Stress and Exercise Conditions. Scientific Data, 12. https://doi.org/10.1038/s41597-025-04845-9 ↗

    Companion data paper and original technical validation, used as the comparison point.

  3. Gómez López, V. A. (2026). Wearable Physiology: Stress vs Exercise. Kaggle. ↗

    Executed public notebook with quality control, physiological responses and leave-one-subject-out classification.

PythonpandasSciPystatsmodelsscikit-learnD3.jsKaggleGitHub Pages