| Literature DB >> 33937744 |
Hugo Loureiro1,2,3, Tim Becker1, Anna Bauer-Mehren1, Narges Ahmidi2, Janick Weberpals1.
Abstract
Introduction: Prognostic scores are important tools in oncology to facilitate clinical decision-making based on patient characteristics. To date, classic survival analysis using Cox proportional hazards regression has been employed in the development of these prognostic scores. With the advance of analytical models, this study aimed to determine if more complex machine-learning algorithms could outperform classical survival analysis methods.Entities:
Keywords: electronic health records; machine learning; prognostic scores; real world data; survival analyisis
Year: 2021 PMID: 33937744 PMCID: PMC8086599 DOI: 10.3389/frai.2021.625573
Source DB: PubMed Journal: Front Artif Intell ISSN: 2624-8212
Number of patients per cohort in the FH dataset. Includes both train and test datasets.
| Cohort | Patient number |
|---|---|
| Advanced endometrial | 1,641 |
| Advanced melanoma | 4,332 |
| Advanced non-small-cell lung cancer | 38,201 |
| Acute myeloid leukemia | 2,232 |
| Bladder cancer | 5,363 |
| Chronic lymphocytic leukemia | 9,544 |
| Diffuse large B-cell lymphoma | 3,969 |
| Breast cancer | 655 |
| Follicular cancer | 1,958 |
| Gastric cancer | 6,212 |
| Head and neck cancer | 4,917 |
| Metastatic breast cancer | 14,429 |
| Metastatic colorectal cancer | 16,788 |
| Metastatic renal cell carcinoma | 5,116 |
| Multiple myeloma | 7,293 |
| Ovarian cancer | 4,407 |
| Pancreatic cancer | 6,212 |
| Small-cell lung cancer | 4,918 |
Summary statistics of the datasets.
| FH train | FH test | OAK | |
|---|---|---|---|
| Number of patients | 121,644 | 15,075 | 1,187 |
| Time [months] (median (95% CI)) | 19.33 (19.10–19.57) | 19.83 (19.33–20.57) | 11.43 (10.40–12.67) |
| Event = death (%) | 72,068 (59.2) | 8,875 (58.8) | 854 (71.9) |
| Age at baseline [years] (mean (SD)) | 66.47 (10.98) | 66.47 (11.05) | 62.79 (9.57) |
| History of smoking [yes/no] (mean (SD)) | 0.84 (0.37) | 0.84 (0.37) | 0.83 (0.37) |
| Group stage (mean (SD)) | 3.31 (0.85) | 3.31 (0.85) | 3.43 (0.89) |
| ECOG value (mean (SD)) | 0.81 (0.80) | 0.81 (0.80) | 0.64 (0.49) |
| Neutrophils-lymphocytes ratio (NLR) [%] (mean (SD)) | 4.90 (4.86) | 4.82 (4.66) | 6.59 (6.31) |
| Body Mass index (BMI) [kg/m2] (mean (SD)) | 27.05 (5.96) | 27.06 (5.92) | 25.17 (4.80) |
| Number of metastasis sites (mean (SD)) | 0.37 (0.79) | 0.36 (0.76) | 1.46 (0.94) |
| Gender = male (%) | 60,674 (49.9) | 7,467 (49.5) | 737 (62.1) |
| Alanine aminotransferase [enzymatic activity/volume] in serum or plasma [U/L] (mean (SD)) | 26.44 (29.47) | 26.36 (29.24) | 21.05 (13.80) |
| Calcium [mass/volume] in serum or plasma [mg/dL] (mean (SD)) | 9.33 (0.63) | 9.33 (0.63) | 9.40 (0.57) |
| Bilirubin total [mass/volume] in serum or plasma [mg/dL] (mean (SD)) | 0.57 (0.69) | 0.56 (0.63) | 0.47 (0.51) |
| Glucose [mass/volume] in serum or plasma [mg/dL] (mean (SD)) | 117.58 (34.19) | 117.61 (34.35) | 114.87 (33.02) |
| Protein [mass/volume] in serum or plasma [g/L] (mean (SD)) | 68.72 (7.16) | 68.70 (7.18) | 71.66 (6.61) |
| Urea nitrogen [mass/volume] in serum or plasma [mg/dL] (mean (SD)) | 17.87 (9.16) | 17.81 (8.99) | 26.37 (22.34) |
| Alkaline phosphatase [enzymatic activity/volume] in serum or plasma [U/L] (mean (SD)) | 114.71 (96.77) | 114.57 (97.61) | 118.84 (81.31) |
| Hemoglobin [mass/volume] in blood [g/dL] (mean (SD)) | 12.06 (1.97) | 12.06 (1.96) | 12.25 (1.67) |
| Chloride [moles/volume] in serum or plasma [mmol/L] (mean (SD)) | 101.17 (4.39) | 101.14 (4.32) | 101.18 (3.99) |
| Eosinophils/100 leukocytes in blood [%] (mean (SD)) | 2.54 (2.24) | 2.55 (2.20) | 2.59 (2.45) |
| Platelets [#/volume] in blood by automated count [10*9/L] (mean (SD)) | 264.80 (108.88) | 265.96 (108.73) | 281.13 (95.46) |
| Albumin [mass/volume] in serum or plasma [g/L] (mean (SD)) | 37.86 (5.39) | 37.88 (5.38) | 38.61 (5.70) |
| Lactate dehydrogenase [enzymatic activity/volume] in serum or plasma [U/L] (mean (SD)) | 278.18 (187.27) | 276.51 (188.68) | 295.28 (181.16) |
| Lymphocytes/100 leukocytes in blood by automated count [%] (mean (SD)) | 21.35 (13.11) | 21.37 (13.14) | 19.43 (9.43) |
| Monocytes [#/volume] in blood by automated count [10*9/L] (mean (SD)) | 0.68 (0.45) | 0.68 (0.43) | 0.65 (0.34) |
| Systolic blood pressure (mean (SD)) | 128.58 (19.36) | 129.00 (19.19) | 123.94 (16.92) |
| Heart rate (mean (SD)) | 83.18 (15.98) | 83.25 (16.08) | 84.38 (13.86) |
| Oxygen saturation in arterial blood by pulse oximetry [%] (mean (SD)) | 96.32 (2.39) | 96.35 (2.35) |
|
| AST/ALT ratio [%] (mean (SD)) | 1.25 (0.63) | 1.25 (0.63) | 1.31 (0.61) |
This covariate was not available in OAK.
Models used in the SL and their hyperparameters.
| Model | Hyperparameters | Observations |
|---|---|---|
| ROPRO | — | |
| RSF | N = 500 | |
| Regularized cox | α = 0 | Lasso |
| α = 0.25 | Elastic net | |
| α = 0.5 | ||
| α = 0.75 | ||
| α = 1 | Ridge regression | |
| GB | N = 100; L = 1 | |
| N = 100; L = 2 | ||
| N = 500; L = 1 | ||
| N = 500; L = 2 | ||
| N = 1,000; L = 1 | ||
| N = 1,000; L = 2 | ||
| DS | Activation = | All DS models had 1 hidden layer and 90 neurons in that hidden layer |
| Activation = SELU | ||
| AE | N = 1; | All AE models had |
| N = 1; | ||
| N = 3; | ||
| N = 3; |
In the GB models, “N” and “L” correspond to the number of trees and their length, respectively. The “Activation” in the DS models corresponds to activation function used in the perceptrons, “N” corresponds to the number of hidden layers and “L” to the number of hidden neurons per layer. In the AE models, “N” corresponds to the number of layers of the encoder. “p” corresponds to the encoded variable size.
FIGURE 1Diagram of the analysis.
FIGURE 2Kaplan Meier curves of the datasets. (A) - Kaplan Meier curves for the FH train and test datasets. (B) - Kaplan Meier curve for the OAK test set.
FIGURE 3AE model C-index values for different bottleneck layer sizes and total layer sizes. All C-index values are referent to the validation set derived from FH train (see Datasets section for more details). Figures A, B and C refer to the 27, 44 and 88 covariate models, respectively.
FIGURE 4Histogram of the risk predictions for each model in the SL in the FH training dataset. The risk values correspond to the risk yielded by the original model, i.e., by ROPRO or DS. The risk was multiplied by the value of the model. The value scales the risks of each of the models in the SL. In the risk of the SL, only four models are represented, i.e. are not scaled down to zero. Those four models are both DS models, ROPRO and RSF.
FIGURE 5Individual model contribution to the SL risk by time-to-event in the FH training set. To create this visualization, the patients were split into groups based on their time to event (TTE). Each of these groups is represented in the x-axis. Then, for each group the median risk value per model was calculated and is displayed on the y-axis. The contribution changes over time because the models correctly assign higher risk for lower times-to-event and lower risk for later times-to-event.
FIGURE 6Violin plot of the C-index in the FH test dataset (top) and OAK III (bottom). The C-index results for the 27, 44 and 88 covariate sets are illustrated in Figure (A)–(C), respectively. The plot displays the distribution and a box-plot of the C-index. Bootstrap was used to determine the distribution of the C-index.
C-index and corresponding 95% confidence interval (CI) for all the models (ROPRO, regularized Cox models, Gradient Boosting (GB), Random Survival Forests (RSF), autoencoder (AE), DeepSurv (DS) and Super Learner (SL)) and covariate sets. Significant increases in C-index are in bold. Please refer to Individual Model Development section for the complete model hyperparameters.
| #Covariates | Model | FH test | OAK | ||
|---|---|---|---|---|---|
| C-index | 95% CI | C-index | 95% CI | ||
| 27 covariates | ROPRO | 0.702 | [0.698, 0.707] | 0.668 | [0.652, 0.683] |
| Cox + elastic net | 0.709 | [0.705, 0.714] | 0.674 | [0.657, 0.689] | |
| Cox + lasso | 0.709 | [0.705, 0.714] | 0.674 | [0.657, 0.690] | |
| Cox + ridge regression | 0.710 | [0.706, 0.715] | 0.675 | [0.659, 0.690] | |
| GB |
|
| 0.660 | [0.644, 0.676] | |
| RSF |
|
| 0.665 | [0.649, 0.680] | |
| AE | 0.705 | [0.700, 0.710] | 0.664 | [0.648, 0.680] | |
| DS |
|
| 0.673 | [0.658, 0.689] | |
| SL |
|
| 0.676 | [0.659, 0.691] | |
| 44 covariates | ROPRO | 0.701 | [0.696, 0.706] | 0.670 | [0.657, 0.685] |
| Cox + elastic net | 0.708 | [0.704, 0.714] | 0.674 | [0.658, 0.689] | |
| Cox + lasso | 0.708 | [0.704, 0.714] | 0.674 | [0.657, 0.687] | |
| Cox + ridge regression | 0.709 | [0.704, 0.714] | 0.677 | [0.661, 0.692] | |
| GB |
|
| 0.665 | [0.650, 0.681] | |
| RSF |
|
| 0.670 | [0.654, 0.686] | |
| AE | 0.708 | [0.703, 0.713] | 0.660 | [0.645, 0.676] | |
| DS |
|
| 0.674 | [0.658, 0.689] | |
| SL |
|
| 0.677 | [0.662, 0.695] | |
| 88 covariates | ROPRO | 0.698 | [0.693, 0.702] | 0.671 | [0.656, 0.686] |
| Cox + elastic net |
|
| 0.669 | [0.653, 0.684] | |
| Cox + lasso |
|
| 0.668 | [0.653, 0.683] | |
| Cox + ridge regression |
|
| 0.669 | [0.652, 0.685] | |
| GB |
|
| 0.671 | [0.656, 0.686] | |
| RSF |
|
| 0.677 | [0.660, 0.692] | |
| AE | 0.703 | [0.698, 0.707] | 0.662 | [0.646, 0.678] | |
| DS |
|
| 0.673 | [0.656, 0.688] | |
| SL |
|
| 0.678 | [0.662, 0.692] | |
The ROPRO was applied to all feature sets (27, 44 and 88 covariates). In all feature sets the ROPRO only uses 27 covariates (it was not refit) but since each dataset was separately imputed, the C-index value changes between feature sets.
Uno C-index and corresponding 95% confidence intervals. Significant increases in C-index over the ROPRO model are in bold.
| #Covariates | Model | FH test | OAK | ||
|---|---|---|---|---|---|
| Uno C-index | 95% CI | Uno C-index | 95% CI | ||
| 27 covariates | ROPRO | 0.674 | [0.669, 0.679] | 0.653 | [0.637, 0.668] |
| Cox + elastic net | 0.683 | [0.678, 0.688] | 0.659 | [0.643, 0.674] | |
| Cox + lasso | 0.683 | [0.678, 0.688] | 0.659 | [0.643, 0.674] | |
| Cox + ridge regression | 0.683 | [0.678, 0.688] | 0.660 | [0.644, 0.675] | |
| GB |
|
| 0.645 | [0.629, 0.661] | |
| RSF |
|
| 0.650 | [0.635, 0.666] | |
| AE | 0.679 | [0.674, 0.684] | 0.650 | [0.634, 0.665] | |
| DS |
|
| 0.658 | [0.644, 0.674] | |
| SL |
|
| 0.660 | [0.645, 0.676] | |
| 44 covariates | ROPRO | 0.672 | [0.667, 0.676] | 0.655 | [0.640, 0.670] |
| Cox + elastic net | 0.680 | [0.675, 0.686] | 0.659 | [0.644, 0.675] | |
| Cox + lasso | 0.680 | [0.675, 0.686] | 0.659 | [0.644, 0.673] | |
| Cox + ridge regression | 0.681 | [0.675, 0.686] | 0.662 | [0.647, 0.676] | |
| GB |
|
| 0.651 | [0.635, 0.666] | |
| RSF |
|
| 0.655 | [0.640, 0.670] | |
| AE | 0.681 | [0.675, 0.686] | 0.647 | [0.631, 0.662] | |
| DS |
|
| 0.659 | [0.644, 0.674] | |
| SL |
|
| 0.665 | [0.648, 0.679] | |
| 88 covariates | ROPRO | 0.669 | [0.664, 0.674] | 0.655 | [0.640, 0.671] |
| Cox + elastic net |
|
| 0.654 | [0.640, 0.670] | |
| Cox + lasso |
|
| 0.654 | [0.639, 0.669] | |
| Cox + ridge regression |
|
| 0.655 | [0.640, 0.670] | |
| GB |
|
| 0.658 | [0.643, 0.674] | |
| RSF |
|
| 0.663 | [0.648, 0.678] | |
| AE | 0.677 | [0.672, 0.682] | 0.648 | [0.633, 0.664] | |
| DS |
|
| 0.658 | [0.643, 0.674] | |
| SL |
|
| 0.664 | [0.648, 0.680] | |