| Literature DB >> 33808100 |
Young Jae Kim1, Ji Soo Jeon1, Seo-Eun Cho2, Kwang Gi Kim1, Seung-Gul Kang2.
Abstract
This study aimed to investigate the applicability of machine learning to predict obstructive sleep apnea (OSA) among individuals with suspected OSA in South Korea. A total of 92 clinical variables for OSA were collected from 279 South Koreans (OSA, n = 213; no OSA, n = 66), from which seven major clinical indices were selected. The data were randomly divided into training data (OSA, n = 149; no OSA, n = 46) and test data (OSA, n = 64; no OSA, n = 20). Using the seven clinical indices, the OSA prediction models were trained using four types of machine learning models-logistic regression, support vector machine (SVM), random forest, and XGBoost (XGB)-and each model was validated using the test data. In the validation, the SVM showed the best OSA prediction result with a sensitivity, specificity, and area under curve (AUC) of 80.33%, 86.96%, and 0.87, respectively, while the XGB showed the lowest OSA prediction performance with a sensitivity, specificity, and AUC of 78.69%, 73.91%, and 0.80, respectively. The machine learning algorithms showed high OSA prediction performance using data from South Koreans with suspected OSA. Hence, machine learning will be helpful in clinical applications for OSA prediction in the Korean population.Entities:
Keywords: XGBoost; logistic regression; machine learning; obstructive sleep apnea; predict model; random forest; support vector machine
Year: 2021 PMID: 33808100 PMCID: PMC8066462 DOI: 10.3390/diagnostics11040612
Source DB: PubMed Journal: Diagnostics (Basel) ISSN: 2075-4418
Figure 1Flowchart of obstructive sleep apnea (OSA) data collection and analysis. Train data: OSA (n = 149), no OSA (n = 46); Test data: OSA (n = 64), no OSA (n = 20). OSA, obstructive sleep apnea; AHI, apnea–hypopnea index; CV, cross-validation; SMOTE, synthetic minority oversampling technique.
Figure 2Feature importance plot for the seven final features selected through the permutation feature importance algorithm. The x-axis represents the importance of each feature. The scale of the x-axis is not absolute; it represents the magnitude of the relative importance. BQ, Berlin Questionnaire; FSS, Fatigue Severity Scale.
Parameters for each machine learning model are selected through the grid search.
| Model | Parameters |
|---|---|
| LR | C: 1, penalty: l2, random_state: 80 |
| SVM | C: 10, gamma: 0.1, probability: True, random_state: 80 |
| RF | max_depth: 6, min_samples_split: 25, |
| XGB | learning_rate: 0.01, max_depth: 4, |
LR, logistic regression; SVM, support vector machine; RF, random forest; XGB, XGBoost. C: inverse of regularization strength; penalty: used to specify the norm used in the penalization; random_state: use a new random number generator seeded by the given integer; gamma: kernel coefficient for ‘radial basis function,’ ‘poly,’ and ‘sigmoid’; probability: whether to enable probability estimates; max_depth: the maximum depth of the tree; min_samples_split: the minimum number of samples required to split an internal node; n_estimators: the number of trees in the forest; learning_rate: shrinks the contribution of each tree by learning_rate.
Characteristics of the participants in the OSA and no OSA groups and the comparison between the groups.1
| Variables | OSA ( | No OSA ( | Statistics |
|---|---|---|---|
|
| 45.4 ± 10.9 | 41.8 ± 11.9 | |
|
| |||
| Male | 184 (86.4%) | 50 (75.8%) | |
| Female | 29 (13.6%) | 16 (24.2%) | |
|
| |||
| 0–18.4 | 2 (0.9%) | 0 (0.0%) | |
| 18.5–22.9 | 28 (13.1%) | 23 (34.8%) | |
| 23–24.9 | 49 (23.0%) | 18 (27.3%) | |
| 25–29.9 | 110 (51.6%) | 22 (33.3%) | |
| ≥ 30 | 24 (11.3%) | 3 (4.5%) | |
|
| 57 (26.8%) | 7 (10.6%) | |
|
| 10.0 ± 4.7 | 8.3 ± 4.4 | |
|
| 35.1 ± 12.1 | 38.3 ± 12.3 | |
|
| |||
|
| |||
| Louder than breathing | 7 (3.3%) | 11 (16.7%) | |
| Loud as talking | 28 (13.1%) | 17 (25.8%) | |
| Louder than talking | 54 (25.4%) | 17 (25.8%) | |
| Can be heard in adjacent rooms | 124 (58.2%) | 21 (31.8%) | |
|
| |||
| Never or nearly never | 1 (0.5%) | 3 (4.5%) | |
| 1–2 times a month | 2 (0.9%) | 1 (1.5%) | |
| 1–2 times a week | 9 (4.2%) | 4 (6.1%) | |
| 3–4 times a week | 16 (7.5%) | 10 (15.2%) | |
| Nearly every day | 185 (86.9%) | 48 (72.7%) | |
|
| |||
| Never or nearly never | 18 (8.5%) | 8 (12.1%) | |
| 1–2 times a month | 11 (5.2%) | 6 (9.1%) | |
| 1–2 times a week | 22 (10.3%) | 9 (13.6%) | |
| 3–4 times a week | 47 (22.1%) | 24 (36.4%) | |
| Nearly every day | 115 (54.0%) | 19 (28.8%) | |
|
| |||
| Never or nearly never | 5 (2.3%) | 4 (6.1%) | |
| 1–2 times a month | 10 (4.7%) | 5 (7.6%) | |
| 1–2 times a week | 40 (18.8%) | 5 (7.6%) | |
| 3–4 times a week | 71 (33.3%) | 18 (27.3%) | |
| Nearly every day | 87 (40.8%) | 34 (51.5%) | |
|
| |||
| Never or nearly never | 30 (14.1%) | 9 (16.6%) | |
| 1–2 times a month | 51 (23.9%) | 20 (30.3%) | |
| 1–2 times a week | 82 (38.5%) | 34 (51.5%) | |
| 3–4 times a week | 29 (13.6%) | 3 (4.5%) | |
| Nearly every day | 21 (9.9%) | 0 (0.0%) | |
|
| |||
|
| |||
| < 30 | 0 (0%) | 6 (9.1%) | |
| 30.1–35 | 36 (16.9%) | 12 (18.2%) | |
| 35.1–40 | 118 (55.4%) | 45 (68.2%) | |
| 40.1–45 | 56 (26.3%) | 3 (4.5%) | |
| ≥ 45.1 | 3 (1.4%) | 0 (0%) | |
|
| |||
| < 70 | 1 (0.5%) | 2 (3.0%) | |
| 70.1–80 | 17 (8.0%) | 18 (27.3%) | |
| 80.1–90 | 86 (40.4%) | 34 (51.5%) | |
| 90.1–100 | 84 (39.4%) | 9 (13.6%) | |
| 100.1–110 | 19 (8.9%) | 2 (3.0%) | |
| 110.1–120 | 6 (2.8%) | 1 (1.5%) | |
|
| |||
| < 20 | 0 (0%) | 1 (1.5%) | |
| 20.1–25 | 55 (25.8%) | 27 (40.9%) | |
| 25.1–30 | 129 (60.6%) | 33 (50.0%) | |
| 30.1–35 | 27 (12.7%) | 5 (7.6%) | |
| ≥ 40 | 2 (0.9%) | 0 (0%) | |
|
| |||
|
| 32.3 ± 22.5 | 1.9 ± 1.3 | |
|
| 27.1 ± 20.5 | 1.7 ± 1.4 | |
|
| 340.6 ± 54.9 | 343.9 ± 52.0 |
The observed AUC, accuracy, sensitivity, specificity, PPV, and NPV for OSA prediction of each machine learning model for the training and test data.1
| AUC | Accuracy (%) | Sensitivity (%) | Specificity (%) | PPV (%) | NPV (%) | |
|---|---|---|---|---|---|---|
|
| ||||||
| LR | 0.91 | 83.22 | 80.92 | 85.53 | 84.83 | 81.76 |
| SVM | 0.99 | 98.03 | 96.71 | 99.34 | 99.32 | 96.79 |
| RF | 0.96 | 90.79 | 90.79 | 90.79 | 90.79 | 90.79 |
| XGB | 0.99 | 97.04 | 96.71 | 97.37 | 97.35 | 96.73 |
|
| ||||||
| LR | 0.84 | 75.00 | 70.49 | 86.96 | 88.46 | 53.13 |
| SVM | 0.87 | 83.33 | 80.33 | 86.96 | 88.52 | 69.57 |
| RF | 0.82 | 78.57 | 70.49 | 86.96 | 86.44 | 60.00 |
| XGB | 0.80 | 75.00 | 78.69 | 73.91 | 85.71 | 53.57 |
LR, logistic regression; SVM, support vector machine; RF, random forest; XGB, XGBoost; OSA, obstructive sleep apnea; AUC, area under the curve; PPV, positive predictive value; NPV, negative predictive value; CI, confidence interval. 1 Data are reported as mean ± standard deviation or n (%). AHI, apnea-hypopnea index; ESS, Epworth Sleepiness Scale; Falling asleep, frequency of falling asleep during driving; PSQI, Pittsburgh Sleep Quality Index; Quit breathing, frequency of quitting breathing; Tiredness, frequency of tiredness during waking time; FSS, Fatigue Severity Scale.
Figure 3Comparison of receiver operation characteristics between different machine learning models for OSA prediction. The SVM model shows the highest AUC. (a) ROC curve obtained with the training data, and (b) ROC curve obtained with the test data. LR, logistic regression; SVM, support vector machine; RF, random forest; XGB, XGBoost; OSA, obstructive sleep apnea; AUC, area under the curve; ROC, receiver operating characteristic.
Figure 4Heatmap for the effect of selected features on OSA prediction in each machine learning algorithm. The higher the value (the closer the color is to white), the larger the effect of the feature on OSA prediction. FSS, Fatigue Severity Scale; BQ, Berlin Questionnaire; OSA, obstructive sleep apnea.
Figure 5Web page-based application for the OSA prediction. This is an example of inputting data of a male participant into an application. The application predicts the probability of the OSA as 76.4%. FSS, Fatigue Severity Scale; BQ, Berlin Questionnaire; OSA, obstructive sleep apnea.