diff --git a/PredictingHFinT2DM/.gitignore b/PredictingHFinT2DM/.gitignore new file mode 100644 index 00000000..5b6a0652 --- /dev/null +++ b/PredictingHFinT2DM/.gitignore @@ -0,0 +1,4 @@ +.Rproj.user +.Rhistory +.RData +.Ruserdata diff --git a/PredictingHFinT2DM/data/Analysis_1/plpLog.txt b/PredictingHFinT2DM/data/Analysis_1/plpLog.txt new file mode 100644 index 00000000..1ef33bc7 --- /dev/null +++ b/PredictingHFinT2DM/data/Analysis_1/plpLog.txt @@ -0,0 +1,57 @@ +2021-01-06 05:42:56 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.2.5 +2021-01-06 05:42:56 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_1 +2021-01-06 05:42:56 [Main thread] INFO PatientLevelPrediction CohortID: 19693 +2021-01-06 05:42:56 [Main thread] INFO PatientLevelPrediction OutcomeID: 19692 +2021-01-06 05:42:56 [Main thread] INFO PatientLevelPrediction Cohort size: 180552 +2021-01-06 05:42:56 [Main thread] INFO PatientLevelPrediction Covariates: 3 +2021-01-06 05:42:56 [Main thread] INFO PatientLevelPrediction Population size: 112989 +2021-01-06 05:42:56 [Main thread] INFO PatientLevelPrediction Cases: 1843 +2021-01-06 05:42:56 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") +2021-01-06 05:42:56 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class +2021-01-06 05:42:56 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 28246 test cases and 84743 train cases (28248, 28248, 28247) +2021-01-06 05:42:57 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model +2021-01-06 05:42:58 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 1 redundant covariates +2021-01-06 05:42:58 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 0 infrequent covariates +2021-01-06 05:42:58 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates +2021-01-06 05:42:58 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 1.6 secs +2021-01-06 05:42:58 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 05:42:59 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 05:43:00 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops +2021-01-06 05:43:24 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. +2021-01-06 05:43:24 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK +2021-01-06 05:43:24 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 25.3 secs +2021-01-06 05:43:29 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame +2021-01-06 05:43:29 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set +2021-01-06 05:43:29 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 05:43:30 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 05:43:30 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.536 secs +2021-01-06 05:43:31 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 05:43:32 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 05:43:32 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 05:43:32 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 05:43:33 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.207 secs +2021-01-06 05:43:33 [Main thread] INFO PatientLevelPrediction Train set evaluation +2021-01-06 05:43:33 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 63.12 +2021-01-06 05:43:33 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 3.07 +2021-01-06 05:43:33 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 +2021-01-06 05:43:36 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0166 : observed risk 0.0163 +2021-01-06 05:43:38 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: -0.0152 - gradient:1.0024 +2021-01-06 05:43:38 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.33 intercept: -0.01 +2021-01-06 05:43:41 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.03 +2021-01-06 05:43:41 [Main thread] INFO PatientLevelPrediction Test set evaluation +2021-01-06 05:43:41 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 64.08 +2021-01-06 05:43:41 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 61.60 +2021-01-06 05:43:41 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 66.56 +2021-01-06 05:43:41 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 3.18 +2021-01-06 05:43:41 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 +2021-01-06 05:43:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0166 : observed risk 0.0163 +2021-01-06 05:43:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: -0.0191 - gradient:1.0031 +2021-01-06 05:43:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.42 intercept: -0.01 +2021-01-06 05:43:43 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.03 +2021-01-06 05:43:44 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2021-01-06 05:43:44 +2021-01-06 05:43:44 [Main thread] INFO PatientLevelPrediction This can take a while... +2021-01-06 05:43:46 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2021-01-06 05:43:46 +2021-01-06 05:43:46 [Main thread] INFO PatientLevelPrediction Saving PlpResult +2021-01-06 05:43:49 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./results/ccae/Analysis_1\plpResult +2021-01-06 05:43:49 [Main thread] INFO PatientLevelPrediction Log saved to ./results/ccae/Analysis_1/plplog.txt +2021-01-06 05:43:49 [Main thread] INFO PatientLevelPrediction Run finished successfully. diff --git a/PredictingHFinT2DM/data/Analysis_1/plpResult.rds b/PredictingHFinT2DM/data/Analysis_1/plpResult.rds new file mode 100644 index 00000000..55ad4bf6 Binary files /dev/null and b/PredictingHFinT2DM/data/Analysis_1/plpResult.rds differ diff --git a/PredictingHFinT2DM/data/Analysis_10/plpLog.txt b/PredictingHFinT2DM/data/Analysis_10/plpLog.txt index fb0aa751..1349a1fb 100644 --- a/PredictingHFinT2DM/data/Analysis_10/plpLog.txt +++ b/PredictingHFinT2DM/data/Analysis_10/plpLog.txt @@ -1,55 +1,57 @@ -2020-07-08 09:50:16 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.0.2 -2020-07-08 09:50:16 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_10 -2020-07-08 09:50:16 [Main thread] INFO PatientLevelPrediction CohortID: 13897 -2020-07-08 09:50:16 [Main thread] INFO PatientLevelPrediction OutcomeID: 11696 -2020-07-08 09:50:16 [Main thread] INFO PatientLevelPrediction Cohort size: 5015 -2020-07-08 09:50:16 [Main thread] INFO PatientLevelPrediction Covariates: 13219 -2020-07-08 09:50:16 [Main thread] INFO PatientLevelPrediction Population size: 3567 -2020-07-08 09:50:16 [Main thread] INFO PatientLevelPrediction Cases: 53 -2020-07-08 09:50:16 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") -2020-07-08 09:50:16 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class -2020-07-08 09:50:17 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 891 test cases and 2676 train cases (893, 892, 891) -2020-07-08 09:50:17 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model -2020-07-08 09:50:19 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 11 redundant covariates -2020-07-08 09:50:19 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 6146 infrequent covariates -2020-07-08 09:50:19 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates -2020-07-08 09:50:21 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 4.12 secs -2020-07-08 09:50:21 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:50:22 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:50:23 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops -2020-07-08 09:50:26 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. -2020-07-08 09:50:26 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK -2020-07-08 09:50:26 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 5.56 secs -2020-07-08 09:50:27 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame -2020-07-08 09:50:27 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set -2020-07-08 09:50:27 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:50:28 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:50:28 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.165 secs -2020-07-08 09:50:28 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:50:29 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:50:29 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.089 secs -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction Train set evaluation -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 80.15 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 71.69 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 88.62 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 10.96 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.01 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration gradient: 2.52 intercept: -0.02 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.12 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction Test set evaluation -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 58.27 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 40.77 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 75.78 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 2.12 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.01 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration gradient: 0.88 intercept: 0.00 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.03 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2020-07-08 09:50:30 -2020-07-08 09:50:30 [Main thread] INFO PatientLevelPrediction This can take a while... -2020-07-08 09:50:42 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2020-07-08 09:50:42 -2020-07-08 09:50:42 [Main thread] INFO PatientLevelPrediction Saving PlpResult -2020-07-08 09:50:43 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./hfint2dm07072020Results/jmdc/Analysis_10\plpResult -2020-07-08 09:50:43 [Main thread] INFO PatientLevelPrediction Log saved to ./hfint2dm07072020Results/jmdc/Analysis_10/plplog.txt -2020-07-08 09:50:43 [Main thread] INFO PatientLevelPrediction Run finished successfully. +2021-01-06 11:39:13 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.2.5 +2021-01-06 11:39:13 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_2 +2021-01-06 11:39:13 [Main thread] INFO PatientLevelPrediction CohortID: 19693 +2021-01-06 11:39:13 [Main thread] INFO PatientLevelPrediction OutcomeID: 19692 +2021-01-06 11:39:13 [Main thread] INFO PatientLevelPrediction Cohort size: 213363 +2021-01-06 11:39:13 [Main thread] INFO PatientLevelPrediction Covariates: 92383 +2021-01-06 11:39:13 [Main thread] INFO PatientLevelPrediction Population size: 159633 +2021-01-06 11:39:13 [Main thread] INFO PatientLevelPrediction Cases: 3690 +2021-01-06 11:39:13 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") +2021-01-06 11:39:13 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class +2021-01-06 11:39:14 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 39907 test cases and 119726 train cases (39909, 39909, 39908) +2021-01-06 11:39:14 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model +2021-01-06 11:46:53 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 1 redundant covariates +2021-01-06 11:46:53 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 81159 infrequent covariates +2021-01-06 11:46:53 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates +2021-01-06 11:52:17 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 13 mins +2021-01-06 11:52:17 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 11:53:26 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 11:54:28 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops +2021-01-06 12:07:23 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. +2021-01-06 12:07:23 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK +2021-01-06 12:07:23 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 15.1 mins +2021-01-06 12:08:48 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame +2021-01-06 12:08:48 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set +2021-01-06 12:08:48 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 12:10:03 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 12:10:21 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 17.6 secs +2021-01-06 12:10:22 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 12:13:02 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 12:13:34 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 12:13:55 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 12:14:01 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 5.64 secs +2021-01-06 12:14:01 [Main thread] INFO PatientLevelPrediction Train set evaluation +2021-01-06 12:14:02 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 83.69 +2021-01-06 12:14:02 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 16.18 +2021-01-06 12:14:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 +2021-01-06 12:14:06 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0231 : observed risk 0.0231 +2021-01-06 12:14:08 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: -1e-04 - gradient:1.0147 +2021-01-06 12:14:09 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.15 intercept: -0.00 +2021-01-06 12:14:12 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.16 +2021-01-06 12:14:12 [Main thread] INFO PatientLevelPrediction Test set evaluation +2021-01-06 12:14:13 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 81.25 +2021-01-06 12:14:13 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 79.84 +2021-01-06 12:14:13 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 82.67 +2021-01-06 12:14:13 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 14.46 +2021-01-06 12:14:13 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 +2021-01-06 12:14:14 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.023 : observed risk 0.0231 +2021-01-06 12:14:15 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: 0.006 - gradient:1.0031 +2021-01-06 12:14:15 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.03 intercept: -0.00 +2021-01-06 12:14:16 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.15 +2021-01-06 12:14:17 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2021-01-06 12:14:17 +2021-01-06 12:14:17 [Main thread] INFO PatientLevelPrediction This can take a while... +2021-01-06 12:26:40 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2021-01-06 12:26:40 +2021-01-06 12:26:40 [Main thread] INFO PatientLevelPrediction Saving PlpResult +2021-01-06 12:26:47 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./results/panther/Analysis_2\plpResult +2021-01-06 12:26:47 [Main thread] INFO PatientLevelPrediction Log saved to ./results/panther/Analysis_2/plplog.txt +2021-01-06 12:26:47 [Main thread] INFO PatientLevelPrediction Run finished successfully. diff --git a/PredictingHFinT2DM/data/Analysis_10/plpResult.rds b/PredictingHFinT2DM/data/Analysis_10/plpResult.rds index 2863983d..a8d6467e 100644 Binary files a/PredictingHFinT2DM/data/Analysis_10/plpResult.rds and b/PredictingHFinT2DM/data/Analysis_10/plpResult.rds differ diff --git a/PredictingHFinT2DM/data/Analysis_2/plpLog.txt b/PredictingHFinT2DM/data/Analysis_2/plpLog.txt index 074ff8b1..1d7d0def 100644 --- a/PredictingHFinT2DM/data/Analysis_2/plpLog.txt +++ b/PredictingHFinT2DM/data/Analysis_2/plpLog.txt @@ -1,55 +1,57 @@ -2020-07-08 09:06:54 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.0.2 -2020-07-08 09:06:54 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_2 -2020-07-08 09:06:54 [Main thread] INFO PatientLevelPrediction CohortID: 13897 -2020-07-08 09:06:54 [Main thread] INFO PatientLevelPrediction OutcomeID: 11696 -2020-07-08 09:06:54 [Main thread] INFO PatientLevelPrediction Cohort size: 50133 -2020-07-08 09:06:54 [Main thread] INFO PatientLevelPrediction Covariates: 46973 -2020-07-08 09:06:54 [Main thread] INFO PatientLevelPrediction Population size: 30289 -2020-07-08 09:06:54 [Main thread] INFO PatientLevelPrediction Cases: 236 -2020-07-08 09:06:54 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") -2020-07-08 09:06:54 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class -2020-07-08 09:06:54 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 7572 test cases and 22717 train cases (7573, 7572, 7572) -2020-07-08 09:06:54 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model -2020-07-08 09:07:16 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 4 redundant covariates -2020-07-08 09:07:16 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 36486 infrequent covariates -2020-07-08 09:07:16 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates -2020-07-08 09:07:40 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 45.8 secs -2020-07-08 09:07:40 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:07:51 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:07:59 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops -2020-07-08 09:09:12 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. -2020-07-08 09:09:12 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK -2020-07-08 09:09:12 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 1.53 mins -2020-07-08 09:09:27 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame -2020-07-08 09:09:27 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set -2020-07-08 09:09:27 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:09:38 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:09:39 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 1.27 secs -2020-07-08 09:09:39 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:09:45 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:09:50 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:09:53 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:09:53 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.469 secs -2020-07-08 09:09:53 [Main thread] INFO PatientLevelPrediction Train set evaluation -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 84.32 -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 81.56 -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 87.09 -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 8.75 -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.01 -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration gradient: 1.87 intercept: -0.01 -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.09 -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction Test set evaluation -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 73.14 -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 66.40 -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 79.88 -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 2.43 -2020-07-08 09:09:54 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.01 -2020-07-08 09:09:55 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration gradient: 0.95 intercept: 0.00 -2020-07-08 09:09:55 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.03 -2020-07-08 09:09:55 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2020-07-08 09:09:55 -2020-07-08 09:09:55 [Main thread] INFO PatientLevelPrediction This can take a while... -2020-07-08 09:13:58 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2020-07-08 09:13:58 -2020-07-08 09:13:58 [Main thread] INFO PatientLevelPrediction Saving PlpResult -2020-07-08 09:14:00 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./hfint2dm07072020Results/ccae/Analysis_2\plpResult -2020-07-08 09:14:00 [Main thread] INFO PatientLevelPrediction Log saved to ./hfint2dm07072020Results/ccae/Analysis_2/plplog.txt -2020-07-08 09:14:00 [Main thread] INFO PatientLevelPrediction Run finished successfully. +2021-01-06 06:08:13 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.2.5 +2021-01-06 06:08:13 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_2 +2021-01-06 06:08:13 [Main thread] INFO PatientLevelPrediction CohortID: 19693 +2021-01-06 06:08:13 [Main thread] INFO PatientLevelPrediction OutcomeID: 19692 +2021-01-06 06:08:13 [Main thread] INFO PatientLevelPrediction Cohort size: 180552 +2021-01-06 06:08:13 [Main thread] INFO PatientLevelPrediction Covariates: 88144 +2021-01-06 06:08:13 [Main thread] INFO PatientLevelPrediction Population size: 112989 +2021-01-06 06:08:13 [Main thread] INFO PatientLevelPrediction Cases: 1843 +2021-01-06 06:08:13 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") +2021-01-06 06:08:13 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class +2021-01-06 06:08:14 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 28246 test cases and 84743 train cases (28248, 28248, 28247) +2021-01-06 06:08:14 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model +2021-01-06 06:14:56 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 2 redundant covariates +2021-01-06 06:14:57 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 76062 infrequent covariates +2021-01-06 06:14:57 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates +2021-01-06 06:19:43 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 11.5 mins +2021-01-06 06:19:43 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 06:20:36 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 06:21:14 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops +2021-01-06 06:27:29 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. +2021-01-06 06:27:29 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK +2021-01-06 06:27:29 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 7.76 mins +2021-01-06 06:29:01 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame +2021-01-06 06:29:02 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set +2021-01-06 06:29:02 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 06:29:54 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 06:30:02 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 7.63 secs +2021-01-06 06:30:02 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 06:31:48 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 06:32:11 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 06:32:26 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 06:32:28 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 2.54 secs +2021-01-06 06:32:28 [Main thread] INFO PatientLevelPrediction Train set evaluation +2021-01-06 06:32:29 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 80.43 +2021-01-06 06:32:29 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 10.64 +2021-01-06 06:32:29 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 +2021-01-06 06:32:31 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0163 : observed risk 0.0163 +2021-01-06 06:32:33 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: -2e-04 - gradient:1.0131 +2021-01-06 06:32:33 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.23 intercept: -0.00 +2021-01-06 06:32:36 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.11 +2021-01-06 06:32:36 [Main thread] INFO PatientLevelPrediction Test set evaluation +2021-01-06 06:32:36 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 78.39 +2021-01-06 06:32:36 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 76.18 +2021-01-06 06:32:36 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 80.60 +2021-01-06 06:32:36 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 8.89 +2021-01-06 06:32:36 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 +2021-01-06 06:32:37 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0167 : observed risk 0.0163 +2021-01-06 06:32:37 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: -0.0284 - gradient:1.0058 +2021-01-06 06:32:37 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.06 intercept: -0.00 +2021-01-06 06:32:38 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.09 +2021-01-06 06:32:39 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2021-01-06 06:32:39 +2021-01-06 06:32:39 [Main thread] INFO PatientLevelPrediction This can take a while... +2021-01-06 06:41:01 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2021-01-06 06:41:01 +2021-01-06 06:41:01 [Main thread] INFO PatientLevelPrediction Saving PlpResult +2021-01-06 06:41:07 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./results/ccae/Analysis_2\plpResult +2021-01-06 06:41:07 [Main thread] INFO PatientLevelPrediction Log saved to ./results/ccae/Analysis_2/plplog.txt +2021-01-06 06:41:07 [Main thread] INFO PatientLevelPrediction Run finished successfully. diff --git a/PredictingHFinT2DM/data/Analysis_2/plpResult.rds b/PredictingHFinT2DM/data/Analysis_2/plpResult.rds index 2108af4b..da42b43e 100644 Binary files a/PredictingHFinT2DM/data/Analysis_2/plpResult.rds and b/PredictingHFinT2DM/data/Analysis_2/plpResult.rds differ diff --git a/PredictingHFinT2DM/data/Analysis_3/plpLog.txt b/PredictingHFinT2DM/data/Analysis_3/plpLog.txt new file mode 100644 index 00000000..f9d18d31 --- /dev/null +++ b/PredictingHFinT2DM/data/Analysis_3/plpLog.txt @@ -0,0 +1,59 @@ +2021-01-06 08:39:55 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.2.5 +2021-01-06 08:39:55 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_1 +2021-01-06 08:39:55 [Main thread] INFO PatientLevelPrediction CohortID: 19693 +2021-01-06 08:39:55 [Main thread] INFO PatientLevelPrediction OutcomeID: 19692 +2021-01-06 08:39:55 [Main thread] INFO PatientLevelPrediction Cohort size: 24139 +2021-01-06 08:39:55 [Main thread] INFO PatientLevelPrediction Covariates: 3 +2021-01-06 08:39:55 [Main thread] INFO PatientLevelPrediction Population size: 15860 +2021-01-06 08:39:55 [Main thread] INFO PatientLevelPrediction Cases: 650 +2021-01-06 08:39:55 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") +2021-01-06 08:39:55 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class +2021-01-06 08:39:55 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 3964 test cases and 11896 train cases (3966, 3966, 3964) +2021-01-06 08:39:55 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model +2021-01-06 08:39:56 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 1 redundant covariates +2021-01-06 08:39:56 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 0 infrequent covariates +2021-01-06 08:39:56 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates +2021-01-06 08:39:56 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 0.947 secs +2021-01-06 08:39:56 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 08:39:57 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 08:39:57 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops +2021-01-06 08:39:59 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. +2021-01-06 08:39:59 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK +2021-01-06 08:39:59 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 2.85 secs +2021-01-06 08:40:00 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame +2021-01-06 08:40:00 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set +2021-01-06 08:40:00 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 08:40:00 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 08:40:00 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.152 secs +2021-01-06 08:40:01 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 08:40:01 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 08:40:01 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 08:40:01 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 08:40:01 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.0942 secs +2021-01-06 08:40:01 [Main thread] INFO PatientLevelPrediction Train set evaluation +2021-01-06 08:40:01 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 66.41 +2021-01-06 08:40:01 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 64.08 +2021-01-06 08:40:01 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 68.75 +2021-01-06 08:40:01 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 8.09 +2021-01-06 08:40:01 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.04 +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.041 : observed risk 0.041 +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: 0 - gradient:1.0002 +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 0.98 intercept: 0.00 +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.08 +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction Test set evaluation +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 65.23 +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 60.90 +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 69.56 +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 7.60 +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.04 +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0417 : observed risk 0.0409 +2021-01-06 08:40:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: -0.0213 - gradient:0.9978 +2021-01-06 08:40:03 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 0.91 intercept: 0.00 +2021-01-06 08:40:03 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.08 +2021-01-06 08:40:03 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2021-01-06 08:40:03 +2021-01-06 08:40:03 [Main thread] INFO PatientLevelPrediction This can take a while... +2021-01-06 08:40:03 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2021-01-06 08:40:03 +2021-01-06 08:40:03 [Main thread] INFO PatientLevelPrediction Saving PlpResult +2021-01-06 08:40:04 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./results/mdcd/Analysis_1\plpResult +2021-01-06 08:40:04 [Main thread] INFO PatientLevelPrediction Log saved to ./results/mdcd/Analysis_1/plplog.txt +2021-01-06 08:40:04 [Main thread] INFO PatientLevelPrediction Run finished successfully. diff --git a/PredictingHFinT2DM/data/Analysis_3/plpResult.rds b/PredictingHFinT2DM/data/Analysis_3/plpResult.rds new file mode 100644 index 00000000..91942113 Binary files /dev/null and b/PredictingHFinT2DM/data/Analysis_3/plpResult.rds differ diff --git a/PredictingHFinT2DM/data/Analysis_4/plpLog.txt b/PredictingHFinT2DM/data/Analysis_4/plpLog.txt index 6fbbef43..cfa28733 100644 --- a/PredictingHFinT2DM/data/Analysis_4/plpLog.txt +++ b/PredictingHFinT2DM/data/Analysis_4/plpLog.txt @@ -1,55 +1,59 @@ -2020-07-08 09:24:46 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.0.2 -2020-07-08 09:24:46 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_4 -2020-07-08 09:24:46 [Main thread] INFO PatientLevelPrediction CohortID: 13897 -2020-07-08 09:24:46 [Main thread] INFO PatientLevelPrediction OutcomeID: 11696 -2020-07-08 09:24:46 [Main thread] INFO PatientLevelPrediction Cohort size: 3925 -2020-07-08 09:24:46 [Main thread] INFO PatientLevelPrediction Covariates: 25536 -2020-07-08 09:24:46 [Main thread] INFO PatientLevelPrediction Population size: 2622 -2020-07-08 09:24:46 [Main thread] INFO PatientLevelPrediction Cases: 93 -2020-07-08 09:24:46 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") -2020-07-08 09:24:46 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class -2020-07-08 09:24:46 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 655 test cases and 1967 train cases (657, 655, 655) -2020-07-08 09:24:46 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model -2020-07-08 09:24:49 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 11 redundant covariates -2020-07-08 09:24:49 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 11004 infrequent covariates -2020-07-08 09:24:49 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates -2020-07-08 09:24:51 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 4.58 secs -2020-07-08 09:24:51 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:24:52 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:24:53 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops -2020-07-08 09:24:58 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. -2020-07-08 09:24:58 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK -2020-07-08 09:24:58 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 7.5 secs -2020-07-08 09:24:59 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame -2020-07-08 09:24:59 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set -2020-07-08 09:24:59 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:25:00 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:25:00 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.159 secs -2020-07-08 09:25:00 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:25:01 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.094 secs -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction Train set evaluation -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 82.42 -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 77.56 -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 87.28 -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 26.34 -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.03 -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration gradient: 1.99 intercept: -0.04 -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.27 -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction Test set evaluation -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 60.27 -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 49.05 -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 71.48 -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 4.90 -2020-07-08 09:25:02 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.03 -2020-07-08 09:25:03 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration gradient: 0.44 intercept: 0.02 -2020-07-08 09:25:03 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.06 -2020-07-08 09:25:03 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2020-07-08 09:25:03 -2020-07-08 09:25:03 [Main thread] INFO PatientLevelPrediction This can take a while... -2020-07-08 09:25:14 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2020-07-08 09:25:14 -2020-07-08 09:25:14 [Main thread] INFO PatientLevelPrediction Saving PlpResult -2020-07-08 09:25:16 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./hfint2dm07072020Results/mdcr/Analysis_4\plpResult -2020-07-08 09:25:16 [Main thread] INFO PatientLevelPrediction Log saved to ./hfint2dm07072020Results/mdcr/Analysis_4/plplog.txt -2020-07-08 09:25:16 [Main thread] INFO PatientLevelPrediction Run finished successfully. +2021-01-06 08:57:24 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.2.5 +2021-01-06 08:57:24 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_2 +2021-01-06 08:57:24 [Main thread] INFO PatientLevelPrediction CohortID: 19693 +2021-01-06 08:57:24 [Main thread] INFO PatientLevelPrediction OutcomeID: 19692 +2021-01-06 08:57:24 [Main thread] INFO PatientLevelPrediction Cohort size: 24139 +2021-01-06 08:57:24 [Main thread] INFO PatientLevelPrediction Covariates: 56858 +2021-01-06 08:57:24 [Main thread] INFO PatientLevelPrediction Population size: 15860 +2021-01-06 08:57:24 [Main thread] INFO PatientLevelPrediction Cases: 650 +2021-01-06 08:57:24 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") +2021-01-06 08:57:24 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class +2021-01-06 08:57:24 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 3964 test cases and 11896 train cases (3966, 3966, 3964) +2021-01-06 08:57:24 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model +2021-01-06 08:58:46 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 2 redundant covariates +2021-01-06 08:58:46 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 41597 infrequent covariates +2021-01-06 08:58:46 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates +2021-01-06 08:59:45 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 2.35 mins +2021-01-06 08:59:45 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 08:59:55 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 09:00:04 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops +2021-01-06 09:00:52 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. +2021-01-06 09:00:52 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK +2021-01-06 09:00:52 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 1.12 mins +2021-01-06 09:01:05 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame +2021-01-06 09:01:05 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set +2021-01-06 09:01:05 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 09:01:15 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 09:01:16 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 1.18 secs +2021-01-06 09:01:17 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 09:01:32 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 09:01:37 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 09:01:41 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 09:01:41 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.482 secs +2021-01-06 09:01:41 [Main thread] INFO PatientLevelPrediction Train set evaluation +2021-01-06 09:01:41 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 82.59 +2021-01-06 09:01:41 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 80.81 +2021-01-06 09:01:41 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 84.37 +2021-01-06 09:01:41 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 22.18 +2021-01-06 09:01:41 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.04 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.041 : observed risk 0.041 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: 8e-04 - gradient:1.0352 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.30 intercept: -0.01 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.22 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction Test set evaluation +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 76.98 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 73.26 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 80.69 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 15.62 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.04 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0417 : observed risk 0.0409 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: -0.0234 - gradient:1.0018 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 0.93 intercept: 0.00 +2021-01-06 09:01:42 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.16 +2021-01-06 09:01:43 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2021-01-06 09:01:43 +2021-01-06 09:01:43 [Main thread] INFO PatientLevelPrediction This can take a while... +2021-01-06 09:02:42 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2021-01-06 09:02:42 +2021-01-06 09:02:42 [Main thread] INFO PatientLevelPrediction Saving PlpResult +2021-01-06 09:02:45 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./results/mdcd/Analysis_2\plpResult +2021-01-06 09:02:45 [Main thread] INFO PatientLevelPrediction Log saved to ./results/mdcd/Analysis_2/plplog.txt +2021-01-06 09:02:45 [Main thread] INFO PatientLevelPrediction Run finished successfully. diff --git a/PredictingHFinT2DM/data/Analysis_4/plpResult.rds b/PredictingHFinT2DM/data/Analysis_4/plpResult.rds index 0312384b..df584b93 100644 Binary files a/PredictingHFinT2DM/data/Analysis_4/plpResult.rds and b/PredictingHFinT2DM/data/Analysis_4/plpResult.rds differ diff --git a/PredictingHFinT2DM/data/Analysis_5/plpLog.txt b/PredictingHFinT2DM/data/Analysis_5/plpLog.txt new file mode 100644 index 00000000..7f5ec8c1 --- /dev/null +++ b/PredictingHFinT2DM/data/Analysis_5/plpLog.txt @@ -0,0 +1,57 @@ +2021-01-06 07:50:26 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.2.5 +2021-01-06 07:50:26 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_1 +2021-01-06 07:50:26 [Main thread] INFO PatientLevelPrediction CohortID: 19693 +2021-01-06 07:50:26 [Main thread] INFO PatientLevelPrediction OutcomeID: 19692 +2021-01-06 07:50:26 [Main thread] INFO PatientLevelPrediction Cohort size: 32271 +2021-01-06 07:50:26 [Main thread] INFO PatientLevelPrediction Covariates: 3 +2021-01-06 07:50:26 [Main thread] INFO PatientLevelPrediction Population size: 22433 +2021-01-06 07:50:26 [Main thread] INFO PatientLevelPrediction Cases: 1658 +2021-01-06 07:50:26 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") +2021-01-06 07:50:26 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class +2021-01-06 07:50:26 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 5607 test cases and 16826 train cases (5609, 5609, 5608) +2021-01-06 07:50:26 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model +2021-01-06 07:50:27 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 1 redundant covariates +2021-01-06 07:50:27 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 0 infrequent covariates +2021-01-06 07:50:27 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates +2021-01-06 07:50:27 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 1.09 secs +2021-01-06 07:50:28 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 07:50:28 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 07:50:28 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops +2021-01-06 07:50:35 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. +2021-01-06 07:50:35 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK +2021-01-06 07:50:35 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 7.81 secs +2021-01-06 07:50:35 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame +2021-01-06 07:50:35 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set +2021-01-06 07:50:35 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 07:50:36 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 07:50:36 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.179 secs +2021-01-06 07:50:36 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 07:50:36 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 07:50:37 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 07:50:37 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 07:50:37 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.155 secs +2021-01-06 07:50:37 [Main thread] INFO PatientLevelPrediction Train set evaluation +2021-01-06 07:50:37 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 63.40 +2021-01-06 07:50:37 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 12.75 +2021-01-06 07:50:37 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.07 +2021-01-06 07:50:37 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0742 : observed risk 0.0739 +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: -0.0044 - gradient:1.0038 +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.11 intercept: -0.01 +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.13 +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction Test set evaluation +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 63.78 +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 60.96 +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 66.59 +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 13.02 +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.07 +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0741 : observed risk 0.0738 +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: -0.0034 - gradient:1.0041 +2021-01-06 07:50:38 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.10 intercept: -0.01 +2021-01-06 07:50:39 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.13 +2021-01-06 07:50:40 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2021-01-06 07:50:40 +2021-01-06 07:50:40 [Main thread] INFO PatientLevelPrediction This can take a while... +2021-01-06 07:50:40 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2021-01-06 07:50:40 +2021-01-06 07:50:40 [Main thread] INFO PatientLevelPrediction Saving PlpResult +2021-01-06 07:50:41 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./results/mdcr/Analysis_1\plpResult +2021-01-06 07:50:41 [Main thread] INFO PatientLevelPrediction Log saved to ./results/mdcr/Analysis_1/plplog.txt +2021-01-06 07:50:41 [Main thread] INFO PatientLevelPrediction Run finished successfully. diff --git a/PredictingHFinT2DM/data/Analysis_5/plpResult.rds b/PredictingHFinT2DM/data/Analysis_5/plpResult.rds new file mode 100644 index 00000000..99b49fa4 Binary files /dev/null and b/PredictingHFinT2DM/data/Analysis_5/plpResult.rds differ diff --git a/PredictingHFinT2DM/data/Analysis_6/plpLog.txt b/PredictingHFinT2DM/data/Analysis_6/plpLog.txt index 48175967..a44271cb 100644 --- a/PredictingHFinT2DM/data/Analysis_6/plpLog.txt +++ b/PredictingHFinT2DM/data/Analysis_6/plpLog.txt @@ -1,55 +1,57 @@ -2020-07-08 09:29:44 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.0.2 -2020-07-08 09:29:44 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_6 -2020-07-08 09:29:44 [Main thread] INFO PatientLevelPrediction CohortID: 13897 -2020-07-08 09:29:44 [Main thread] INFO PatientLevelPrediction OutcomeID: 11696 -2020-07-08 09:29:44 [Main thread] INFO PatientLevelPrediction Cohort size: 7829 -2020-07-08 09:29:44 [Main thread] INFO PatientLevelPrediction Covariates: 33397 -2020-07-08 09:29:44 [Main thread] INFO PatientLevelPrediction Population size: 4888 -2020-07-08 09:29:44 [Main thread] INFO PatientLevelPrediction Cases: 96 -2020-07-08 09:29:44 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") -2020-07-08 09:29:44 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class -2020-07-08 09:29:44 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 1222 test cases and 3666 train cases (1222, 1222, 1222) -2020-07-08 09:29:44 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model -2020-07-08 09:29:49 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 5 redundant covariates -2020-07-08 09:29:49 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 19054 infrequent covariates -2020-07-08 09:29:49 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates -2020-07-08 09:29:54 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 10.4 secs -2020-07-08 09:29:54 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:29:57 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:29:59 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops -2020-07-08 09:30:10 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. -2020-07-08 09:30:10 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK -2020-07-08 09:30:10 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 15.4 secs -2020-07-08 09:30:11 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame -2020-07-08 09:30:12 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set -2020-07-08 09:30:12 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:30:14 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:30:14 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.296 secs -2020-07-08 09:30:14 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:30:16 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:30:17 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.15 secs -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction Train set evaluation -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 86.40 -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 82.22 -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 90.59 -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 25.43 -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration gradient: 1.72 intercept: -0.01 -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.26 -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction Test set evaluation -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 71.21 -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 62.31 -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 80.10 -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 4.61 -2020-07-08 09:30:18 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 -2020-07-08 09:30:19 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration gradient: 0.78 intercept: 0.01 -2020-07-08 09:30:19 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.05 -2020-07-08 09:30:19 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2020-07-08 09:30:19 -2020-07-08 09:30:19 [Main thread] INFO PatientLevelPrediction This can take a while... -2020-07-08 09:30:58 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2020-07-08 09:30:58 -2020-07-08 09:30:58 [Main thread] INFO PatientLevelPrediction Saving PlpResult -2020-07-08 09:31:00 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./hfint2dm07072020Results/mdcd/Analysis_6\plpResult -2020-07-08 09:31:00 [Main thread] INFO PatientLevelPrediction Log saved to ./hfint2dm07072020Results/mdcd/Analysis_6/plplog.txt -2020-07-08 09:31:00 [Main thread] INFO PatientLevelPrediction Run finished successfully. +2021-01-06 08:20:09 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.2.5 +2021-01-06 08:20:09 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_2 +2021-01-06 08:20:09 [Main thread] INFO PatientLevelPrediction CohortID: 19693 +2021-01-06 08:20:09 [Main thread] INFO PatientLevelPrediction OutcomeID: 19692 +2021-01-06 08:20:09 [Main thread] INFO PatientLevelPrediction Cohort size: 32271 +2021-01-06 08:20:09 [Main thread] INFO PatientLevelPrediction Covariates: 60667 +2021-01-06 08:20:09 [Main thread] INFO PatientLevelPrediction Population size: 22433 +2021-01-06 08:20:09 [Main thread] INFO PatientLevelPrediction Cases: 1658 +2021-01-06 08:20:09 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") +2021-01-06 08:20:09 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class +2021-01-06 08:20:09 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 5607 test cases and 16826 train cases (5609, 5609, 5608) +2021-01-06 08:20:09 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model +2021-01-06 08:21:38 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 2 redundant covariates +2021-01-06 08:21:38 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 46318 infrequent covariates +2021-01-06 08:21:38 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates +2021-01-06 08:22:42 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 2.54 mins +2021-01-06 08:22:42 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 08:22:53 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 08:23:01 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops +2021-01-06 08:25:18 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. +2021-01-06 08:25:18 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK +2021-01-06 08:25:18 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 2.6 mins +2021-01-06 08:25:29 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame +2021-01-06 08:25:30 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set +2021-01-06 08:25:30 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 08:25:42 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 08:25:43 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 1.64 secs +2021-01-06 08:25:44 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 08:26:04 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 08:26:11 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 08:26:15 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 08:26:15 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.631 secs +2021-01-06 08:26:15 [Main thread] INFO PatientLevelPrediction Train set evaluation +2021-01-06 08:26:16 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 78.33 +2021-01-06 08:26:16 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 25.88 +2021-01-06 08:26:16 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.06 +2021-01-06 08:26:16 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.074 : observed risk 0.0739 +2021-01-06 08:26:16 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: -0.0012 - gradient:1.03 +2021-01-06 08:26:16 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.23 intercept: -0.02 +2021-01-06 08:26:17 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.26 +2021-01-06 08:26:17 [Main thread] INFO PatientLevelPrediction Test set evaluation +2021-01-06 08:26:17 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 72.87 +2021-01-06 08:26:17 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 70.34 +2021-01-06 08:26:17 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 75.40 +2021-01-06 08:26:17 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 19.42 +2021-01-06 08:26:17 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.06 +2021-01-06 08:26:17 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0764 : observed risk 0.0738 +2021-01-06 08:26:17 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: -0.0398 - gradient:0.9911 +2021-01-06 08:26:17 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 0.88 intercept: 0.01 +2021-01-06 08:26:18 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.20 +2021-01-06 08:26:18 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2021-01-06 08:26:18 +2021-01-06 08:26:18 [Main thread] INFO PatientLevelPrediction This can take a while... +2021-01-06 08:27:28 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2021-01-06 08:27:28 +2021-01-06 08:27:28 [Main thread] INFO PatientLevelPrediction Saving PlpResult +2021-01-06 08:27:31 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./results/mdcr/Analysis_2\plpResult +2021-01-06 08:27:31 [Main thread] INFO PatientLevelPrediction Log saved to ./results/mdcr/Analysis_2/plplog.txt +2021-01-06 08:27:31 [Main thread] INFO PatientLevelPrediction Run finished successfully. diff --git a/PredictingHFinT2DM/data/Analysis_6/plpResult.rds b/PredictingHFinT2DM/data/Analysis_6/plpResult.rds index 2f9ed520..4341866d 100644 Binary files a/PredictingHFinT2DM/data/Analysis_6/plpResult.rds and b/PredictingHFinT2DM/data/Analysis_6/plpResult.rds differ diff --git a/PredictingHFinT2DM/data/Analysis_7/plpLog.txt b/PredictingHFinT2DM/data/Analysis_7/plpLog.txt new file mode 100644 index 00000000..822e81b1 --- /dev/null +++ b/PredictingHFinT2DM/data/Analysis_7/plpLog.txt @@ -0,0 +1,55 @@ +2021-01-06 09:19:01 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.2.5 +2021-01-06 09:19:01 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_1 +2021-01-06 09:19:01 [Main thread] INFO PatientLevelPrediction CohortID: 19693 +2021-01-06 09:19:01 [Main thread] INFO PatientLevelPrediction OutcomeID: 19692 +2021-01-06 09:19:01 [Main thread] INFO PatientLevelPrediction Cohort size: 141600 +2021-01-06 09:19:01 [Main thread] INFO PatientLevelPrediction Covariates: 3 +2021-01-06 09:19:01 [Main thread] INFO PatientLevelPrediction Population size: 92272 +2021-01-06 09:19:01 [Main thread] INFO PatientLevelPrediction Cases: 4332 +2021-01-06 09:19:01 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") +2021-01-06 09:19:01 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class +2021-01-06 09:19:01 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 23068 test cases and 69204 train cases (23068, 23068, 23068) +2021-01-06 09:19:02 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model +2021-01-06 09:19:03 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 1 redundant covariates +2021-01-06 09:19:03 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 0 infrequent covariates +2021-01-06 09:19:03 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates +2021-01-06 09:19:03 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 1.62 secs +2021-01-06 09:19:03 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 09:19:04 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 09:19:05 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops +2021-01-06 09:19:21 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. +2021-01-06 09:19:21 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK +2021-01-06 09:19:21 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 17.6 secs +2021-01-06 09:19:25 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame +2021-01-06 09:19:25 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set +2021-01-06 09:19:25 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 09:19:26 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 09:19:26 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.406 secs +2021-01-06 09:19:27 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 09:19:27 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 09:19:28 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 09:19:28 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 09:19:28 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.193 secs +2021-01-06 09:19:28 [Main thread] INFO PatientLevelPrediction Train set evaluation +2021-01-06 09:19:28 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 69.43 +2021-01-06 09:19:28 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 10.73 +2021-01-06 09:19:28 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.04 +2021-01-06 09:19:30 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0469 : observed risk 0.0469 +2021-01-06 09:19:31 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: 0 - gradient:1.0009 +2021-01-06 09:19:31 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.02 intercept: -0.00 +2021-01-06 09:19:33 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.11 +2021-01-06 09:19:33 [Main thread] INFO PatientLevelPrediction Test set evaluation +2021-01-06 09:19:33 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 69.37 +2021-01-06 09:19:33 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 10.90 +2021-01-06 09:19:33 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.04 +2021-01-06 09:19:34 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0468 : observed risk 0.0469 +2021-01-06 09:19:34 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: 0.0045 - gradient:1.0009 +2021-01-06 09:19:34 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.04 intercept: -0.00 +2021-01-06 09:19:34 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.11 +2021-01-06 09:19:35 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2021-01-06 09:19:35 +2021-01-06 09:19:35 [Main thread] INFO PatientLevelPrediction This can take a while... +2021-01-06 09:19:36 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2021-01-06 09:19:36 +2021-01-06 09:19:36 [Main thread] INFO PatientLevelPrediction Saving PlpResult +2021-01-06 09:19:38 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./results/optumDod/Analysis_1\plpResult +2021-01-06 09:19:38 [Main thread] INFO PatientLevelPrediction Log saved to ./results/optumDod/Analysis_1/plplog.txt +2021-01-06 09:19:38 [Main thread] INFO PatientLevelPrediction Run finished successfully. diff --git a/PredictingHFinT2DM/data/Analysis_7/plpResult.rds b/PredictingHFinT2DM/data/Analysis_7/plpResult.rds new file mode 100644 index 00000000..6bc292d5 Binary files /dev/null and b/PredictingHFinT2DM/data/Analysis_7/plpResult.rds differ diff --git a/PredictingHFinT2DM/data/Analysis_8/plpLog.txt b/PredictingHFinT2DM/data/Analysis_8/plpLog.txt index fd3d8ab0..ce00fe36 100644 --- a/PredictingHFinT2DM/data/Analysis_8/plpLog.txt +++ b/PredictingHFinT2DM/data/Analysis_8/plpLog.txt @@ -1,55 +1,55 @@ -2020-07-08 09:35:41 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.0.2 -2020-07-08 09:35:41 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_8 -2020-07-08 09:35:41 [Main thread] INFO PatientLevelPrediction CohortID: 13897 -2020-07-08 09:35:41 [Main thread] INFO PatientLevelPrediction OutcomeID: 11696 -2020-07-08 09:35:41 [Main thread] INFO PatientLevelPrediction Cohort size: 31902 -2020-07-08 09:35:41 [Main thread] INFO PatientLevelPrediction Covariates: 45255 -2020-07-08 09:35:41 [Main thread] INFO PatientLevelPrediction Population size: 19114 -2020-07-08 09:35:41 [Main thread] INFO PatientLevelPrediction Cases: 343 -2020-07-08 09:35:41 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") -2020-07-08 09:35:41 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class -2020-07-08 09:35:41 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 4777 test cases and 14337 train cases (4779, 4779, 4779) -2020-07-08 09:35:42 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model -2020-07-08 09:35:58 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 2 redundant covariates -2020-07-08 09:35:58 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 33191 infrequent covariates -2020-07-08 09:35:58 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates -2020-07-08 09:36:15 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 33.2 secs -2020-07-08 09:36:15 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:36:22 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:36:27 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops -2020-07-08 09:37:45 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. -2020-07-08 09:37:45 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK -2020-07-08 09:37:45 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 1.5 mins -2020-07-08 09:37:57 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame -2020-07-08 09:37:57 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set -2020-07-08 09:37:57 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:38:04 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:38:05 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.944 secs -2020-07-08 09:38:05 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:38:09 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:38:13 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... -2020-07-08 09:38:16 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... -2020-07-08 09:38:16 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.431 secs -2020-07-08 09:38:16 [Main thread] INFO PatientLevelPrediction Train set evaluation -2020-07-08 09:38:16 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 84.28 -2020-07-08 09:38:16 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 81.85 -2020-07-08 09:38:16 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 86.71 -2020-07-08 09:38:16 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 14.37 -2020-07-08 09:38:16 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration gradient: 1.49 intercept: -0.01 -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.15 -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction Test set evaluation -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 77.72 -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 73.27 -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 82.17 -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 5.55 -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration gradient: 1.01 intercept: -0.00 -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.06 -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2020-07-08 09:38:17 -2020-07-08 09:38:17 [Main thread] INFO PatientLevelPrediction This can take a while... -2020-07-08 09:40:51 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2020-07-08 09:40:51 -2020-07-08 09:40:51 [Main thread] INFO PatientLevelPrediction Saving PlpResult -2020-07-08 09:40:54 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./hfint2dm07072020Results/optumDod/Analysis_8\plpResult -2020-07-08 09:40:54 [Main thread] INFO PatientLevelPrediction Log saved to ./hfint2dm07072020Results/optumDod/Analysis_8/plplog.txt -2020-07-08 09:40:54 [Main thread] INFO PatientLevelPrediction Run finished successfully. +2021-01-06 09:51:25 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.2.5 +2021-01-06 09:51:25 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_2 +2021-01-06 09:51:25 [Main thread] INFO PatientLevelPrediction CohortID: 19693 +2021-01-06 09:51:25 [Main thread] INFO PatientLevelPrediction OutcomeID: 19692 +2021-01-06 09:51:25 [Main thread] INFO PatientLevelPrediction Cohort size: 141600 +2021-01-06 09:51:25 [Main thread] INFO PatientLevelPrediction Covariates: 105347 +2021-01-06 09:51:25 [Main thread] INFO PatientLevelPrediction Population size: 92272 +2021-01-06 09:51:25 [Main thread] INFO PatientLevelPrediction Cases: 4332 +2021-01-06 09:51:25 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") +2021-01-06 09:51:25 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class +2021-01-06 09:51:25 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 23068 test cases and 69204 train cases (23068, 23068, 23068) +2021-01-06 09:51:26 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model +2021-01-06 09:59:36 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 1 redundant covariates +2021-01-06 09:59:36 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 89264 infrequent covariates +2021-01-06 09:59:36 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates +2021-01-06 10:05:15 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 13.8 mins +2021-01-06 10:05:15 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 10:06:14 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 10:07:01 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops +2021-01-06 10:17:01 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. +2021-01-06 10:17:01 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK +2021-01-06 10:17:01 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 11.8 mins +2021-01-06 10:18:08 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame +2021-01-06 10:18:09 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set +2021-01-06 10:18:09 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 10:19:12 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 10:19:22 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 10.3 secs +2021-01-06 10:19:23 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 10:21:33 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 10:21:59 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 10:22:17 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 10:22:21 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 3.42 secs +2021-01-06 10:22:21 [Main thread] INFO PatientLevelPrediction Train set evaluation +2021-01-06 10:22:21 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 81.76 +2021-01-06 10:22:21 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 24.35 +2021-01-06 10:22:21 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.04 +2021-01-06 10:22:23 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0469 : observed risk 0.0469 +2021-01-06 10:22:24 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: 7e-04 - gradient:1.021 +2021-01-06 10:22:24 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.12 intercept: -0.01 +2021-01-06 10:22:26 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.24 +2021-01-06 10:22:26 [Main thread] INFO PatientLevelPrediction Test set evaluation +2021-01-06 10:22:26 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 80.16 +2021-01-06 10:22:26 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 21.59 +2021-01-06 10:22:26 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.04 +2021-01-06 10:22:27 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0462 : observed risk 0.0469 +2021-01-06 10:22:27 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: 0.0196 - gradient:1.0093 +2021-01-06 10:22:27 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.07 intercept: -0.00 +2021-01-06 10:22:28 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.22 +2021-01-06 10:22:29 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2021-01-06 10:22:29 +2021-01-06 10:22:29 [Main thread] INFO PatientLevelPrediction This can take a while... +2021-01-06 10:31:52 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2021-01-06 10:31:52 +2021-01-06 10:31:52 [Main thread] INFO PatientLevelPrediction Saving PlpResult +2021-01-06 10:31:57 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./results/optumDod/Analysis_2\plpResult +2021-01-06 10:31:57 [Main thread] INFO PatientLevelPrediction Log saved to ./results/optumDod/Analysis_2/plplog.txt +2021-01-06 10:31:57 [Main thread] INFO PatientLevelPrediction Run finished successfully. diff --git a/PredictingHFinT2DM/data/Analysis_8/plpResult.rds b/PredictingHFinT2DM/data/Analysis_8/plpResult.rds index 8b59f1e4..a6f52e7e 100644 Binary files a/PredictingHFinT2DM/data/Analysis_8/plpResult.rds and b/PredictingHFinT2DM/data/Analysis_8/plpResult.rds differ diff --git a/PredictingHFinT2DM/data/Analysis_9/plpLog.txt b/PredictingHFinT2DM/data/Analysis_9/plpLog.txt new file mode 100644 index 00000000..f429f80f --- /dev/null +++ b/PredictingHFinT2DM/data/Analysis_9/plpLog.txt @@ -0,0 +1,57 @@ +2021-01-06 11:00:30 [Main thread] INFO PatientLevelPrediction Patient-Level Prediction Package version 4.2.5 +2021-01-06 11:00:30 [Main thread] INFO PatientLevelPrediction AnalysisID: Analysis_1 +2021-01-06 11:00:30 [Main thread] INFO PatientLevelPrediction CohortID: 19693 +2021-01-06 11:00:30 [Main thread] INFO PatientLevelPrediction OutcomeID: 19692 +2021-01-06 11:00:30 [Main thread] INFO PatientLevelPrediction Cohort size: 213363 +2021-01-06 11:00:30 [Main thread] INFO PatientLevelPrediction Covariates: 3 +2021-01-06 11:00:30 [Main thread] INFO PatientLevelPrediction Population size: 159633 +2021-01-06 11:00:30 [Main thread] INFO PatientLevelPrediction Cases: 3690 +2021-01-06 11:00:30 [Main thread] WARN PatientLevelPrediction personSplitter deprecatedWarning: 'personSplitter' is deprecated. Use 'randomSplitter' instead. See help("Deprecated") +2021-01-06 11:00:30 [Main thread] INFO PatientLevelPrediction randomSplitter Creating a 25% test and 75% train (into 3 folds) random stratified split by class +2021-01-06 11:00:30 [Main thread] INFO PatientLevelPrediction randomSplitter Data split into 39907 test cases and 119726 train cases (39909, 39909, 39908) +2021-01-06 11:00:30 [Main thread] INFO PatientLevelPrediction Training Lasso Logistic Regression model +2021-01-06 11:00:32 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 1 redundant covariates +2021-01-06 11:00:32 [Main thread] INFO FeatureExtraction tidyCovariateData Removing 0 infrequent covariates +2021-01-06 11:00:32 [Main thread] INFO FeatureExtraction tidyCovariateData Normalizing covariates +2021-01-06 11:00:32 [Main thread] INFO FeatureExtraction tidyCovariateData Tidying covariates took 1.86 secs +2021-01-06 11:00:32 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 11:00:34 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 11:00:35 [Main thread] INFO PatientLevelPrediction fitGLMModel Running Cyclops +2021-01-06 11:01:04 [Main thread] INFO PatientLevelPrediction fitGLMModel Done. +2021-01-06 11:01:04 [Main thread] INFO PatientLevelPrediction fitGLMModel GLM fit status: OK +2021-01-06 11:01:04 [Main thread] INFO PatientLevelPrediction fitGLMModel Fitting model took 31.9 secs +2021-01-06 11:01:09 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Creating variable importance data frame +2021-01-06 11:01:09 [Main thread] INFO PatientLevelPrediction fitLassoLogisticRegression Getting predictions on train set +2021-01-06 11:01:09 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 11:01:10 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 11:01:11 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.77 secs +2021-01-06 11:01:12 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 11:01:13 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 11:01:13 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Starting to limit covariate data to population... +2021-01-06 11:01:14 [Main thread] INFO PatientLevelPrediction limitCovariatesToPopulation Finished limiting covariate data to population... +2021-01-06 11:01:14 [Main thread] INFO PatientLevelPrediction predictProbabilities Prediction took 0.36 secs +2021-01-06 11:01:14 [Main thread] INFO PatientLevelPrediction Train set evaluation +2021-01-06 11:01:14 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 71.77 +2021-01-06 11:01:14 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 6.19 +2021-01-06 11:01:14 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 +2021-01-06 11:01:16 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0231 : observed risk 0.0231 +2021-01-06 11:01:18 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: 0 - gradient:1.0001 +2021-01-06 11:01:19 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 1.04 intercept: -0.00 +2021-01-06 11:01:21 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.06 +2021-01-06 11:01:21 [Main thread] INFO PatientLevelPrediction Test set evaluation +2021-01-06 11:01:22 [Main thread] INFO PatientLevelPrediction evaluatePlp AUC: 70.79 +2021-01-06 11:01:22 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% lower AUC: 69.06 +2021-01-06 11:01:22 [Main thread] INFO PatientLevelPrediction evaluatePlp 95% upper AUC: 72.52 +2021-01-06 11:01:22 [Main thread] INFO PatientLevelPrediction evaluatePlp AUPRC: 6.54 +2021-01-06 11:01:22 [Main thread] INFO PatientLevelPrediction evaluatePlp Brier: 0.02 +2021-01-06 11:01:23 [Main thread] INFO PatientLevelPrediction evaluatePlp Calibration in large- Mean predicted risk 0.0231 : observed risk 0.0231 +2021-01-06 11:01:23 [Main thread] INFO PatientLevelPrediction evaluatePlp Weak calibration intercept: 0.0021 - gradient:0.9982 +2021-01-06 11:01:24 [Main thread] INFO PatientLevelPrediction evaluatePlp Hosmer-Lemeshow calibration gradient: 0.98 intercept: 0.00 +2021-01-06 11:01:24 [Main thread] INFO PatientLevelPrediction evaluatePlp Average Precision: 0.07 +2021-01-06 11:01:25 [Main thread] INFO PatientLevelPrediction Calculating covariate summary @ 2021-01-06 11:01:25 +2021-01-06 11:01:25 [Main thread] INFO PatientLevelPrediction This can take a while... +2021-01-06 11:01:28 [Main thread] INFO PatientLevelPrediction Finished covariate summary @ 2021-01-06 11:01:28 +2021-01-06 11:01:28 [Main thread] INFO PatientLevelPrediction Saving PlpResult +2021-01-06 11:01:31 [Main thread] INFO PatientLevelPrediction plpResult saved to ..\./results/panther/Analysis_1\plpResult +2021-01-06 11:01:31 [Main thread] INFO PatientLevelPrediction Log saved to ./results/panther/Analysis_1/plplog.txt +2021-01-06 11:01:31 [Main thread] INFO PatientLevelPrediction Run finished successfully. diff --git a/PredictingHFinT2DM/data/Analysis_9/plpResult.rds b/PredictingHFinT2DM/data/Analysis_9/plpResult.rds new file mode 100644 index 00000000..25b47312 Binary files /dev/null and b/PredictingHFinT2DM/data/Analysis_9/plpResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_1/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_1/validationResult.rds new file mode 100644 index 00000000..04fe0f3e Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_1/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_10/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_10/validationResult.rds new file mode 100644 index 00000000..42978be4 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_10/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_2/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_2/validationResult.rds new file mode 100644 index 00000000..54bc7187 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_2/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_3/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_3/validationResult.rds new file mode 100644 index 00000000..62c055f0 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_3/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_4/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_4/validationResult.rds new file mode 100644 index 00000000..77554443 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_4/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_5/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_5/validationResult.rds new file mode 100644 index 00000000..785be554 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_5/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_6/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_6/validationResult.rds new file mode 100644 index 00000000..4c30b26a Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_6/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_9/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_9/validationResult.rds new file mode 100644 index 00000000..5f1a3459 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum Clinformatics/Analysis_9/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_1/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_1/validationResult.rds new file mode 100644 index 00000000..b868972a Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_1/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_2/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_2/validationResult.rds new file mode 100644 index 00000000..28861396 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_2/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_3/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_3/validationResult.rds new file mode 100644 index 00000000..1bf68c8a Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_3/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_4/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_4/validationResult.rds new file mode 100644 index 00000000..2105abb6 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_4/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_5/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_5/validationResult.rds new file mode 100644 index 00000000..28bca869 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_5/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_6/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_6/validationResult.rds new file mode 100644 index 00000000..b0f6fae8 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_6/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_7/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_7/validationResult.rds new file mode 100644 index 00000000..0530b375 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_7/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_8/validationResult.rds b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_8/validationResult.rds new file mode 100644 index 00000000..03b287f9 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/Optum EHR/Analysis_8/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/ccae/Analysis_10/validationResult.rds b/PredictingHFinT2DM/data/Validation/ccae/Analysis_10/validationResult.rds index 5414a357..62ef62ff 100644 Binary files a/PredictingHFinT2DM/data/Validation/ccae/Analysis_10/validationResult.rds and b/PredictingHFinT2DM/data/Validation/ccae/Analysis_10/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/ccae/Analysis_3/validationResult.rds b/PredictingHFinT2DM/data/Validation/ccae/Analysis_3/validationResult.rds new file mode 100644 index 00000000..560281ad Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/ccae/Analysis_3/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/ccae/Analysis_4/validationResult.rds b/PredictingHFinT2DM/data/Validation/ccae/Analysis_4/validationResult.rds index 07203c5b..b2f34638 100644 Binary files a/PredictingHFinT2DM/data/Validation/ccae/Analysis_4/validationResult.rds and b/PredictingHFinT2DM/data/Validation/ccae/Analysis_4/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/ccae/Analysis_5/validationResult.rds b/PredictingHFinT2DM/data/Validation/ccae/Analysis_5/validationResult.rds new file mode 100644 index 00000000..1987f1ba Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/ccae/Analysis_5/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/ccae/Analysis_6/validationResult.rds b/PredictingHFinT2DM/data/Validation/ccae/Analysis_6/validationResult.rds index 8142676f..59cd543a 100644 Binary files a/PredictingHFinT2DM/data/Validation/ccae/Analysis_6/validationResult.rds and b/PredictingHFinT2DM/data/Validation/ccae/Analysis_6/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/ccae/Analysis_7/validationResult.rds b/PredictingHFinT2DM/data/Validation/ccae/Analysis_7/validationResult.rds new file mode 100644 index 00000000..10a2bf7e Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/ccae/Analysis_7/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/ccae/Analysis_8/validationResult.rds b/PredictingHFinT2DM/data/Validation/ccae/Analysis_8/validationResult.rds index 9558bfd5..4899c389 100644 Binary files a/PredictingHFinT2DM/data/Validation/ccae/Analysis_8/validationResult.rds and b/PredictingHFinT2DM/data/Validation/ccae/Analysis_8/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/ccae/Analysis_9/validationResult.rds b/PredictingHFinT2DM/data/Validation/ccae/Analysis_9/validationResult.rds new file mode 100644 index 00000000..0dbe6886 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/ccae/Analysis_9/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/jmdc/Analysis_2/validationResult.rds b/PredictingHFinT2DM/data/Validation/jmdc/Analysis_2/validationResult.rds deleted file mode 100644 index 8b07fcc6..00000000 Binary files a/PredictingHFinT2DM/data/Validation/jmdc/Analysis_2/validationResult.rds and /dev/null differ diff --git a/PredictingHFinT2DM/data/Validation/jmdc/Analysis_4/validationResult.rds b/PredictingHFinT2DM/data/Validation/jmdc/Analysis_4/validationResult.rds deleted file mode 100644 index acb82281..00000000 Binary files a/PredictingHFinT2DM/data/Validation/jmdc/Analysis_4/validationResult.rds and /dev/null differ diff --git a/PredictingHFinT2DM/data/Validation/jmdc/Analysis_6/validationResult.rds b/PredictingHFinT2DM/data/Validation/jmdc/Analysis_6/validationResult.rds deleted file mode 100644 index abfa7470..00000000 Binary files a/PredictingHFinT2DM/data/Validation/jmdc/Analysis_6/validationResult.rds and /dev/null differ diff --git a/PredictingHFinT2DM/data/Validation/jmdc/Analysis_8/validationResult.rds b/PredictingHFinT2DM/data/Validation/jmdc/Analysis_8/validationResult.rds deleted file mode 100644 index 235aba0c..00000000 Binary files a/PredictingHFinT2DM/data/Validation/jmdc/Analysis_8/validationResult.rds and /dev/null differ diff --git a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_1/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_1/validationResult.rds new file mode 100644 index 00000000..540c8bda Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_1/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_10/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_10/validationResult.rds index 89715c19..65582056 100644 Binary files a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_10/validationResult.rds and b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_10/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_2/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_2/validationResult.rds index 2e049cba..7b03ed06 100644 Binary files a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_2/validationResult.rds and b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_2/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_4/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_4/validationResult.rds deleted file mode 100644 index c2440fb6..00000000 Binary files a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_4/validationResult.rds and /dev/null differ diff --git a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_5/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_5/validationResult.rds new file mode 100644 index 00000000..a046b235 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_5/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_6/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_6/validationResult.rds new file mode 100644 index 00000000..aedaceec Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_6/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_7/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_7/validationResult.rds new file mode 100644 index 00000000..90b6427e Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_7/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_8/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_8/validationResult.rds index 757d274f..e090035a 100644 Binary files a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_8/validationResult.rds and b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_8/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcd/Analysis_9/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_9/validationResult.rds new file mode 100644 index 00000000..c308d8f4 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/mdcd/Analysis_9/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_1/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_1/validationResult.rds new file mode 100644 index 00000000..a8e36829 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_1/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_10/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_10/validationResult.rds index ca77b342..3b73df61 100644 Binary files a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_10/validationResult.rds and b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_10/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_2/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_2/validationResult.rds index 696c4b70..479ed909 100644 Binary files a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_2/validationResult.rds and b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_2/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_3/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_3/validationResult.rds new file mode 100644 index 00000000..519607e6 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_3/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_4/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_4/validationResult.rds new file mode 100644 index 00000000..e0a3e258 Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_4/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_6/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_6/validationResult.rds deleted file mode 100644 index fd75d4a0..00000000 Binary files a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_6/validationResult.rds and /dev/null differ diff --git a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_7/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_7/validationResult.rds new file mode 100644 index 00000000..a9a0219b Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_7/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_8/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_8/validationResult.rds index a09471e6..8b8b801d 100644 Binary files a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_8/validationResult.rds and b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_8/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/mdcr/Analysis_9/validationResult.rds b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_9/validationResult.rds new file mode 100644 index 00000000..bba0818e Binary files /dev/null and b/PredictingHFinT2DM/data/Validation/mdcr/Analysis_9/validationResult.rds differ diff --git a/PredictingHFinT2DM/data/Validation/optumDod/Analysis_10/validationResult.rds b/PredictingHFinT2DM/data/Validation/optumDod/Analysis_10/validationResult.rds deleted file mode 100644 index 46dc0ea8..00000000 Binary files a/PredictingHFinT2DM/data/Validation/optumDod/Analysis_10/validationResult.rds and /dev/null differ diff --git a/PredictingHFinT2DM/data/Validation/optumDod/Analysis_2/validationResult.rds b/PredictingHFinT2DM/data/Validation/optumDod/Analysis_2/validationResult.rds deleted file mode 100644 index 324f1712..00000000 Binary files a/PredictingHFinT2DM/data/Validation/optumDod/Analysis_2/validationResult.rds and /dev/null differ diff --git a/PredictingHFinT2DM/data/Validation/optumDod/Analysis_4/validationResult.rds b/PredictingHFinT2DM/data/Validation/optumDod/Analysis_4/validationResult.rds deleted file mode 100644 index e845f7f1..00000000 Binary files a/PredictingHFinT2DM/data/Validation/optumDod/Analysis_4/validationResult.rds and /dev/null differ diff --git a/PredictingHFinT2DM/data/Validation/optumDod/Analysis_6/validationResult.rds b/PredictingHFinT2DM/data/Validation/optumDod/Analysis_6/validationResult.rds deleted file mode 100644 index b03222f9..00000000 Binary files a/PredictingHFinT2DM/data/Validation/optumDod/Analysis_6/validationResult.rds and /dev/null differ diff --git a/PredictingHFinT2DM/data/settings.csv b/PredictingHFinT2DM/data/settings.csv index 9dbd6d20..ca7cab5f 100644 --- a/PredictingHFinT2DM/data/settings.csv +++ b/PredictingHFinT2DM/data/settings.csv @@ -1,11 +1,11 @@ -"outcomeId","cohortId","modelSettingsId","analysisId","devDatabase","populationSettingId","modelSettingId","covariateSettingId","modelSettingName","addExposureDaysToStart","riskWindowStart","addExposureDaysToEnd","riskWindowEnd","plpDataFolder","studyPopFile","plpResultFolder","cohortName","outcomeName" -11696,13897,1,2,"ccae",1,1,1,"Lasso Logistic Regression",0,1,0,365,"./hfint2dm07072020Results/ccae/PlpData_L1_T13897","./hfint2dm07072020Results/ccae/StudyPop_L1_T13897_O11696_P1.rds","./hfint2dm07072020Results/ccae/Analysis_2","[RW] type 2 diabetes revised by PBR","[RW] Heart Failure ipci - first" -13389,13897,1,1,"ccae",1,1,1,"Lasso Logistic Regression",0,1,0,365,"./hfint2dm07072020Results/ccae/PlpData_L1_T13897","./hfint2dm07072020Results/ccae/StudyPop_L1_T13897_O13389_P1.rds","./hfint2dm07072020Results/ccae/Analysis_1","[RW] type 2 diabetes revised by PBR","[RW] Heart Failure - first" -11696,13897,1,4,"mdcr",1,1,1,"Lasso Logistic Regression",0,1,0,365,"./hfint2dm07072020Results/mdcr/PlpData_L1_T13897","./hfint2dm07072020Results/mdcr/StudyPop_L1_T13897_O11696_P1.rds","./hfint2dm07072020Results/mdcr/Analysis_4","[RW] type 2 diabetes revised by PBR","[RW] Heart Failure ipci - first" -13389,13897,1,3,"mdcr",1,1,1,"Lasso Logistic Regression",0,1,0,365,"./hfint2dm07072020Results/mdcr/PlpData_L1_T13897","./hfint2dm07072020Results/mdcr/StudyPop_L1_T13897_O13389_P1.rds","./hfint2dm07072020Results/mdcr/Analysis_3","[RW] type 2 diabetes revised by PBR","[RW] Heart Failure - first" -11696,13897,1,6,"mdcd",1,1,1,"Lasso Logistic Regression",0,1,0,365,"./hfint2dm07072020Results/mdcd/PlpData_L1_T13897","./hfint2dm07072020Results/mdcd/StudyPop_L1_T13897_O11696_P1.rds","./hfint2dm07072020Results/mdcd/Analysis_6","[RW] type 2 diabetes revised by PBR","[RW] Heart Failure ipci - first" -13389,13897,1,5,"mdcd",1,1,1,"Lasso Logistic Regression",0,1,0,365,"./hfint2dm07072020Results/mdcd/PlpData_L1_T13897","./hfint2dm07072020Results/mdcd/StudyPop_L1_T13897_O13389_P1.rds","./hfint2dm07072020Results/mdcd/Analysis_5","[RW] type 2 diabetes revised by PBR","[RW] Heart Failure - first" -11696,13897,1,8,"optumDod",1,1,1,"Lasso Logistic Regression",0,1,0,365,"./hfint2dm07072020Results/optumDod/PlpData_L1_T13897","./hfint2dm07072020Results/optumDod/StudyPop_L1_T13897_O11696_P1.rds","./hfint2dm07072020Results/optumDod/Analysis_8","[RW] type 2 diabetes revised by PBR","[RW] Heart Failure ipci - first" -13389,13897,1,7,"optumDod",1,1,1,"Lasso Logistic Regression",0,1,0,365,"./hfint2dm07072020Results/optumDod/PlpData_L1_T13897","./hfint2dm07072020Results/optumDod/StudyPop_L1_T13897_O13389_P1.rds","./hfint2dm07072020Results/optumDod/Analysis_7","[RW] type 2 diabetes revised by PBR","[RW] Heart Failure - first" -11696,13897,1,10,"jmdc",1,1,1,"Lasso Logistic Regression",0,1,0,365,"./hfint2dm07072020Results/jmdc/PlpData_L1_T13897","./hfint2dm07072020Results/jmdc/StudyPop_L1_T13897_O11696_P1.rds","./hfint2dm07072020Results/jmdc/Analysis_10","[RW] type 2 diabetes revised by PBR","[RW] Heart Failure ipci - first" -13389,13897,1,9,"jmdc",1,1,1,"Lasso Logistic Regression",0,1,0,365,"./hfint2dm07072020Results/jmdc/PlpData_L1_T13897","./hfint2dm07072020Results/jmdc/StudyPop_L1_T13897_O13389_P1.rds","./hfint2dm07072020Results/jmdc/Analysis_9","[RW] type 2 diabetes revised by PBR","[RW] Heart Failure - first" +outcomeId,cohortId,modelSettingsId,analysisId,devDatabase,populationSettingId,modelSettingId,covariateSettingId,modelSettingName,addExposureDaysToStart,riskWindowStart,addExposureDaysToEnd,riskWindowEnd,plpDataFolder,studyPopFile,plpResultFolder,cohortName,outcomeName +19692,19693,1,1,ccae,1,1,1,Lasso Logistic Regression - AgeSex,0,0,0,365,./results/ccae/PlpData_L1_T19693,./results/ccae/StudyPop_L1_T19693_O19692_P1.rds,./results/ccae/Analysis_1,"[RW] t2dm second line, KV","[RW] Heart Failure - revised, no hosp" +19692,19693,2,2,ccae,1,1,2,Lasso Logistic Regression,0,0,0,365,./results/ccae/PlpData_L2_T19693,./results/ccae/StudyPop_L2_T19693_O19692_P1.rds,./results/ccae/Analysis_2,"[RW] t2dm second line, KV","[RW] Heart Failure - revised, no hosp" +19692,19693,1,3,mdcd,1,1,1,Lasso Logistic Regression - AgeSex,0,0,0,365,./results/mdcd/PlpData_L1_T19693,./results/mdcd/StudyPop_L1_T19693_O19692_P1.rds,./results/mdcd/Analysis_1,"[RW] t2dm second line, KV","[RW] Heart Failure - revised, no hosp" +19692,19693,2,4,mdcd,1,1,2,Lasso Logistic Regression,0,0,0,365,./results/mdcd/PlpData_L2_T19693,./results/mdcd/StudyPop_L2_T19693_O19692_P1.rds,./results/mdcd/Analysis_2,"[RW] t2dm second line, KV","[RW] Heart Failure - revised, no hosp" +19692,19693,1,5,mdcr,1,1,1,Lasso Logistic Regression - AgeSex,0,0,0,365,./results/mdcr/PlpData_L1_T19693,./results/mdcr/StudyPop_L1_T19693_O19692_P1.rds,./results/mdcr/Analysis_1,"[RW] t2dm second line, KV","[RW] Heart Failure - revised, no hosp" +19692,19693,2,6,mdcr,1,1,2,Lasso Logistic Regression,0,0,0,365,./results/mdcr/PlpData_L2_T19693,./results/mdcr/StudyPop_L2_T19693_O19692_P1.rds,./results/mdcr/Analysis_2,"[RW] t2dm second line, KV","[RW] Heart Failure - revised, no hosp" +19692,19693,1,7,Optum Clinformatics,1,1,1,Lasso Logistic Regression - AgeSex,0,0,0,365,./results/optumDod/PlpData_L1_T19693,./results/optumDod/StudyPop_L1_T19693_O19692_P1.rds,./results/optumDod/Analysis_1,"[RW] t2dm second line, KV","[RW] Heart Failure - revised, no hosp" +19692,19693,2,8,Optum Clinformatics,1,1,2,Lasso Logistic Regression,0,0,0,365,./results/optumDod/PlpData_L2_T19693,./results/optumDod/StudyPop_L2_T19693_O19692_P1.rds,./results/optumDod/Analysis_2,"[RW] t2dm second line, KV","[RW] Heart Failure - revised, no hosp" +19692,19693,1,9,Optum EHR,1,1,1,Lasso Logistic Regression - AgeSex,0,0,0,365,./results/panther/PlpData_L1_T19693,./results/panther/StudyPop_L1_T19693_O19692_P1.rds,./results/panther/Analysis_1,"[RW] t2dm second line, KV","[RW] Heart Failure - revised, no hosp" +19692,19693,2,10,Optum EHR,1,1,2,Lasso Logistic Regression,0,0,0,365,./results/panther/PlpData_L2_T19693,./results/panther/StudyPop_L2_T19693_O19692_P1.rds,./results/panther/Analysis_2,"[RW] t2dm second line, KV","[RW] Heart Failure - revised, no hosp" diff --git a/PredictingHFinT2DM/global.R b/PredictingHFinT2DM/global.R index d407ea0e..9f989b22 100644 --- a/PredictingHFinT2DM/global.R +++ b/PredictingHFinT2DM/global.R @@ -28,5 +28,12 @@ if(inputType == 'file' & !is.null(validation)){ summaryTable <- getSummary(result, inputType, validation) +myResultList <- lapply(1:nrow(summaryTable), function(i){paste( 'Dev:', as.character(summaryTable$Dev[i]), + '- Val:',as.character(summaryTable$Val[i]), + '-T:', as.character(summaryTable$T[i]), + '- O:',as.character(summaryTable$O[i]), + '- TAR:', as.character(summaryTable$TAR[i]), + '- Model:', as.character(summaryTable$Model[i]), + 'Predictor:', as.character(summaryTable$covariateSettingId[i]))}) diff --git a/PredictingHFinT2DM/helpers.R b/PredictingHFinT2DM/helpers.R index 8b017ac5..431aa271 100644 --- a/PredictingHFinT2DM/helpers.R +++ b/PredictingHFinT2DM/helpers.R @@ -16,20 +16,18 @@ getFilter <- function(summaryTable,input){ if(input$modelSettingName!='All'){ ind <- intersect(ind,which(as.character(summaryTable$Model)==input$modelSettingName)) } - if(input$riskWindowStart!='All'){ - ind <- intersect(ind,which(summaryTable$`TAR start`==input$riskWindowStart)) - } - if(input$riskWindowEnd!='All'){ - ind <- intersect(ind,which(summaryTable$`TAR end`==input$riskWindowEnd)) + if(input$TAR!='All'){ + ind <- intersect(ind,which(as.character(summaryTable$TAR)==input$TAR)) } + return(ind) } -getPlpResult <- function(result,validation,summaryTable, inputType,filterIndex, selectedRow){ +getPlpResult <- function(result,validation,summaryTable, inputType,trueRow){ if(inputType == 'plpResult'){ - i <- filterIndex[selectedRow] + i <- trueRow if(i ==1){ tempResult <- result tempResult$type <- 'test' @@ -44,8 +42,8 @@ getPlpResult <- function(result,validation,summaryTable, inputType,filterIndex, tempResult$log <- 'log not available' }else if( inputType == 'file') { tempResult <- NULL - loc <- summaryTable[filterIndex,][selectedRow,]$plpResultLocation - locLoaderFunc <- summaryTable[filterIndex,][selectedRow,]$plpResultLoad + loc <- summaryTable[trueRow,]$plpResultLocation + locLoaderFunc <- summaryTable[trueRow,]$plpResultLoad logLocation <- gsub('plpResult','plpLog.txt', gsub('validationResult.rds','plpLog.txt',gsub('plpResult.rds','plpLog.txt', as.character(loc)))) if(file.exists(logLocation)){ txt <- readLines(logLocation) @@ -69,7 +67,7 @@ getPlpResult <- function(result,validation,summaryTable, inputType,filterIndex, formatModSettings <- function(modelSettings){ modelset <- data.frame(Setting = c('Model',names(modelSettings[[2]])), Value = c(modelSettings[[1]], unlist(lapply(modelSettings[[2]], - function(x) paste0(x, collapse=''))))) + function(x) paste0(x, collapse=','))))) row.names(modelset) <- NULL return(modelset) } @@ -122,29 +120,19 @@ formatPopSettings <- function(populationSettings){ # format covariate summary table formatCovariateTable <- function(covariateSummary){ + covariateSummary <- as.data.frame(covariateSummary) for(coln in c('covariateValue','CovariateMeanWithOutcome','CovariateMeanWithNoOutcome','StandardizedMeanDiff')){ if(sum(colnames(covariateSummary)==coln)>0){ covariateSummary[,coln] <- format(round(covariateSummary[,coln], 4), nsmall = 4) class(covariateSummary[,coln]) <- "numeric" } } - - # edit the simple model names: - covariateSummary$covariateName <- gsub('\\[COVID v1\\] Persons with ', '', covariateSummary$covariateName) - covariateSummary$covariateName <- gsub('\\[Covid v1\\] Persons with ', '', covariateSummary$covariateName) - covariateSummary$covariateName <- gsub('\\[covid v1\\] Persons with ', '', covariateSummary$covariateName) - - return(covariateSummary) } editCovariates <- function(covs){ - - # remove Custom ATLAS variable during day -9999 through -1 days relative to index: - covs$covariateName <- gsub('Custom ATLAS variable during day -9999 through -1 days relative to index: ','History of ', covs$covariateName) - if(!is.null(covs$StandardizedMeanDiff)){ return(list(table = formatCovariateTable(covs[,c('covariateName','covariateValue','CovariateCount','CovariateMeanWithOutcome','CovariateMeanWithNoOutcome','StandardizedMeanDiff')]), colnames = c('Covariate Name', 'Value','Count', 'Outcome Mean', 'Non-outcome Mean','Std Mean Diff') @@ -155,66 +143,4 @@ editCovariates <- function(covs){ )) } } - -ageCalc <- function(age, model){ - - if(model == 'Hospitalization'){ - if(age < 20) { value = -7} - if(dplyr::between(age,20, 24)){ value = -4} - if(dplyr::between(age,25, 29)){ value = -2} - if(dplyr::between(age,30, 34)){ value = -2} - if(dplyr::between(age,35, 39)){ value = 0} - if(dplyr::between(age,40, 44)){ value = 3} - if(dplyr::between(age,45, 49)){ value = 6} - if(dplyr::between(age,50, 54)){ value = 9} - if(dplyr::between(age,55, 59)){ value = 13} - if(dplyr::between(age,60, 64)){ value = 15} - if(dplyr::between(age,65, 69)){ value = 19} - if(dplyr::between(age,70, 74)){ value = 20} - if(dplyr::between(age,75, 79)){ value = 23} - if(dplyr::between(age,80, 84)){ value = 24} - if(dplyr::between(age,85, 89)){ value = 27} - if(dplyr::between(age,90, 94)){ value = 25} - return(value) - } - if(model == 'Intensive Care'){ - if(age < 20) { value = -10} - if(dplyr::between(age,20, 24)){ value = -2} - if(dplyr::between(age,25, 29)){ value = -1} - if(dplyr::between(age,30, 34)){ value = 0} - if(dplyr::between(age,35, 39)){ value = 0} - if(dplyr::between(age,40, 44)){ value = 3} - if(dplyr::between(age,45, 49)){ value = 5} - if(dplyr::between(age,50, 54)){ value = 10} - if(dplyr::between(age,55, 59)){ value = 12} - if(dplyr::between(age,60, 64)){ value = 16} - if(dplyr::between(age,65, 69)){ value = 22} - if(dplyr::between(age,70, 74)){ value = 21} - if(dplyr::between(age,75, 79)){ value = 22} - if(dplyr::between(age,80, 84)){ value = 21} - if(dplyr::between(age,85, 89)){ value = 25} - if(dplyr::between(age,90, 94)){ value = 21} - return(value) - } - - if(model == 'Death'){ - if(age < 20) { value = -15} - if(dplyr::between(age,20, 24)){ value = -8} - if(dplyr::between(age,25, 29)){ value = -20} - if(dplyr::between(age,30, 34)){ value = -5} - if(dplyr::between(age,35, 39)){ value = 0} - if(dplyr::between(age,40, 44)){ value = -6} - if(dplyr::between(age,45, 49)){ value = 1} - if(dplyr::between(age,50, 54)){ value = 15} - if(dplyr::between(age,55, 59)){ value = 12} - if(dplyr::between(age,60, 64)){ value = 16} - if(dplyr::between(age,65, 69)){ value = 27} - if(dplyr::between(age,70, 74)){ value = 31} - if(dplyr::between(age,75, 79)){ value = 35} - if(dplyr::between(age,80, 84)){ value = 40} - if(dplyr::between(age,85, 89)){ value = 45} - if(dplyr::between(age,90, 94)){ value = 30} - return(value) - } -} diff --git a/PredictingHFinT2DM/plots.R b/PredictingHFinT2DM/plots.R index cd791438..4ef6fc68 100644 --- a/PredictingHFinT2DM/plots.R +++ b/PredictingHFinT2DM/plots.R @@ -159,11 +159,13 @@ plotCovariateSummary <- function(covariateSummary){ # adding plots from PLP temporarily as shiny deploy doesnt have PatientLevelPrediction -plotPredictedPDF <- function(evaluation, type='test', fileName=NULL){ - if(is.null(evaluation$thresholdSummary$Eval)){ - evaluation$thresholdSummary$Eval <- type +plotPredictedPDF <- function(evaluation, fileName=NULL){ + + ind <- 1:nrow(evaluation$thresholdSummary) + if(!is.null(evaluation$thresholdSummary$Eval)){ + ind <- evaluation$thresholdSummary$Eval%in%c('test','validation') } - ind <- evaluation$thresholdSummary$Eval==type + x<- evaluation$thresholdSummary[ind,c('predictionThreshold','truePositiveCount','trueNegativeCount', 'falsePositiveCount','falseNegativeCount')] @@ -209,11 +211,12 @@ plotPredictedPDF <- function(evaluation, type='test', fileName=NULL){ -plotPreferencePDF <- function(evaluation, type='test', fileName=NULL){ - if(is.null(evaluation$thresholdSummary$Eval)){ - evaluation$thresholdSummary$Eval <- type +plotPreferencePDF <- function(evaluation, fileName=NULL){ + + ind <- 1:nrow(evaluation$thresholdSummary) + if(!is.null(evaluation$thresholdSummary$Eval)){ + ind <- evaluation$thresholdSummary$Eval%in%c('test','validation') } - ind <- evaluation$thresholdSummary$Eval==type x<- evaluation$thresholdSummary[ind,c('preferenceThreshold','truePositiveCount','trueNegativeCount', 'falsePositiveCount','falseNegativeCount')] @@ -257,12 +260,14 @@ plotPreferencePDF <- function(evaluation, type='test', fileName=NULL){ } -plotDemographicSummary <- function(evaluation, type='test', fileName=NULL){ +plotDemographicSummary <- function(evaluation, fileName=NULL){ if (!all(is.na(evaluation$demographicSummary$averagePredictedProbability))){ - if(is.null(evaluation$demographicSummary$Eval)){ - evaluation$demographicSummary$Eval <- type + + ind <- 1:nrow(evaluation$demographicSummary) + if(!is.null(evaluation$demographicSummary$Eval)){ + ind <- evaluation$demographicSummary$Eval%in%c('test','validation') } - ind <- evaluation$demographicSummary$Eval==type + x<- evaluation$demographicSummary[ind,colnames(evaluation$demographicSummary)%in%c('ageGroup','genGroup','averagePredictedProbability', 'PersonCountAtRisk', 'PersonCountWithOutcome')] @@ -341,49 +346,105 @@ plotDemographicSummary <- function(evaluation, type='test', fileName=NULL){ -plotSparseCalibration2 <- function(evaluation, type='test', fileName=NULL){ - if(is.null(evaluation$calibrationSummary$Eval)){ - evaluation$calibrationSummary$Eval <- type +plotSparseCalibration2 <- function(evaluation, + smooth = "loess", + span = 1, + nKnots = 5, + scatter = T, + bins = 20, + zoom = "data", + sample = T, + fileName = NULL) { + + ind <- 1:nrow(evaluation$calibrationSummary) + if(!is.null(evaluation$calibrationSummary$Eval)){ + ind <- evaluation$calibrationSummary$Eval%in%c('test','validation') + } + # use calibrationSummary + sparsePred <- evaluation$calibrationSummary[ind,] + + limVal <- max(max(sparsePred$averagePredictedProbability),max(sparsePred$observedIncidence)) + + smooth_plot <- ggplot2::ggplot(data = sparsePred, ggplot2::aes(x = averagePredictedProbability, + y = observedIncidence)) + + ggplot2::stat_smooth(ggplot2::aes(color = "Loess", linetype = "Loess"), + method = "loess", + se = TRUE, + #span = span, + size = 1, + show.legend = F) + + ggplot2::geom_segment(ggplot2::aes(x = 0, + xend = 1, + y = 0, + yend = 1, + color = "Ideal", + linetype = "Ideal")) + + ggplot2::coord_cartesian(xlim = c(0,limVal), + ylim = c(0,limVal)) + + ggplot2::scale_linetype_manual(name = "Models", + values = c(Loess = "solid", + Ideal = "dashed")) + + ggplot2::scale_color_manual(name = "Models", values = c(Loess = "blue", Ideal = "red")) + + ggplot2::labs(x = "Predicted Probability", y = "Observed Probability") + + # construct the plot grid + if (scatter) { + smooth_plot <- smooth_plot + ggplot2::geom_point(data = sparsePred, + ggplot2::aes(x = averagePredictedProbability, + y = observedIncidence), + color = "black", + size = 2) } - ind <- evaluation$calibrationSummary$Eval==type - - x<- evaluation$calibrationSummary[ind,c('averagePredictedProbability','observedIncidence', 'PersonCountAtRisk')] - - - cis <- apply(x, 1, function(x) binom.test(x[2]*x[3], x[3], alternative = c("two.sided"), conf.level = 0.95)$conf.int) - x$lci <- cis[1,] - x$uci <- cis[2,] - - maxes <- max(max(x$averagePredictedProbability), max(x$observedIncidence))*1.1 - - # limits <- ggplot2::aes(ymax = x$uci, ymin= x$lci) - limits <- ggplot2::aes(ymax = uci, ymin= lci) - - plot <- ggplot2::ggplot(data=x, - ggplot2::aes(x=averagePredictedProbability, y=observedIncidence - )) + - ggplot2::geom_point(size=2, color='black') + - ggplot2::geom_errorbar(limits) + - #ggplot2::geom_smooth(method=lm, se=F, colour='darkgrey') + - ggplot2::geom_line(colour='darkgrey') + - ggplot2::geom_abline(intercept = 0, slope = 1, linetype = 5, size=0.4, - show.legend = TRUE) + - ggplot2::scale_x_continuous("Average Predicted Probability") + - ggplot2::scale_y_continuous("Observed Fraction With Outcome") + - ggplot2::coord_cartesian(xlim = c(0, maxes), ylim=c(0,maxes)) + # Histogram object detailing the distibution of event/noevent for each probability interval + + popData1 <- sparsePred[,c('averagePredictedProbability', 'PersonCountWithOutcome')] + popData1$Label <- "Outcome" + colnames(popData1) <- c('averagePredictedProbability','PersonCount',"Label") + popData2 <- sparsePred[,c('averagePredictedProbability', 'PersonCountAtRisk')] + popData2$Label <- "No Outcome" + popData2$PersonCountAtRisk <- -1*(popData2$PersonCountAtRisk -popData1$PersonCount) + colnames(popData2) <- c('averagePredictedProbability','PersonCount',"Label") + popData <- rbind(popData1, popData2) + popData$averagePredictedProbability <- factor(popData$averagePredictedProbability) + hist_plot <- ggplot2::ggplot(popData, ggplot2::aes(y = averagePredictedProbability, x = PersonCount, + fill = Label)) + + ggplot2::geom_bar(data = subset(popData,Label == "Outcome"), stat = "identity") + + ggplot2::geom_bar(data = subset(popData,Label == "No Outcome"), stat = "identity") + + ggplot2::geom_bar(stat = "identity") + + ggplot2::scale_x_continuous(labels = abs) + + #ggplot2::scale_fill_brewer(palette = "Set1") + + ggplot2::coord_flip( ) + + ggplot2::theme_bw() + + ggplot2::theme(axis.title.x=ggplot2::element_blank(), + axis.text.x=ggplot2::element_blank(), + axis.ticks.x=ggplot2::element_blank()) + + # testting whether this is installed in shinydeploy + #plot <- gridExtra::grid.arrange(smooth_plot, + # hist_plot, + # ncol = 1, + # heights=c(2,1)) + + plot <- cowplot::plot_grid(smooth_plot, + hist_plot, + ncol = 1, + axis = "lr", + align = "v", + rel_heights = c(1, 0.6)) if (!is.null(fileName)) - ggplot2::ggsave(fileName, plot, width = 5, height = 3.5, dpi = 400) + ggplot2::ggsave(fileName, plot, width = 5, height = 4.5, dpi = 400) return(plot) } -plotPredictionDistribution <- function(evaluation, type='test', fileName=NULL){ - if(is.null(evaluation$predictionDistribution$Eval)){ - evaluation$predictionDistribution$Eval <- type +plotPredictionDistribution <- function(evaluation, fileName=NULL){ + + ind <- 1:nrow(evaluation$predictionDistribution) + if(!is.null(evaluation$predictionDistribution$Eval)){ + ind <- evaluation$predictionDistribution$Eval%in%c('test','validation') } - ind <- evaluation$predictionDistribution$Eval==type x<- evaluation$predictionDistribution[ind,] #(x=Class, y=predictedProbabllity sequence: min->P05->P25->Median->P75->P95->max) diff --git a/PredictingHFinT2DM/processing.R b/PredictingHFinT2DM/processing.R index 4b5a29a8..1937e060 100644 --- a/PredictingHFinT2DM/processing.R +++ b/PredictingHFinT2DM/processing.R @@ -30,9 +30,9 @@ getSummary <- function(result,inputType,validation){ #sumTab <- sumTab[,c('analysisId','devDatabase','valDatabase','cohortName','outcomeName','modelSettingName','riskWindowStart', 'riskWindowEnd', 'AUC','AUPRC', 'populationSize','outcomeCount','incidence', # 'addExposureDaysToStart','addExposureDaysToEnd','plpResultLocation', 'plpResultLoad')] #colnames(sumTab) <- c('Analysis','Dev', 'Val', 'T', 'O','Model', 'TAR start', 'TAR end', 'AUC','AUPRC', 'T Size','O Count','O Incidence (%)', 'addExposureDaysToStart','addExposureDaysToEnd', 'plpResultLocation', 'plpResultLoad') - sumTab <- sumTab[,c('devDatabase','valDatabase','cohortName','outcomeName','modelSettingName','riskWindowStart', 'riskWindowEnd', 'AUC','AUPRC', 'populationSize','outcomeCount','incidence', - 'addExposureDaysToStart','addExposureDaysToEnd','plpResultLocation', 'plpResultLoad')] - colnames(sumTab) <- c('Dev', 'Val', 'T', 'O','Model', 'TAR start', 'TAR end', 'AUC','AUPRC', 'T Size','O Count','O Incidence (%)', 'addExposureDaysToStart','addExposureDaysToEnd', 'plpResultLocation', 'plpResultLoad') + sumTab <- sumTab[,c('analysisId','devDatabase','valDatabase','cohortName','outcomeName','modelSettingName','covariateSettingId','TAR', 'AUC','AUPRC', 'populationSize','outcomeCount','incidence', + 'plpResultLocation', 'plpResultLoad')] + colnames(sumTab) <- c('Analysis','Dev', 'Val', 'T', 'O','Model','covariateSettingId', 'TAR', 'AUC','AUPRC', 'T Size','O Count','O Incidence (%)', 'plpResultLocation', 'plpResultLoad') return(sumTab) } @@ -40,6 +40,7 @@ getSummary <- function(result,inputType,validation){ getSummaryFromObject <- function(result,validation=NULL){ + TAR <- getTAR(result$model$populationSettings) eval <- as.data.frame(result$performanceEvaluation$evaluationStatistics) eval <- eval[eval$Eval %in% c('test',"validation"),] allRes <- data.frame(analysisId = 1, @@ -48,21 +49,20 @@ getSummaryFromObject <- function(result,validation=NULL){ cohortName = 'T', outcomeName = 'O', modelSettingName = result$model$modelSettings$model, - riskWindowStart = ifelse(is.null(result$model$populationSettings$riskWindowStart), 'Missing',result$model$populationSettings$riskWindowStart), - riskWindowEnd = ifelse(is.null(result$model$populationSettings$riskWindowEnd), 'Missing',result$model$populationSettings$riskWindowEnd), + covariateSettingId = 1, + TAR = TAR, AUC = as.double(as.character(eval$Value[eval$Metric=='AUC.auc'])), AUPRC = as.double(as.character(eval$Value[eval$Metric=='AUPRC'])), populationSize = as.double(as.character(eval$Value[eval$Metric=='populationSize'])), outcomeCount = as.double(as.character(eval$Value[eval$Metric=='outcomeCount'])), incidence = as.double(as.character(eval$Value[eval$Metric=='outcomeCount']))/as.double(as.character(eval$Value[eval$Metric=='populationSize'])), - addExposureDaysToStart = ifelse(is.null(result$model$populationSettings$addExposureDaysToStart),'Missing',result$model$populationSettings$addExposureDaysToStart), - addExposureDaysToEnd = ifelse(is.null(result$model$populationSettings$addExposureDaysToEnd), 'Missing', result$model$populationSettings$addExposureDaysToEnd), plpResultLocation = 'NULL', plpResultLoad = 'NULL' ) if(!is.null(validation)){ for(i in 1:length(validation$validation)){ + TAR <- getTAR(validation$validation[[i]]$model$populationSettings) eval <- as.data.frame(validation$validation[[i]]$performanceEvaluation$evaluationStatistics) tempRes <-data.frame(analysisId = 1+i, devDatabase = result$inputSetting$dataExtrractionSettings$cdmDatabaseSchema, @@ -70,15 +70,13 @@ getSummaryFromObject <- function(result,validation=NULL){ cohortName = 'T', outcomeName = 'O', modelSettingName = result$model$modelSettings$model, - riskWindowStart = result$model$populationSettings$riskWindowStart, - riskWindowEnd = result$model$populationSettings$riskWindowEnd, + covariateSettingId =1, + TAR = TAR, AUC = as.double(as.character(eval$Value[eval$Metric=='AUC.auc'])), AUPRC = as.double(as.character(eval$Value[eval$Metric=='AUPRC'])), populationSize = as.double(as.character(eval$Value[eval$Metric=='populationSize'])), outcomeCount = as.double(as.character(eval$Value[eval$Metric=='outcomeCount'])), incidence = as.double(as.character(eval$Value[eval$Metric=='outcomeCount']))/as.double(as.character(eval$Value[eval$Metric=='populationSize'])), - addExposureDaysToStart = result$model$populationSettings$addExposureDaysToStart, - addExposureDaysToEnd = result$model$populationSettings$addExposureDaysToEnd, plpResultLocation = 'NULL', plpResultLoad = 'NULL' ) @@ -97,6 +95,7 @@ summaryPlpAnalyses <- function(analysesLocation){ #======================================== settings <- read.csv(file.path(analysesLocation,'settings.csv')) settings <- settings[,!colnames(settings)%in%c('plpDataFolder','studyPopFile','plpResultFolder')] + settings$analysisId <- gsub('Analysis_','', settings$analysisId) # fixing if Analysis_id in settings settings$analysisId <- paste0('Analysis_', settings$analysisId) analysisIds <- dir(file.path(analysesLocation), recursive = F, full.names = T) @@ -104,12 +103,13 @@ summaryPlpAnalyses <- function(analysesLocation){ if(is.null(settings$devDatabase)){ settings$devDatabase <- 'Missing' } - settings$valDatabase <- settings$devDatabase + if(is.null(settings$valDatabase)){ + settings$valDatabase <- settings$devDatabase + } devPerformance <- do.call(rbind,lapply(file.path(analysisIds), getPerformance)) - devPerformance <- merge(settings[,c('analysisId','modelSettingsId', 'cohortName', 'outcomeName', - 'populationSettingId','modelSettingName','addExposureDaysToStart', - 'riskWindowStart', 'addExposureDaysToEnd', - 'riskWindowEnd','devDatabase','valDatabase')], + # updated this for TAR + devPerformance <- merge(settings[,c('analysisId','modelSettingsId','covariateSettingId', 'cohortName', 'outcomeName', + 'populationSettingId','modelSettingName','devDatabase','valDatabase')], devPerformance, by='analysisId', all.x=T) validationLocation <- file.path(analysesLocation,'Validation') @@ -124,11 +124,8 @@ summaryPlpAnalyses <- function(analysesLocation){ valAnalyses <- dir(valDatabase, recursive = F, full.names = T) valAnalyses <- valAnalyses[grep('Analysis_', valAnalyses)] valPerformance <- do.call(rbind,lapply(file.path(valAnalyses), function(x) getValidationPerformance(x))) - valSettings <- settings[,c('analysisId','modelSettingsId', 'cohortName', 'outcomeName', - 'populationSettingId','modelSettingName','addExposureDaysToStart', - 'riskWindowStart', 'addExposureDaysToEnd', - 'riskWindowEnd','devDatabase')] - #valSettings$devDatabase <- settings$devDatabase[1] + valSettings <- settings[,c('analysisId','modelSettingsId','covariateSettingId', 'cohortName', 'outcomeName', + 'populationSettingId','modelSettingName','devDatabase')] # removed TAR bits valPerformance <- merge(valSettings, valPerformance, by='analysisId') valPerformance <- valPerformance[,colnames(devPerformance)] # make sure same order @@ -163,10 +160,11 @@ getPerformance <- function(analysisLocation){ return(data.frame(analysisId=analysisId[length(analysisId)], AUC=0.000, AUPRC=0, outcomeCount=0, populationSize=0,incidence=0,plpResultLocation=location, - plpResultLoad='loadPlpResult')) + plpResultLoad='loadPlpResult', TAR = '?')) } else { require(PatientLevelPrediction) res <- loadPlpResult(file.path(analysisLocation,'plpResult')) + TAR <- getTAR(res$model$populationSettings) res <- as.data.frame(res$performanceEvaluation$evaluationStatistics) location <- file.path(analysisLocation, 'plpResult') plpResultLoad <- 'loadPlpResult' @@ -175,13 +173,14 @@ getPerformance <- function(analysisLocation){ } else{ # read rds here res <- readRDS(file.path(analysisLocation,'plpResult.rds')) + TAR <- getTAR(res$model$populationSettings) res <- as.data.frame(res$performanceEvaluation$evaluationStatistics) plpResultLoad <- 'readRDS' } #if empty do edit? - res <- tryCatch(reshape2::dcast(res[res$Eval=='test',], analysisId ~ Metric, value.var='Value'), + res <- tryCatch(reshape2::dcast(res[res$Eval%in%c('test','validation'),], analysisId ~ Metric, value.var='Value'), error = function(cont) return(NULL)) if(is.null(res)){ return(NULL) } @@ -189,7 +188,7 @@ getPerformance <- function(analysisLocation){ res$incidence <- as.double(res$outcomeCount)/as.double(res$populationSize)*100 res[, !colnames(res)%in%c('analysisId','outcomeCount','populationSize')] <- format(as.double(res[, !colnames(res)%in%c('analysisId','outcomeCount','populationSize')]), digits = 2, scientific = F) - + res$TAR <- TAR if(sum(colnames(res)=='AUC.auc_ub95ci')>0){ res$AUC <- res$AUC.auc #res$AUC <- paste0(res$AUC.auc, ' (', res$AUC.auc_lb95ci,'-', res$AUC.auc_ub95ci,')') @@ -197,7 +196,7 @@ getPerformance <- function(analysisLocation){ res$plpResultLocation <- location res$plpResultLoad <- plpResultLoad - return(res[,c('analysisId', 'AUC', 'AUPRC', 'outcomeCount','populationSize','incidence','plpResultLocation', 'plpResultLoad')]) + return(res[,c('analysisId', 'AUC', 'AUPRC', 'outcomeCount','populationSize','incidence','plpResultLocation', 'plpResultLoad', 'TAR')]) } getValidationPerformance <- function(validationLocation){ @@ -205,9 +204,11 @@ getValidationPerformance <- function(validationLocation){ if("performanceEvaluation"%in%names(val)){ valPerformance <- reshape2::dcast(as.data.frame(val$performanceEvaluation$evaluationStatistics), analysisId ~ Metric, value.var='Value') + TAR <- getTAR(val$model$populationSettings) } else { valPerformance <- reshape2::dcast(as.data.frame(val[[1]]$performanceEvaluation$evaluationStatistics), analysisId ~ Metric, value.var='Value') + TAR <- getTAR(val[[1]]$model$populationSettings) } valPerformance$incidence <- as.double(valPerformance$outcomeCount)/as.double(valPerformance$populationSize)*100 valPerformance[, !colnames(valPerformance)%in%c('analysisId','outcomeCount','populationSize')] <- @@ -222,9 +223,23 @@ getValidationPerformance <- function(validationLocation){ valPerformance <- valPerformance[,c('analysisId','valDatabase', 'AUC', 'AUPRC', 'outcomeCount','populationSize','incidence')] valPerformance$plpResultLocation <- file.path(validationLocation,'validationResult.rds') valPerformance$plpResultLoad <- 'readRDS' + valPerformance$TAR <- TAR #valPerformance$rocplot <- file.path(validationLocation,'plots','sparseROC.pdf') #valPerformance$calplot <- file.path(validationLocation,'plots','sparseCalibrationConventional.pdf') return(valPerformance) } +getTAR <- function(x){ + starttar <- unique(x$startAnchor) + if(is.null(starttar)){ + starttar <- ifelse(unique(x$addExposureDaysToStart), 'cohort end','cohort start') + } + endtar <- unique(x$endAnchor) + if(is.null(endtar)){ + endtar <- ifelse(unique(x$addExposureDaysToEnd), 'cohort end','cohort start') + } + TAR <- paste0('(',starttar,' + ',unique(x$riskWindowStart),') - (', endtar,' + ',unique(x$riskWindowEnd),')') + return(TAR) + #return('cohort start + 1 - cohort start + 365') +} diff --git a/PredictingHFinT2DM/server.R b/PredictingHFinT2DM/server.R index b8dc1400..1787f3b5 100644 --- a/PredictingHFinT2DM/server.R +++ b/PredictingHFinT2DM/server.R @@ -1,6 +1,6 @@ # @file server.R # -# Copyright 2018 Observational Health Data Sciences and Informatics +# Copyright 2020 Observational Health Data Sciences and Informatics # # This file is part of PatientLevelPrediction # @@ -27,85 +27,36 @@ server <- shiny::shinyServer(function(input, output, session) { session$onSessionEnded(shiny::stopApp) filterIndex <- shiny::reactive({getFilter(summaryTable,input)}) - print(summaryTable) - - observeEvent(input$language, { - i18n$set_translation_language(input$language) - output$risktabside <- shiny::renderUI( - sidebarPanel( - shiny::p(i18n$t('Use this tool to calculate the risk of COVID outcomes: ')), - shiny::p(' '), - shiny::sliderInput("age", i18n$t("Age:"), - min = 18, max = 94, - value = 50), - shiny::selectInput("sex",i18n$t("Sex"), choices = c(i18n$t("Male"), i18n$t("Female"))), - shiny::checkboxInput("cancer", i18n$t("History of Cancer")), - shiny::checkboxInput("copd", i18n$t("History of COPD")), - shiny::checkboxInput("diabetes", i18n$t("History of Diabetes")), - shiny::checkboxInput("hd", i18n$t("History of Heart disease")), - shiny::checkboxInput("hl", i18n$t("History of Hyperlipidemia")), - shiny::checkboxInput("hypertension", i18n$t("History of Hypertension")), - shiny::checkboxInput("kidney",i18n$t("History of Kidney Disease")), - shiny::actionButton("calculate",i18n$t("Calculate Risk")), - hr() - - )) - - output$risktabmain <- shiny::renderUI( - mainPanel( - conditionalPanel('input.calculate', { - shinydashboard::box(width = 12, - title = tagList(shiny::icon("bar-chart"),i18n$t("Predicted Risk (%)")), status = "info", solidHeader = TRUE, - - plotly::plotlyOutput("contributions"))} - - ), - shinydashboard::box( - status = "primary", solidHeader = TRUE, - width = 12, - shiny::includeMarkdown(path = paste0("./www/languages/calculatorDesc_", input$language, ".md")) - # shiny::h2("Description"), - # # shiny::p("The Observational Health Data Sciences and Informatics (OHDSI) international community is hosting a COVID-19 virtual study-a-thon this week (March 26-29) to inform healthcare decision-making in response to the current global pandemic."), - # shiny::p("This calculator presents the results of a prediction study that developed 3 prediction models."), - # shiny::p("The three models predicted: requiring hospital admission (COVER-H), requiring intensive services (COVER-I), or fatality (COVER-F) in the month following COVID-19 diagnosis"), - # shiny::p(' '), - # shiny::h3("Disclaimer"), - # shiny::p('Should not be considered Medical Advice. - # By using the app, you acknowledge that the content does not constitute medical advice and does not create a Healthcare Professional - Patient relationship and does not constitute medical opinion or advice. - # Access to general information is provided for research and educational purposes only. - # Content is not recommended or endorsed by any doctor or healthcare provider. - # The information provided is not a substitute for medical or professional care, - # and you should not use the information in place of an appointment or the advice of your physician or other healthcare provider. - # You are liable or responsible for any action taken through use of information in this site.'), #Todo: add disclaimer - ), ) - ) - }) - #plot for the risk score calculator - output$contributions <- plotly::renderPlotly(plotly::plot_ly(x = as.double(riskValues$data$values), - y = riskValues$data$names, - text = paste0(riskValues$data$values,'%'), textposition = 'auto', insidetextfont = list(size=20, color = 'white'), - color = riskValues$data$color, - colors = levels(riskValues$data$color), - type = 'bar', orientation = 'h', showlegend = F) %>% layout( - xaxis = list( - range=c(-0.1,max(riskValues$data$values)*1.25) - ) - )) - # need to remove over columns: - output$summaryTable <- DT::renderDataTable(DT::datatable(summaryTable[filterIndex(),!colnames(summaryTable)%in%c('addExposureDaysToStart','addExposureDaysToEnd', 'plpResultLocation', 'plpResultLoad')], - rownames= FALSE, selection = 'single')) - - selectedRow <- shiny::reactive({ - if(is.null(input$summaryTable_rows_selected[1])){ - return(1) - }else{ - return(input$summaryTable_rows_selected[1]) - } - }) - + #print(summaryTable) + # need to remove over columns: + output$summaryTable <- DT::renderDataTable(DT::datatable(summaryTable[filterIndex(),!colnames(summaryTable)%in%c('Analysis','addExposureDaysToStart','addExposureDaysToEnd', 'plpResultLocation', 'plpResultLoad')], + rownames= FALSE, selection = 'single', + extensions = 'Buttons', options = list( + dom = 'Blfrtip' , + buttons = c(I('colvis'), 'copy', 'excel', 'pdf' ) + #pageLength = 100, lengthMenu=c(10, 50, 100,200) + ), + + container = htmltools::withTags(table( + class = 'display', + thead( + #tags$th(title=active_columns[i], colnames(data)[i]) + tr(apply(data.frame(colnames=c('Dev', 'Val', 'T','O', 'Model','Covariate setting', + 'TAR', 'AUC', 'AUPRC', + 'T Size', 'O Count', 'O Incidence (%)'), + labels=c('Database used to develop the model', 'Database used to evaluate model', 'Target population - the patients you want to predict risk for','Outcome - what you want to predict', + 'Model type','Id for the covariate/settings used','Time-at-risk period', 'Area under the reciever operating characteristics (test or validation)', 'Area under the precision recall curve (test or validation)', + 'Target population size of test or validation set', 'Outcome count in test or validation set', 'Percentage of target population that have outcome during time-at-risk')), 1, + function(x) th(title=x[2], x[1]))) + ) + )) + + ) + ) + - plpResult <- shiny::reactive({getPlpResult(result,validation,summaryTable, inputType,filterIndex(), selectedRow())}) + plpResult <- shiny::reactive({getPlpResult(result,validation,summaryTable, inputType,trueRow())}) # covariate table output$modelView <- DT::renderDataTable(editCovariates(plpResult()$covariateSummary)$table, @@ -114,12 +65,21 @@ server <- shiny::shinyServer(function(input, output, session) { output$modelCovariateInfo <- DT::renderDataTable(data.frame(covariates = nrow(plpResult()$covariateSummary), nonZeroCount = sum(plpResult()$covariateSummary$covariateValue!=0))) + # Download plpresult + output$plpResult <- shiny::downloadHandler( + filename = function(){ + "plpResult.rds" + }, + content = function(file) { + saveRDS(plpResult(), file) + } + ) # Downloadable csv of model ---- output$downloadData <- shiny::downloadHandler( filename = function(){'model.csv'}, content = function(file) { - write.csv(plpResult()$covariateSummary[plpResult()$covariateSummary$covariateValue!=0,c('covariateName','covariateValue','CovariateCount','CovariateMeanWithOutcome','CovariateMeanWithNoOutcome' )] + write.csv(plpResult()$covariateSummary[,c('covariateName','covariateValue','CovariateCount','CovariateMeanWithOutcome','CovariateMeanWithNoOutcome' )] , file, row.names = FALSE) } ) @@ -133,13 +93,23 @@ server <- shiny::shinyServer(function(input, output, session) { # prediction text - output$info <- shiny::renderText(paste0('Within ', summaryTable[filterIndex(),'T'][selectedRow()], - ' predict who will develop ', summaryTable[filterIndex(),'O'][selectedRow()], - ' during ',summaryTable[filterIndex(),'TAR start'][selectedRow()], ' day/s', - ' after ', ifelse(summaryTable[filterIndex(),'addExposureDaysToStart'][selectedRow()]==0, ' cohort start ', ' cohort end '), - ' and ', summaryTable[filterIndex(),'TAR end'][selectedRow()], ' day/s', - ' after ', ifelse(summaryTable[filterIndex(),'addExposureDaysToEnd'][selectedRow()]==0, ' cohort start ', ' cohort end ')) - ) + #output$info <- shiny::renderUI(shiny::HTML(paste0(shiny::strong('Model: '), summaryTable[trueRow(),'Model'], ' with covariate setting id ',summaryTable[trueRow(),'covariateSettingId'] , '
', + # shiny::strong('Question:'), ' Within ', summaryTable[trueRow(),'T'], + # ' predict who will develop ', summaryTable[trueRow(),'O'], + # ' during ',summaryTable[trueRow(),'TAR'], '
', + # ' Developed in database: ', shiny::strong(summaryTable[trueRow(),'Dev']), ' and ', + # ' validated in database: ', shiny::strong(summaryTable[trueRow(),'Val']) + # )) + #) + + output$sideSettings <- shiny::renderTable(t(data.frame(Development = as.character(summaryTable[trueRow(),'Dev']), + Validation = as.character(summaryTable[trueRow(),'Val']), + Model = as.character(summaryTable[trueRow(),'Model']))), rownames = T, colnames = F) + + output$sideSettings2 <- shiny::renderTable(t(data.frame(T = paste0(substring(as.character(summaryTable[trueRow(),'T']),0,25),'...') , + O = paste0(substring(as.character(summaryTable[trueRow(),'O']),0,25),'...') )), + rownames = T, colnames = F) + # PLOTTING FUNCTION plotters <- shiny::reactive({ @@ -202,8 +172,7 @@ server <- shiny::shinyServer(function(input, output, session) { if(is.null(plpResult()$performanceEvaluation)){ return(NULL) } else{ - plotPreferencePDF(plpResult()$performanceEvaluation, - type=plpResult()$type ) #+ + plotPreferencePDF(plpResult()$performanceEvaluation) #+ # ggplot2::geom_vline(xintercept=plotters()$prefthreshold) -- RMS } }) @@ -212,8 +181,7 @@ server <- shiny::shinyServer(function(input, output, session) { if(is.null(plpResult()$performanceEvaluation)){ return(NULL) } else{ - plotPredictedPDF(plpResult()$performanceEvaluation, - type=plpResult()$type ) # + + plotPredictedPDF(plpResult()$performanceEvaluation) # + #ggplot2::geom_vline(xintercept=plotters()$threshold) -- RMS } }) @@ -222,7 +190,7 @@ server <- shiny::shinyServer(function(input, output, session) { if(is.null(plpResult()$performanceEvaluation)){ return(NULL) } else{ - plotPredictionDistribution(plpResult()$performanceEvaluation, type=plpResult()$type ) + plotPredictionDistribution(plpResult()$performanceEvaluation) } }) @@ -230,7 +198,7 @@ server <- shiny::shinyServer(function(input, output, session) { if(is.null(plpResult()$performanceEvaluation)){ return(NULL) } else{ - plotSparseCalibration2(plpResult()$performanceEvaluation, type=plpResult()$type ) + plotSparseCalibration2(plpResult()$performanceEvaluation) } }) @@ -238,12 +206,60 @@ server <- shiny::shinyServer(function(input, output, session) { if(is.null(plpResult()$performanceEvaluation)){ return(NULL) } else{ - tryCatch(plotDemographicSummary(plpResult()$performanceEvaluation, - type=plpResult()$type ), + tryCatch(plotDemographicSummary(plpResult()$performanceEvaluation), error= function(cond){return(NULL)}) } }) + # validation table and selection + validationTable <- shiny::reactive(dplyr::filter(summaryTable[filterIndex(),], + Analysis == summaryTable[filterIndex(),'Analysis'][trueRow()])) + + output$validationTable <- DT::renderDataTable(dplyr::select(validationTable(),c(Analysis, Dev, Val, AUC)), rownames= FALSE) + + valFilterIndex <- shiny::reactive({getFilter(validationTable(), input)}) + valSelectedRow <- shiny::reactive({ + if(is.null(input$validationTable_rows_selected[1])){ + return(1) + }else{ + # return(input$validationTable_rows_selected[1]) + return(input$validationTable_rows_selected) + } + }) + + # plots for the validation section. todo: add the development? + + valResult <- shiny::reactive({ + valtemplist <- list() + valTable <- validationTable() + rows <- sort(valSelectedRow()) + names <- valTable[rows, "Val"] + for (i in 1:length(rows)){ + valtemplist[[i]] <- getPlpResult(result,validation,valTable, inputType, rows[i]) + } + list(valtemplist, names) + }) + + valPlots <- shiny::reactive({ + results <- valResult() + if(is.null(results[[1]][[1]]$performanceEvaluation)){ + # list(valRocPlot= NULL, valCalPlot = NULL) + return(NULL) + } else{ + + valCalPlot <- PredictionComparison::plotMultipleCal(results[[1]], names = results[[2]]) + valRocPlot <- PredictionComparison::plotMultipleRoc(results[[1]], names = results[[2]], grid = F) + list(valRocPlot= valRocPlot, valCalPlot = valCalPlot) + + } + }) + + output$valRoc <- shiny::renderPlot({ + try(valPlots()$valRocPlot) + }) + output$valCal <- shiny::renderPlot({ + try(valPlots()$valCalPlot) + }) # Do the tables and plots: @@ -329,4 +345,94 @@ server <- shiny::shinyServer(function(input, output, session) { ) }) -}) \ No newline at end of file + + # SELECTING RESULTS - for PERFORMANCE/MODEl + ##selectedRow <- shiny::reactiveVal(value = 1) + trueRow <- shiny::reactiveVal(value = 1) + + # row selection updates dropdowns + shiny::observeEvent(input$summaryTable_rows_selected,{ + #selectedRow(input$summaryTable_rows_selected) + trueRow(filterIndex()[input$summaryTable_rows_selected]) + shiny::updateSelectInput(session, "selectResult", + selected = myResultList[[trueRow()]] + ) + }) + + #drop downs update row and other drop down + sumProxy <- DT::dataTableProxy("summaryTable", session = session) + + shiny::observeEvent(input$selectResult,{ + val <- which(myResultList==input$selectResult) + trueRow(val) + DT::selectRows(sumProxy, which(filterIndex()==val)) # reset filter here? + }) + + + + # HELPER INFO + showInfoBox <- function(title, htmlFileName) { + shiny::showModal(shiny::modalDialog( + title = title, + easyClose = TRUE, + footer = NULL, + size = "l", + shiny::HTML(readChar(htmlFileName, file.info(htmlFileName)$size) ) + )) + } + + + observeEvent(input$DescriptionInfo, { + showInfoBox("Description", "html/Description.html") + }) + observeEvent(input$SummaryInfo, { + showInfoBox("Summary", "html/Summary.html") + }) + observeEvent(input$PerformanceInfo, { + showInfoBox("Performance", "html/Performance.html") + }) + observeEvent(input$ModelInfo, { + showInfoBox("Model", "html/Model.html") + }) + observeEvent(input$LogInfo, { + showInfoBox("Log", "html/Log.html") + }) + observeEvent(input$SettingsInfo, { + showInfoBox("Settings", "html/Settings.html") + }) + observeEvent(input$DataInfoInfo, { + showInfoBox("DataInfo", "html/DataInfo.html") + }) + observeEvent(input$HelpInfo, { + showInfoBox("HelpInfo", "html/Help.html") + }) + + + observeEvent(input$rocHelp, { + showInfoBox("ROC Help", "html/rocHelp.html") + }) + observeEvent(input$prcHelp, { + showInfoBox("PRC Help", "html/prcHelp.html") + }) + observeEvent(input$f1Help, { + showInfoBox("F1 Score Plot Help", "html/f1Help.html") + }) + observeEvent(input$boxHelp, { + showInfoBox("Box Plot Help", "html/boxHelp.html") + }) + observeEvent(input$predDistHelp, { + showInfoBox("Predicted Risk Distribution Help", "html/predDistHelp.html") + }) + observeEvent(input$prefDistHelp, { + showInfoBox("Preference Score Distribution Help", "html/prefDistHelp.html") + }) + observeEvent(input$calHelp, { + showInfoBox("Calibration Help", "html/calHelp.html") + }) + observeEvent(input$demoHelp, { + showInfoBox("Demographic Help", "html/demoHelp.html") + }) + + + +}) diff --git a/PredictingHFinT2DM/ui.R b/PredictingHFinT2DM/ui.R index 2bbc5e20..d281422f 100644 --- a/PredictingHFinT2DM/ui.R +++ b/PredictingHFinT2DM/ui.R @@ -1,6 +1,6 @@ # @file Ui.R # -# Copyright 2018 Observational Health Data Sciences and Informatics +# Copyright 2020 Observational Health Data Sciences and Informatics # # This file is part of PatientLevelPrediction # @@ -20,7 +20,7 @@ library(shiny) library(plotly) library(shinycssloaders) library(shinydashboard) -library(shiny.i18n) + addInfo <- function(item, infoId) { infoTag <- tags$small(class = "badge pull-right action-button", style = "padding: 1px 6px 2px 6px; background-color: steelblue;", @@ -31,10 +31,9 @@ addInfo <- function(item, infoId) { return(item) } -#translation ui <- shinydashboard::dashboardPage(skin = 'black', - shinydashboard::dashboardHeader(title = "Multiple PLP Viewer", + shinydashboard::dashboardHeader(title = "PLP Viewer", tags$li(div(img(src = 'logo.png', title = "OHDSI PLP", height = "40px", width = "40px"), @@ -45,17 +44,60 @@ ui <- shinydashboard::dashboardPage(skin = 'black', ), shinydashboard::dashboardSidebar( - shinydashboard::sidebarMenu( - addInfo(shinydashboard::menuItem("Description", tabName = "Description", icon = shiny::icon("home")), "DescriptionInfo"), - # addInfo(shinydashboard::menuItem("Calculate Risk", tabName = "Risk", icon = shiny::icon("heartbeat")), "RiskInfo"), - addInfo(shinydashboard::menuItem("Summary", tabName = "Summary", icon = shiny::icon("table")), "SummaryInfo"), - addInfo(shinydashboard::menuItem("Performance", tabName = "Performance", icon = shiny::icon("bar-chart")), "PerformanceInfo"), - addInfo(shinydashboard::menuItem("Model", tabName = "Model", icon = shiny::icon("clipboard")), "ModelInfo"), - addInfo(shinydashboard::menuItem("Log", tabName = "Log", icon = shiny::icon("list")), "LogInfo"), - addInfo(shinydashboard::menuItem("Data Info", tabName = "DataInfo", icon = shiny::icon("database")), "DataInfoInfo"), - addInfo(shinydashboard::menuItem("Help", tabName = "Help", icon = shiny::icon("info")), "HelpInfo") + shinydashboard::sidebarMenu(id ='menu', + addInfo(shinydashboard::menuItem("Description", tabName = "Description", icon = shiny::icon("home")), "DescriptionInfo"), + addInfo(shinydashboard::menuItem("Summary", tabName = "Summary", icon = shiny::icon("table")), "SummaryInfo"), + addInfo(shinydashboard::menuItem("Performance", tabName = "Performance", icon = shiny::icon("bar-chart")), "PerformanceInfo"), + addInfo(shinydashboard::menuItem("Model", tabName = "Model", icon = shiny::icon("clipboard")), "ModelInfo"), + addInfo(shinydashboard::menuItem("Settings", tabName = "Settings", icon = shiny::icon("cog")), "SettingsInfo"), + addInfo(shinydashboard::menuItem("Log", tabName = "Log", icon = shiny::icon("list")), "LogInfo"), + addInfo(shinydashboard::menuItem("Data Info", tabName = "DataInfo", icon = shiny::icon("database")), "DataInfoInfo"), + addInfo(shinydashboard::menuItem("Help", tabName = "Help", icon = shiny::icon("info")), "HelpInfo") + ), + + # scroller performanace - make conditional + conditionalPanel(condition = "input.menu=='Performance'", + shiny::sliderInput("slider1", + shiny::span("Threshold: ", shiny::textOutput('threshold'), style="color:white;font-family: Arial;font-size:14px;"), + min = 1, max = 100, value = 50, ticks = F + ), + + shiny::splitLayout( + cellWidths = c('10%', '80%', '10%'), + shiny::span(shiny::h5(strong('0')), style="color:white"), + shiny::h5(' '), + shiny::span(shiny::h5(strong('1')), style="color:white") + ), + shiny::tags$script(shiny::HTML(" + $(document).ready(function() {setTimeout(function() { + supElement = document.getElementById('slider1').parentElement; + $(supElement).find('span.irs-max, span.irs-min, span.irs-single, span.irs-from, span.irs-to').remove(); + }, 50);}) + ")) + ), + + conditionalPanel(condition = "input.menu=='Performance' || input.menu=='Model' || input.menu=='Settings' || input.menu=='Log'", + + shinyWidgets::pickerInput("selectResult", "Result:", + choices = myResultList, + selected = myResultList[[1]], + options = shinyWidgets::pickerOptions(liveSearch = TRUE, dropupAuto = FALSE, header = 'Select a result here to view...'), + multiple = FALSE), + + shiny::tableOutput("sideSettings"), + shiny::tableOutput("sideSettings2") + + + #shiny::selectInput( + # "selectResult", + # label = shiny::h4("Result:"), + # choices = myResultList + #) + ) - ), + + + ), # end sidebar shinydashboard::dashboardBody( shinydashboard::tabItems( @@ -67,65 +109,14 @@ ui <- shinydashboard::dashboardPage(skin = 'black', shiny::a("Demo Video", href = 'https://youtu.be/StpV40yl1UE', target='_blank') ), - # # First tab content + # First tab content shinydashboard::tabItem(tabName = "Description", shiny::includeMarkdown(path = "./www/shinyDescription.md") - + ), - # shinydashboard::tabItem(tabName = "Risk", - # shiny::selectInput("language",'Language', choices = translationChoices), - # shiny::uiOutput("risktabside"), - # shiny::uiOutput("risktabmain") - # - # # sidebarPanel( - # # shiny::p(i18n$t('Use this tool to calculate the risk of COVID outcomes: ')), - # # shiny::p(' '), - # # shiny::sliderInput("age", i18n$t("Age:"), - # # min = 18, max = 94, - # # value = 50), - # # shiny::selectInput("sex",i18n$t("Sex"), choices = c(i18n$t("Male"), i18n$t("Female"))), - # # shiny::checkboxInput("cancer", i18n$t("History of Cancer")), - # # shiny::checkboxInput("copd", i18n$t("History of COPD")), - # # shiny::checkboxInput("diabetes", i18n$t("History of Diabetes")), - # # shiny::checkboxInput("hd", i18n$t("History of Heart disease")), - # # shiny::checkboxInput("hl", i18n$t("History of Hyperlipidemia")), - # # shiny::checkboxInput("hypertension", i18n$t("History of Hypertension")), - # # shiny::checkboxInput("kidney",i18n$t("History of Kidney Disease")), - # # shiny::actionButton("calculate",i18n$t("Calculate Risk")), - # # hr() - # # - # # ), - # # mainPanel( - # # conditionalPanel('input.calculate', { - # # shinydashboard::box(width = 12, - # # title = tagList(shiny::icon("bar-chart"),i18n$t("Predicted Risk (%)")), status = "info", solidHeader = TRUE, - # # - # # plotly::plotlyOutput("contributions"))} - # # - # # ), - # # shinydashboard::box( - # # status = "primary", solidHeader = TRUE, - # # width = 12, - # # shiny::h2("Description"), - # # # shiny::p("The Observational Health Data Sciences and Informatics (OHDSI) international community is hosting a COVID-19 virtual study-a-thon this week (March 26-29) to inform healthcare decision-making in response to the current global pandemic."), - # # shiny::p("This calculator presents the results of a prediction study that developed 3 prediction models."), - # # shiny::p("The three models predicted: requiring hospital admission (COVER-H), requiring intensive services (COVER-I), or fatality (COVER-F) in the month following COVID-19 diagnosis"), - # # shiny::p(' '), - # # shiny::h3("Disclaimer"), - # # shiny::p('Should not be considered Medical Advice. - # # By using the app, you acknowledge that the content does not constitute medical advice and does not create a Healthcare Professional - Patient relationship and does not constitute medical opinion or advice. - # # Access to general information is provided for research and educational purposes only. - # # Content is not recommended or endorsed by any doctor or healthcare provider. - # # The information provided is not a substitute for medical or professional care, - # # and you should not use the information in place of an appointment or the advice of your physician or other healthcare provider. - # # You are liable or responsible for any action taken through use of information in this site.'), #Todo: add disclaimer - # # ), ) - # - # ), - # shinydashboard::tabItem(tabName = "DataInfo", shiny::includeMarkdown(path = "./www/dataInfo.md") - + ), shinydashboard::tabItem(tabName = "Summary", @@ -137,35 +128,41 @@ ui <- shinydashboard::dashboardPage(skin = 'black', shiny::selectInput('valDatabase', 'Validation Database', c('All',unique(as.character(summaryTable$Val)))), shiny::selectInput('T', 'Target Cohort', c('All',unique(as.character(summaryTable$`T`)))), shiny::selectInput('O', 'Outcome Cohort', c('All',unique(as.character(summaryTable$`O`)))), - shiny::selectInput('riskWindowStart', 'Time-at-risk start:', c('All',unique(as.character(summaryTable$`TAR start`)))), - shiny::selectInput('riskWindowEnd', 'Time-at-risk end:', c('All',unique(as.character(summaryTable$`TAR end`)))) + shiny::selectInput('TAR', 'Time-at-risk end:', c('All',unique(as.character(summaryTable$TAR)))) ), + shiny::column(10, style = "background-color:#F3FAFC;", + shiny::div(DT::dataTableOutput('summaryTable'), + style = "font-size:70%") + + ))), + + + shinydashboard::tabItem(tabName = "Settings", + + shiny::fluidRow( + shiny::column(10, style = "background-color:#F3FAFC;", # do this inside tabs: - shiny::tabsetPanel( - - shiny::tabPanel("Results", - shiny::div(DT::dataTableOutput('summaryTable'), - style = "font-size:70%")), - - shiny::tabPanel("Model Settings", - shiny::h3('Model Settings: ', - shiny::a("help", href="https://ohdsi.github.io/PatientLevelPrediction/reference/index.html", target="_blank") - ), - DT::dataTableOutput('modelTable')), - - shiny::tabPanel("Population Settings", - shiny::h3('Population Settings: ', - shiny::a("help", href="https://ohdsi.github.io/PatientLevelPrediction/reference/createStudyPopulation.html", target="_blank") - ), - DT::dataTableOutput('populationTable')), - - shiny::tabPanel("Covariate Settings", - shiny::h3('Covariate Settings: ', - shiny::a("help", href="http://ohdsi.github.io/FeatureExtraction/reference/createCovariateSettings.html", target="_blank") - ), - DT::dataTableOutput('covariateTable')) + shiny::tabsetPanel(id = "tabs", + + shiny::tabPanel("Model Settings", + shiny::h3('Model Settings: ', + shiny::a("help", href="https://ohdsi.github.io/PatientLevelPrediction/reference/index.html", target="_blank") + ), + DT::dataTableOutput('modelTable')), + + shiny::tabPanel("Population Settings", + shiny::h3('Population Settings: ', + shiny::a("help", href="https://ohdsi.github.io/PatientLevelPrediction/reference/createStudyPopulation.html", target="_blank") + ), + DT::dataTableOutput('populationTable')), + + shiny::tabPanel("Covariate Settings", + shiny::h3('Covariate Settings: ', + shiny::a("help", href="http://ohdsi.github.io/FeatureExtraction/reference/createCovariateSettings.html", target="_blank") + ), + DT::dataTableOutput('covariateTable')) ) ) @@ -175,47 +172,19 @@ ui <- shinydashboard::dashboardPage(skin = 'black', shinydashboard::tabItem(tabName = "Performance", shiny::fluidRow( + #shinydashboard::box(width = 12, + # title = tagList(shiny::icon("question"),"Prediction Question"), status = "info", solidHeader = TRUE, + # shiny::htmlOutput('info') + #), tabBox( title = "Performance", # The id lets us use input$tabset1 on the server to find the current tab id = "tabset1", height = "100%", width='100%', - tabPanel("Summary", + + tabPanel("Threshold Dependant", shiny::fluidRow( - shiny::column(width = 4, - shinydashboard::box(width = 12, - title = tagList(shiny::icon("question"),"Prediction Question"), status = "info", solidHeader = TRUE, - shiny::textOutput('info') - ), - shinydashboard::box(width = 12, - title = tagList(shiny::icon("gear"), "Input"), - status = "info", solidHeader = TRUE, - shiny::splitLayout( - cellWidths = c('5%', '90%', '5%'), - shiny::h5(' '), - shiny::sliderInput("slider1", - shiny::h4("Threshold value slider: ", strong(shiny::textOutput('threshold'))), - min = 1, max = 100, value = 50, ticks = F), - shiny::h5(' ') - ), - shiny::splitLayout( - cellWidths = c('5%', '90%', '5%'), - shiny::h5(strong('0')), - shiny::h5(' '), - shiny::h5(strong('1')) - ), - shiny::tags$script(shiny::HTML(" - $(document).ready(function() {setTimeout(function() { - supElement = document.getElementById('slider1').parentElement; - $(supElement).find('span.irs-max, span.irs-min, span.irs-single, span.irs-from, span.irs-to').remove(); - }, 50);}) - ")) - ) - - ), - - - shiny::column(width = 8, + shiny::column(width = 12, shinydashboard::box(width = 12, title = "Dashboard", status = "warning", solidHeader = TRUE, @@ -237,7 +206,7 @@ ui <- shinydashboard::dashboardPage(skin = 'black', ) - ), + ), # end summary tabPanel("Discrimination", shiny::fluidRow( @@ -287,11 +256,28 @@ ui <- shinydashboard::dashboardPage(skin = 'black', side = "right", shinycssloaders::withSpinner(shiny::plotOutput('demo'))) ) - ) + ), + tabPanel("Validation", + shiny::div(DT::dataTableOutput('validationTable'), + style = "font-size:70%; padding-bottom:20px"), + + shiny::fluidRow( + shinydashboard::box(status = 'info', + title = actionLink("rocHelp","Roc Plot", icon = icon("info")), + solidHeader = TRUE, + shinycssloaders::withSpinner(shiny::plotOutput('valRoc'))), + shinydashboard::box(status = 'info', + title = actionLink("calHelp","Calibration Plot", icon = icon("info")), + solidHeader = TRUE, + side = "right", + shinycssloaders::withSpinner(shiny::plotOutput('valCal'))) + ) + ) ))), # 3rd tab shinydashboard::tabItem(tabName = "Model", + shiny::fluidRow( shinydashboard::box( status = 'info', title = "Binary", solidHeader = TRUE, @@ -319,4 +305,4 @@ ui <- shinydashboard::dashboardPage(skin = 'black', ) ) - ) \ No newline at end of file + )