| Literature DB >> 35957395 |
Serena Moscato1, Stella Lo Giudice2, Giulia Massaro3, Lorenzo Chiari1,4.
Abstract
Photoplethysmographic (PPG) signals are mainly employed for heart rate estimation but are also fascinating candidates in the search for cardiovascular biomarkers. However, their high susceptibility to motion artifacts can lower their morphological quality and, hence, affect the reliability of the extracted information. Low reliability is particularly relevant when signals are recorded in a real-world context, during daily life activities. We aim to develop two classifiers to identify PPG pulses suitable for heart rate estimation (Basic-quality classifier) and morphological analysis (High-quality classifier). We collected wrist PPG data from 31 participants over a 24 h period. We defined four activity ranges based on accelerometer data and randomly selected an equal number of PPG pulses from each range to train and test the classifiers. Independent raters labeled the pulses into three quality levels. Nineteen features, including nine novel features, were extracted from PPG pulses and accelerometer signals. We conducted ten-fold cross-validation on the training set (70%) to optimize hyperparameters of five machine learning algorithms and a neural network, and the remaining 30% was used to test the algorithms. Performances were evaluated using the full features and a reduced set, obtained downstream of feature selection methods. Best performances for both Basic- and High-quality classifiers were achieved using a Support Vector Machine (Acc: 0.96 and 0.97, respectively). Both classifiers outperformed comparable state-of-the-art classifiers. Implementing automatic signal quality assessment methods is essential to improve the reliability of PPG parameters and broaden their applicability in a real-world context.Entities:
Keywords: heart rate; morphological analysis; photoplethysmography; quality assessment; wearable devices
Mesh:
Year: 2022 PMID: 35957395 PMCID: PMC9370973 DOI: 10.3390/s22155831
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.847
Figure 1The shape of a typical PPG pulse.
State of the art for the PPG signal quality algorithms.
| Ref. | PPG Sensor Position | Settings | # Subjects | Pulse-Wise or Segment-Wise | Ground Truth | Method | # Quality Levels |
|---|---|---|---|---|---|---|---|
| [ | Finger and Wrist | Clinical | 13 stroke patients + 500 patients retrospectively selected | 30 s segments | Labels from 5 raters | Support Vector Machine with 42 features | 2 + “not sure” |
| [ | Wrist | Real-World | 10 elderly subjects + 16 young subjects | 10 s segments | Labels from 17 raters | Random forest with 9 features | 5 |
| [ | Wrist | Real-World | 50 healthy subjects | Pulse-wise | Labels from 1 rater | Signal similarity between adjacent pulses | 3 |
| [ | Wrist | Real-World | 17 epilepsy patients | 7 s segments | Correspondence with RR from ECG | Support Vector Machine with PPG and accelerometer features | 2 |
| [ | Finger | Clinical (public DB) | 69 subjects from 3 public databases | Pulse-wise | Labels from 2 raters | Rules-based algorithm with 13 quality checks | 2 |
| [ | Finger | Clinical (public DB) | 44 patients from 2 public databases | Pulse-wise | Labels from 1 rater | Correlation with a template | 2 |
| [ | Finger | Clinical | 40 healthy subjects | 60 s segments | Labels from 2 raters | Support Vector Machine with 1 feature | 3 |
| [ | Finger | Clinical (public DB) | No info | 10 s segments | Labels from 3 raters | Rules-based algorithm on HR estimate + correlation with a template | 2 |
| [ | Finger | Clinical (public DB) | 120 subjects | Pulse-wise | Labels from 1 rater | Non-linear scaling function based on adjacent pulses correlation | 2 |
| [ | Finger | Clinical (public DB) | No info | 6 s segments | No info | Deep learning algorithm with 4 features (based on the comparison with a template) | 2 |
| [ | Finger | Lab | 13 healthy subjects | 60 s segments | Labels from 2 raters | Two-step rules-based algorithm | 2 |
Figure 2Examples of Bad, Fair, and Excellent quality pulses. Asterisks represent the local maxima for each pulse found by the Matlab findpeaks function.
Figure 3Matlab graphic user interface for PPG pulses annotation.
Signal quality indices (SQIs) for quality classification.
| SQI | Description | Source | Ref. |
|---|---|---|---|
| Peak2peakACC | Peak to peak acceleration vector magnitude | ACC | This paper |
| MeanACC | Mean acceleration vector magnitude | ACC | This paper |
| SigSim | Correlation between consecutive PPG pulses | PPG | [ |
| Entropy | Entropy | PPG | [ |
| Kurtosis | Heavy tail and peaked or a light tail and flatness distribution relative to the normal distribution | PPG | [ |
| SNR | Signal-to-noise ratio | PPG | [ |
| RelPower | Ratio of the power spectral density in the 1–2.25 Hz band compared to the overall power spectral density | PPG | [ |
| Skewness | Measure of the symmetry of a probability distribution | PPG | [ |
| ZR | Zero-crossing rate | PPG | [ |
| Amplitude | Systolic peak amplitude | PPG | [ |
| Width | Pulse width | PPG | [ |
| TroughDepth | Systolic feet amplitude difference between consecutive systolic feet | PPG | [ |
| MedianPulse | Median value of the z-scored PPG pulse | PPG | This paper |
| MedianPulse_noZ | Median value of the original PPG pulse | PPG | This paper |
| MeanPulse_noZ | Mean value of the original PPG pulse | PPG | This paper |
| StdPulse_noZ | Standard deviation of the original PPG pulse | PPG | This paper |
| SNR_Moody | Signal-to-noise ratio by Moody’s algorithm | PPG | This paper |
| Npeaks | Number of detected local maxima | PPG | This paper |
| ZDR | First derivative zero-crossing rate | PPG | This paper |
Figure 4Schematic representation of the classification strategies. (A) Two independent classifiers: the Basic-quality classifier aims at detecting Fair and Excellent pulses against Bad pulses, and the Type 1 High-quality classifier aims to detect Excellent pulses against Bad and Fair pulses. (B) Cascaded classifiers, with Type 2 High-quality classifier fed with Fair and Excellent pulses selected by the Basic-quality classifier and aimed at detecting Excellent pulses against Fair pulses.
Figure 5Signal processing and classification pipeline.
Figure 6Distribution of the three quality classes among different activity ranges (AR). B = Bad, F = Fair, E = Excellent.
Final best λ values for neighborhood component analysis and the related minimum classification loss.
| BQ | HQ1 | HQ2 | |
|---|---|---|---|
| Min classification loss | 0.0498 | 0.0395 | 0.0575 |
| Best λ | 0.0017 | 0.0011 | 0.016 |
Performances for Basic-quality classifiers.
| Method | AUC | Acc | Sens | Spec | Prec | MCC | F1 | κ | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | |
| Tree | 0.9389 | 0.9413 | 0.9386 | 0.9406 | 0.9331 | 0.9283 | 0.9448 | 0.9542 | 0.9496 | 0.9576 | 0.8771 | 0.8814 | 0.9413 | 0.9428 | 0.877 | 0.881 |
| NB | 0.9242 | 0.9227 | 0.9219 | 0.92 | 0.883 | 0.8725 | 0.9653 | 0.973 | 0.966 | 0.973 | 0.8477 | 0.8455 | 0.9227 | 0.92 | 0.8442 | 0.8405 |
| SVM | 0.9606 | 0.9519 | 0.9603 | 0.9514 | 0.9547 | 0.9431 | 0.9665 | 0.9606 | 0.9695 | 0.9639 | 0.9205 | 0.9028 | 0.962 | 0.9534 | 0.9204 | 0.9026 |
| KNN | 0.9497 | 0.9455 | 0.9489 | 0.9453 | 0.9341 | 0.942 | 0.9653 | 0.9489 | 0.9678 | 0.9536 | 0.8983 | 0.8904 | 0.9507 | 0.9478 | 0.8977 | 0.8903 |
| Ensemble | 0.9546 | 0.9545 | 0.9539 | 0.9536 | 0.942 | 0.9384 | 0.9671 | 0.9706 | 0.9696 | .9727 | 0.9081 | 0.9078 | 0.9556 | 0.9552 | 0.9077 | 0.9071 |
| NN | 0.9513 | 0.9511 | 0.9508 | 0.9508 | 0.942 | 0.9457 | 0.9606 | 0.9565 | 0.9639 | 0.9604 | 0.9018 | 0.9016 | 0.9528 | 0.953 | 0.9015 | 0.9015 |
| Jang et al. 2018 | 0.9265 | 0.9253 | 0.9025 | 0.9506 | 0.9532 | 0.8519 | 0.9272 | 0.8506 | ||||||||
| Elgendi 2016 | 0.7081 | 0.7153 | 0.8398 | 0.5764 | 0.6886 | 0.4337 | 0.7567 | 0.4215 | ||||||||
Performances for Type 1 High-quality classifiers (HQ1).
| Method | AUC | Acc | Sens | Spec | Prec | MCC | F1 | κ | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | |
| Tree | 0.9144 | 0.9217 | 0.9494 | 0.9464 | 0.8526 | 0.8782 | 0.9762 | 0.9652 | 0.9085 | 0.8748 | 0.8484 | 0.8423 | 0.8796 | 0.8765 | 0.8477 | 0.8423 |
| NB | 0.8838 | 0.8838 | 0.9247 | 0.9283 | 0.8115 | 0.8051 | 0.956 | 0.9624 | 0.8362 | 0.8556 | 0.776 | 0.7848 | 0.8237 | 0.8296 | 0.7758 | 0.7843 |
| SVM | 0.9517 | 0.9447 | 0.9667 | 0.9592 | 0.9244 | 0.9192 | 0.9784 | 0.9702 | 0.922 | 0.8951 | 0.9019 | 0.881 | 0.9232 | 0.907 | 0.9019 | 0.8809 |
| KNN | 0.8996 | 0.9234 | 0.9386 | 0.9497 | 0.8308 | 0.8769 | 0.9684 | 0.9699 | 0.8792 | 0.8895 | 0.816 | 0.8512 | 0.8543 | 0.8832 | 0.8155 | 0.8511 |
| Ensemble | 0.9243 | 0.9107 | 0.9614 | 0.9539 | 0.859 | 0.8346 | 0.9897 | 0.9869 | 0.9585 | 0.9462 | 0.8839 | 0.8608 | 0.906 | 0.8869 | 0.8818 | 0.8581 |
| NN | 0.7556 | 0.9078 | 0.8881 | 0.9383 | 0.5218 | 0.8538 | 0.9894 | 0.9617 | 0.9314 | 0.8605 | 0.6448 | 0.8178 | 0.6689 | 0.8571 | 0.6078 | 0.8178 |
| Jang et al. 2018 | 0.7135 | 0.7292 | 0.6859 | 0.7411 | 0.4230 | 0.3685 | 0.5232 | 0.3486 | ||||||||
| Elgendi 2016 | 0.5 | 0.7831 | 0 | 0.9906 | 0 | 0.0088 | NaN | 0.00005 | ||||||||
Performances for Type 2 High-quality classifiers (HQ2).
| Method | AUC | Acc | Sens | Spec | Prec | MCC | F1 | κ | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | All SQIs | Sel. SQIs | |
| Tree | 0.9223 | 0.8933 | 0.9278 | 0.9052 | 0.891 | 0.8269 | 0.9535 | 0.9597 | 0.9304 | 0.9348 | 0.8505 | 0.8046 | 0.9103 | 0.8776 | 0.8499 | 0.8006 |
| NB | 0.5 | 0.5 | 0.5885 | 0.5885 | 0 | 0 | 0.9991 | 0.9991 | 0 | 0 | 0.0192 | 0.0192 | NaN | NaN | 0.0011 | 0.0011 |
| SVM | 0.7313 | 0.9393 | 0.7713 | 0.9331 | 0.5064 | 0.9744 | 0.9562 | 0.9043 | 0.8896 | 0.8766 | 0.5376 | 0.8679 | 0.6454 | 0.9229 | 0.4948 | 0.8641 |
| KNN | 0.7889 | 0.9258 | 0.8145 | 0.9247 | 0.6449 | 0.9321 | 0.9329 | 0.9195 | 0.8702 | 0.8898 | 0.6177 | 0.8462 | 0.7408 | 0.9105 | 0.6013 | 0.8455 |
| Ensemble | 0.9358 | 0.9191 | 0.943 | 0.9273 | 0.8949 | 0.8731 | 0.9767 | 0.9651 | 0.9641 | 0.9458 | 0.8829 | 0.8499 | 0.9282 | 0.908 | 0.8812 | 0.8481 |
| NN | 0.5331 | 0.5258 | 0.6122 | 0.6096 | 0.0885 | 0.0551 | 0.9776 | 0.9964 | 0.734 | 0.9149 | 0.1499 | 0.1632 | 0.1579 | 0.104 | 0.0762 | 0.0601 |
| Jang et al. 2018 | 0.5055 | 0.5042 | 0.4397 | 0.5492 | 0.405 | 0.0109 | 0.4216 | 0.0108 | ||||||||
| Elgendi 2016 | 0.5 | 0.5885 | 0 | 0.9991 | 0 | 0.0192 | NaN | 0.9204 | ||||||||