Libraries

library(readxl)
library(readr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Plottig purposes
library(ggplot2)
library(gridExtra)
## 
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
## 
##     combine
library(knitr)

# RF
library(randomForest) # RandomForest Discrete Classification
## randomForest 4.7-1.1
## Type rfNews() to see new features/changes/bug fixes.
## 
## Attaching package: 'randomForest'
## The following object is masked from 'package:gridExtra':
## 
##     combine
## The following object is masked from 'package:ggplot2':
## 
##     margin
## The following object is masked from 'package:dplyr':
## 
##     combine
library(imbalance) # To create a more balanced dataset

Functions

source("../../scripts/useful-functions/get_column_position.R")
# In a normal script it will be:  source("./scripts/useful-functions/get_column_position.R")

Load Data

file_patient_name <- data.frame(read_csv("../../data/clean-data/file_patient_name.csv", show_col_types = FALSE))
## New names:
## • `` -> `...1`
file_patient_name <- file_patient_name$x

Descriptive Data for Discriminant analysis

# First patients with OAF
name_patients_DETERIORO_OAF_0 <- data.frame(read_csv("../../data/clean-data/name_patients_DETERIORO_OAF_0.csv"))
name_patients_DETERIORO_OAF_0 <- name_patients_DETERIORO_OAF_0$x
name_patients_DETERIORO_OAF_0_8 <- data.frame(read_csv("../../data/clean-data/name_patients_DETERIORO_OAF_0_8.csv"))
name_patients_DETERIORO_OAF_0_8 <- name_patients_DETERIORO_OAF_0_8$x

valid_patients_P2 <- data.frame(read_xlsx("../../data/clean-data/valid_patients_P2.xlsx"))
valid_patients_P2 <- valid_patients_P2$x
valid_patients_P2 <- valid_patients_P2[! valid_patients_P2 %in% union(name_patients_DETERIORO_OAF_0,name_patients_DETERIORO_OAF_0_8)]

file_patient_name <- data.frame(read_csv("../../data/clean-data/file_patient_name.csv", show_col_types = FALSE))
file_patient_name <- file_patient_name$x

## UCIP
file_patient_name_UCIP <- data.frame(read_csv("../../data/info-patients/file_patient_name_UCIP.csv"))
file_patient_name_UCIP <- file_patient_name_UCIP$x

## Deterioro and NOT deterioro
file_patient_name_NO_DETERIORO <- data.frame(read_csv("../../data/info-patients/file_patient_name_NO_DETERIORO.csv"))
file_patient_name_NO_DETERIORO <- file_patient_name_NO_DETERIORO$x
file_patient_name_DETERIORO <- data.frame(read_csv("../../data/info-patients/file_patient_name_DETERIORO.csv"))
file_patient_name_DETERIORO <- file_patient_name_DETERIORO$x

Descriptive Data

Descriptive Data after imputation

df_descriptive <- data.frame(read_xlsx("../../data/clean-data/descriptive-data/descriptive_data_imputed.xlsx"), row.names = TRUE)
## New names:
## • `` -> `...1`
df_descriptive <- df_descriptive %>%
  mutate_if(is.character, as.factor)

df_descriptive_mask <- data.frame(read_xlsx("../../data/clean-data/descriptive-data/descriptive_data_imputed_mask.xlsx"), row.names = TRUE)
## New names:
## • `` -> `...1`
rownames(df_descriptive) <- file_patient_name
rownames(df_descriptive_mask) <- file_patient_name

Descriptive Data after selection of valid patients

df_descriptive_P2 <- df_descriptive[valid_patients_P2,]
# Imputed Data
cuantiles_TS_HR_P2 = data.frame(read_xlsx("../../data/clean-data/BoxBasedImputation/cuantiles_TS_HR_valid_patients_input_P2.xlsx", sheet = "FC_valid_patients_input_P2" ))
cuantiles_TS_HR_P2 <- cuantiles_TS_HR_P2[,valid_patients_P2]

SatO2_TS_HR_P2 = data.frame(read_xlsx("../../data/clean-data/BoxBasedImputation/SatO2_valid_patients_input_P2.xlsx", sheet = "SatO2_valid_patients_input_P2" ))
SatO2_TS_HR_P2 <- SatO2_TS_HR_P2[,valid_patients_P2]

FC_TS_HR_P2 = data.frame(read_xlsx("../../data/clean-data/BoxBasedImputation/FC_valid_patients_input_P2.xlsx", sheet = "FC_valid_patients_input_P2" ))
FC_TS_HR_P2 <- FC_TS_HR_P2[,valid_patients_P2]

FC_TS_HR_P2_scaled <- data.frame(scale(FC_TS_HR_P2))
SatO2_TS_HR_P2_scaled <- data.frame(scale(SatO2_TS_HR_P2))

Create means with values and data to use in RF

FC MEANS

df <- FC_TS_HR_P2[,valid_patients_P2]

# Agrupar los datos por intervalos de 60 filas y calcular las medias
medias_FC_P2 <- df %>%
  mutate(group = rep(1:8, each = 60)) %>%
  group_by(group) %>%
  summarise(across(everything(), mean, na.rm = TRUE)) %>%
  select(-group)
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `across(everything(), mean, na.rm = TRUE)`.
## ℹ In group 1: `group = 1`.
## Caused by warning:
## ! The `...` argument of `across()` is deprecated as of dplyr 1.1.0.
## Supply arguments directly to `.fns` through an anonymous function instead.
## 
##   # Previously
##   across(a:b, mean, na.rm = TRUE)
## 
##   # Now
##   across(a:b, \(x) mean(x, na.rm = TRUE))
# Colnames
mean_vector <- sprintf("Mean_FC_P2_%d", seq(1, 8))
medias_FC_P2 <- t(medias_FC_P2)
colnames(medias_FC_P2) <- mean_vector

SatO2 MEANS

df <- SatO2_TS_HR_P2[,valid_patients_P2]

# Agrupar los datos por intervalos de 60 filas y calcular las medias
medias_SatO2_P2 <- df %>%
  mutate(group = rep(1:8, each = 60)) %>%
  group_by(group) %>%
  summarise(across(everything(), mean, na.rm = TRUE)) %>%
  select(-group)

# Colnames
mean_vector <- sprintf("Mean_SatO2_P2_%d", seq(1, 8))
medias_SatO2_P2 <- t(medias_SatO2_P2)
colnames(medias_SatO2_P2) <- mean_vector

Cuantiles MEANS

df <- cuantiles_TS_HR_P2[,valid_patients_P2]

# Agrupar los datos por intervalos de 60 filas y calcular las medias
medias_Q_P2 <- df %>%
  mutate(group = rep(1:8, each = 60)) %>%
  group_by(group) %>%
  summarise(across(everything(), mean, na.rm = TRUE)) %>%
  select(-group)

# Colnames
mean_vector <- sprintf("Mean_Q_P2_%d", seq(1, 8))
medias_Q_P2 <- t(medias_Q_P2)
colnames(medias_Q_P2) <- mean_vector

Scaled FC MEANS

df <- data.frame(scale(FC_TS_HR_P2[,valid_patients_P2]))

# Agrupar los datos por intervalos de 60 filas y calcular las medias
medias_SC_P2 <- df %>%
  mutate(group = rep(1:8, each = 60)) %>%
  group_by(group) %>%
  summarise(across(everything(), mean, na.rm = TRUE)) %>%
  select(-group)

# Colnames
mean_vector <- sprintf("Mean_SC_P2_%d", seq(1, 8))
medias_SC_P2 <- t(medias_SC_P2)
colnames(medias_SC_P2) <- mean_vector

Scaled SatO2 MEANS

df <- data.frame(scale(SatO2_TS_HR_P2[,valid_patients_P2]))

# Agrupar los datos por intervalos de 60 filas y calcular las medias
medias_SC_SO2_P2 <- df %>%
  mutate(group = rep(1:8, each = 60)) %>%
  group_by(group) %>%
  summarise(across(everything(), mean, na.rm = TRUE)) %>%
  select(-group)

# Colnames
mean_vector <- sprintf("Mean_SC_SO2_P2_%d", seq(1, 8))
medias_SC_SO2_P2 <- t(medias_SC_SO2_P2)
colnames(medias_SC_SO2_P2) <- mean_vector

ACF [Heart Rate Scaled]

dimension_col <- dim(FC_TS_HR_P2_scaled)[2]
dimension_row <- 480 #lag.max -1

# FC_scaled
FC_TS_HR_P2_scaled_ACF <- data.frame(matrix(nrow = dimension_row, ncol = dimension_col))
colnames(FC_TS_HR_P2_scaled_ACF) <- names(FC_TS_HR_P2_scaled)[1:dimension_col]
for (i in names(FC_TS_HR_P2_scaled_ACF)) {
  acf_result_FC_scaled <- forecast::Acf(FC_TS_HR_P2_scaled[[i]], lag.max = (dimension_row - 1), plot = FALSE)
  FC_TS_HR_P2_scaled_ACF[, i] <- acf_result_FC_scaled$acf
}
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo

ACF [SatO2 Scaled]

dimension_col <- dim(SatO2_TS_HR_P2_scaled)[2]
dimension_row <- 480 #lag.max -1

# FC_scaled
SatO2_TS_HR_P2_scaled_ACF <- data.frame(matrix(nrow = dimension_row, ncol = dimension_col))
colnames(SatO2_TS_HR_P2_scaled_ACF) <- names(SatO2_TS_HR_P2_scaled)[1:dimension_col]
for (i in names(SatO2_TS_HR_P2_scaled_ACF)) {
  acf_result_SatO2_scaled <- forecast::Acf(SatO2_TS_HR_P2_scaled[[i]], lag.max = (dimension_row - 1), plot = FALSE)
  SatO2_TS_HR_P2_scaled_ACF[, i] <- acf_result_SatO2_scaled$acf
}

CCF [Heart Rate and SatO2]

dimension_col <- dim(FC_TS_HR_P2)[2]
dimension_row <- 480 #lag.max -1
SatO2_FC_CCF <- data.frame(matrix(nrow = dimension_row * 2 - 1, ncol = dimension_col))
colnames(SatO2_FC_CCF) <- names(FC_TS_HR_P2)[1:dimension_col]
m <- forecast::Ccf(FC_TS_HR_P2[[1]], SatO2_TS_HR_P2[[1]], lag.max = dimension_row - 1, plot = FALSE, drop.lag.0 = FALSE, type = "correlation", ylab = "CCF")
for (i in names(SatO2_FC_CCF)) {
  ccf_result <- forecast::Ccf(FC_TS_HR_P2[[i]], SatO2_TS_HR_P2[[i]], lag.max = dimension_row - 1, plot = FALSE, drop.lag.0 = FALSE, type = "correlation", ylab = "CCF")
  SatO2_FC_CCF[, i] <- ccf_result$acf
}

CLASSIFICATION FINAL MODEL

Variables that it is neccesary to delete in df_descriptive_P2

no_class <- c("UCIP","OAF","OAF_AL_INGRESO","OAF_TRAS_INGRESO")
more_than_8 <- c("DIAS_GN","DIAS_O2_TOTAL","DIAS_OAF")

df_descriptive_P2 <- df_descriptive_P2[,!names(df_descriptive_P2) %in% c(no_class,more_than_8)]

# Move DETERIORO to the END
df_descriptive_P2 <- df_descriptive_P2 %>%
  select(-DETERIORO, everything())


head(df_descriptive_P2)
##               EDAD PESO EG FR_0_8h FR_8_16h FR_16_24h FLUJO2_0_8H FLUJO2_8_16h
## ACR_11231843  10.0 8.20 41      48     54.0      42.0        2.00          2.0
## ADAO_11159808 13.0 7.78 40      56     52.0      42.0        2.00          2.0
## AGG_11236448   3.1 5.66 37      44     60.0      52.0        1.00          0.5
## AHL_11239959   5.3 8.44 38      65     64.0      50.0        0.40          0.4
## AJGD_11119689 15.0 7.00 34      37     38.8      36.0        2.00          2.0
## AMP_11228639   1.6 3.80 37      42     32.0      42.8        0.94          0.4
##               FLUJO2_16_24h SAPI_0_8h SAPI_8_16h SAPI_16_24h
## ACR_11231843            2.0         2          2           2
## ADAO_11159808           2.0         3          3           3
## AGG_11236448            0.5         2          2           2
## AHL_11239959            0.4         3          2           1
## AJGD_11119689           2.0         0          1           2
## AMP_11228639            0.3         1          1           1
##               SCORE_CRUCES_INGRESO SCORE_WOOD_DOWNES_INGRESO
## ACR_11231843                     2                         5
## ADAO_11159808                    3                         7
## AGG_11236448                     2                         6
## AHL_11239959                     2                         5
## AJGD_11119689                    2                         5
## AMP_11228639                     3                         6
##               SCORE_WOOD_DOWNES_24H SEXO PALIVIZUMAB LM DERMATITIS ALERGIAS
## ACR_11231843                      5    0           0  1          0        1
## ADAO_11159808                     8    0           0  0          0        1
## AGG_11236448                      5    0           0  1          0        0
## AHL_11239959                      6    0           0  1          0        0
## AJGD_11119689                     5    0           1  0          0        0
## AMP_11228639                      4    0           0  1          0        0
##               TABACO ENFERMEDAD_BASE RADIOGRAFIA ANALITICA SUERO ETIOLOGIA
## ACR_11231843       0               0           0         0     0         1
## ADAO_11159808      1               1           0         0     1         0
## AGG_11236448       0               0           0         0     0         1
## AHL_11239959       0               0           0         0     0         1
## AJGD_11119689      1               1           0         0     1         1
## AMP_11228639       1               1           0         0     0         0
##               PREMATURIDAD ALIMENTACION SNG GN_INGRESO PAUSAS_APNEA DETERIORO
## ACR_11231843             0            1   0          1            0         0
## ADAO_11159808            0            0   0          1            0         0
## AGG_11236448             0            1   0          1            0         0
## AHL_11239959             0            1   0          0            0         0
## AJGD_11119689            1            1   0          1            0         0
## AMP_11228639             0            1   0          0            0         0

Deleting variables that occur after the 8 first hours

df_descriptive_P2_8 <- df_descriptive_P2 %>% select(-c(FR_8_16h, FR_16_24h, FLUJO2_8_16h,FLUJO2_16_24h,SCORE_WOOD_DOWNES_24H,SAPI_16_24h, SAPI_8_16h))

El modelo final se hará con:

  • Las eqtiquetas de los cluster
cluster_study_SatO2 <-
  read.csv("../../data/clusters/cluster_study_SatO2.csv")
cluster_study_SatO2_scaled <-
  read.csv("../../data/clusters/cluster_study_SatO2_scaled.csv")
cluster_study_FC <- read.csv("../../data/clusters/cluster_study_FC.csv")
cluster_study_CCF <- read.csv("../../data/clusters/cluster_study_CCF.csv")
cluster_study_FC_scaled <- read.csv("../../data/clusters/cluster_study_FC_scaled.csv")
cluster_study_cuantiles <- read.csv("../../data/clusters/cluster_study_cuantiles.csv")
cluster_study <- data.frame(rbind(cluster_study_SatO2[[2]],cluster_study_SatO2[[3]],cluster_study_SatO2[[4]],cluster_study_FC[[2]],cluster_study_FC[[3]],cluster_study_FC[[4]], cluster_study_CCF[[2]], 
                                  cluster_study_FC_scaled[[2]],cluster_study_FC_scaled[[3]],cluster_study_FC_scaled[[4]],cluster_study_cuantiles[[2]],cluster_study_cuantiles[[3]],cluster_study_cuantiles[[4]]))

names(cluster_study) <- cluster_study_SatO2[[1]]
row.names(cluster_study) <- c("ACF_SatO2", "EUCL_SatO2", "PER_SatO2","ACF_HR", "EUCL_HR", "PER_HR", "CCF", "ACF_s_HR", "EUCL_s_HR", "PER_s_HR","ACF_c_HR", "EUCL_c_HR", "PER_c_HR")
cluster_study_df <- data.frame(t(cluster_study)[valid_patients_P2,])
cluster_study_df <- cluster_study_df %>% mutate_at(colnames(cluster_study_df), as.factor)
  • Las 50 primeras ACF Scaled Heart Rate
ACF_HR_50 <- t(FC_TS_HR_P2_scaled_ACF)[,c(1:50)]
colnames(ACF_HR_50) <- paste0("ACF_HR",c(1:50))
  • Las 50 primeras ACF Scaled SatO2
ACF_SatO2_50 <- t(SatO2_TS_HR_P2_scaled_ACF)[,c(1:50)]
colnames(ACF_SatO2_50) <- paste0("ACF_SatO2",c(1:50))
  • Las 100 primeras CCF SatO\(_2\) and HR
CCF_100 <- t(SatO2_FC_CCF)[,c(1:100)]
colnames(CCF_100) <- paste0("CCF_",c(1:100))
  • Descriptive Data

  • Mean SatO2 Scaled

  • Mean SC (Scaled FC data)

final.model.df <- cbind(df_descriptive_P2_8,cluster_study_df,ACF_HR_50,ACF_SatO2_50,CCF_100,medias_SC_P2,medias_SatO2_P2, medias_Q_P2)

NO SMOTE FINAL

set.seed(123)
RF_FINAL_DES <- randomForest(DETERIORO ~ ., data = final.model.df)
print(RF_FINAL_DES)
## 
## Call:
##  randomForest(formula = DETERIORO ~ ., data = final.model.df) 
##                Type of random forest: classification
##                      Number of trees: 500
## No. of variables tried at each split: 16
## 
##         OOB estimate of  error rate: 12.07%
## Confusion matrix:
##    0 1 class.error
## 0 51 1  0.01923077
## 1  6 0  1.00000000
kable(randomForest::importance(RF_FINAL_DES, type =2)[order(randomForest::importance(RF_FINAL_DES, type =2), decreasing = TRUE),], col.names = "MeanDecreaseGini")
MeanDecreaseGini
Mean_SatO2_P2_2 0.4448716
Mean_SatO2_P2_5 0.3566766
Mean_Q_P2_8 0.3547310
Mean_SatO2_P2_6 0.2525098
ACF_SatO213 0.2220094
SNG 0.2098854
ALIMENTACION 0.2075314
Mean_SatO2_P2_3 0.1818345
FR_0_8h 0.1809479
ACF_SatO215 0.1716015
ACF_SatO214 0.1711767
Mean_SatO2_P2_7 0.1689694
Mean_SatO2_P2_4 0.1531737
ACF_SatO210 0.1505949
Mean_SatO2_P2_1 0.1470279
PESO 0.1469728
Mean_Q_P2_4 0.1464217
ACF_SatO211 0.1211788
ACF_SatO29 0.1169187
ACF_SatO25 0.1167870
ACF_SatO245 0.1167542
SCORE_WOOD_DOWNES_INGRESO 0.1127311
SCORE_CRUCES_INGRESO 0.1118279
Mean_SC_P2_6 0.1110688
CCF_1 0.1078152
RADIOGRAFIA 0.1049292
Mean_Q_P2_3 0.1029317
Mean_SatO2_P2_8 0.1007390
CCF_3 0.0984582
Mean_Q_P2_6 0.0955314
CCF_4 0.0945639
Mean_Q_P2_2 0.0935762
ACF_SatO226 0.0913294
SAPI_0_8h 0.0904725
ACF_SatO217 0.0886070
EDAD 0.0859515
Mean_Q_P2_5 0.0845379
ACF_SatO27 0.0801904
SUERO 0.0753607
Mean_SC_P2_4 0.0745504
ACF_SatO23 0.0684776
ACF_SatO28 0.0664143
ACF_SatO24 0.0654139
ETIOLOGIA 0.0644452
ACF_SatO218 0.0639671
Mean_SC_P2_5 0.0616441
CCF_2 0.0580673
ACF_SatO243 0.0557210
ACF_HR28 0.0553296
EG 0.0552419
LM 0.0545020
CCF_55 0.0532146
ACF_SatO22 0.0520865
ACF_SatO212 0.0502680
ACF_SatO26 0.0496073
CCF_9 0.0488607
ACF_SatO232 0.0479046
CCF_5 0.0477766
ACF_SatO239 0.0477712
ACF_HR40 0.0475236
ACF_HR38 0.0458840
CCF_65 0.0450574
Mean_Q_P2_7 0.0446939
CCF_82 0.0444495
Mean_SC_P2_2 0.0437574
CCF_10 0.0436051
CCF_54 0.0430077
Mean_Q_P2_1 0.0407431
CCF_77 0.0400071
CCF_51 0.0398465
ACF_SatO242 0.0395611
CCF_61 0.0392352
CCF_8 0.0389074
CCF_69 0.0386129
Mean_SC_P2_8 0.0384669
CCF_59 0.0383540
CCF_39 0.0370920
CCF_100 0.0367411
ANALITICA 0.0363072
ACF_SatO220 0.0362900
CCF_6 0.0362880
CCF_34 0.0360518
CCF_25 0.0356857
CCF_52 0.0356771
Mean_SC_P2_7 0.0349555
ACF_SatO247 0.0349150
CCF_24 0.0346040
ACF_SatO229 0.0341181
ACF_SatO222 0.0339541
DERMATITIS 0.0334310
Mean_SC_P2_1 0.0323672
CCF_63 0.0319602
CCF_31 0.0306806
ACF_SatO227 0.0306323
ACF_SatO216 0.0297469
CCF_94 0.0296345
ACF_SatO248 0.0294098
ACF_HR37 0.0293138
CCF_14 0.0283603
ALERGIAS 0.0280388
ACF_SatO219 0.0278517
ACF_SatO224 0.0278134
ACF_HR39 0.0275538
ACF_SatO236 0.0272405
CCF_66 0.0269275
CCF_80 0.0265374
CCF_50 0.0262483
ACF_HR5 0.0260103
CCF_48 0.0258947
CCF_22 0.0258009
CCF_76 0.0257342
CCF_40 0.0255105
CCF_28 0.0251250
CCF_68 0.0242790
CCF_21 0.0242027
CCF_91 0.0241026
CCF_60 0.0237535
CCF_42 0.0236101
ACF_SatO240 0.0233697
ACF_HR17 0.0231830
CCF_11 0.0231028
CCF_88 0.0228509
ACF_HR48 0.0223801
ACF_HR3 0.0223082
CCF_96 0.0220596
ACF_SatO250 0.0218009
CCF_45 0.0217167
PER_SatO2 0.0216335
CCF_64 0.0213333
CCF_49 0.0209374
CCF_67 0.0208801
ACF_HR6 0.0207333
CCF_43 0.0206309
CCF_37 0.0205798
ACF_SatO230 0.0205492
CCF_56 0.0204466
ACF_HR23 0.0203896
ACF_HR47 0.0198057
ACF_SatO221 0.0196876
ACF_SatO228 0.0196388
CCF_58 0.0196101
CCF_84 0.0195795
CCF_74 0.0193186
CCF_73 0.0191612
ACF_HR24 0.0190501
CCF_15 0.0189899
CCF_98 0.0186288
CCF_44 0.0183160
ACF_SatO244 0.0181753
CCF_99 0.0177692
CCF_85 0.0177460
CCF_90 0.0176563
ACF_HR42 0.0175612
CCF_41 0.0175333
ACF_HR21 0.0174976
CCF_7 0.0172689
ACF_SatO234 0.0172275
ACF_HR19 0.0171546
ACF_HR13 0.0171416
CCF_92 0.0171217
ACF_SatO249 0.0168810
CCF_57 0.0168238
TABACO 0.0168000
ACF_SatO235 0.0167556
CCF_62 0.0165762
CCF_26 0.0164784
CCF_35 0.0164768
ACF_SatO225 0.0163234
ACF_HR9 0.0158667
GN_INGRESO 0.0155967
CCF_79 0.0154334
ACF_HR11 0.0148342
CCF_36 0.0140565
ACF_HR50 0.0139950
ACF_SatO231 0.0135699
CCF_27 0.0133185
CCF_72 0.0131653
ACF_HR2 0.0129989
ACF_SatO223 0.0129843
ACF_SatO233 0.0128527
CCF_19 0.0125560
ACF_HR22 0.0124606
CCF_78 0.0124469
ACF_HR4 0.0122882
ACF_HR14 0.0121103
CCF_71 0.0120859
CCF_20 0.0118333
CCF_33 0.0117844
CCF_23 0.0116699
ACF_HR26 0.0116571
ACF_SatO238 0.0114788
ACF_HR41 0.0114573
ACF_SatO246 0.0113919
ACF_SatO237 0.0113590
CCF_53 0.0112000
CCF_87 0.0111644
CCF_89 0.0111509
ACF_HR20 0.0110476
CCF_70 0.0109745
ACF_SatO21 0.0106207
CCF_30 0.0101333
CCF_12 0.0099020
FLUJO2_0_8H 0.0098476
CCF_32 0.0098267
ACF_HR16 0.0096667
CCF_29 0.0096444
CCF_97 0.0095758
EUCL_s_HR 0.0095238
ACF_HR10 0.0094667
PALIVIZUMAB 0.0093123
CCF_38 0.0092766
ACF_HR8 0.0090000
CCF_81 0.0087856
ACF_HR31 0.0087631
CCF_83 0.0087273
CCF_46 0.0087103
ACF_HR32 0.0083502
CCF_16 0.0082467
Mean_SC_P2_3 0.0081667
CCF_95 0.0080197
ACF_HR34 0.0080000
CCF_86 0.0068364
ACF_HR25 0.0068131
ACF_HR44 0.0064000
CCF_18 0.0063728
ACF_HR15 0.0061714
ACF_HR33 0.0060000
ACF_HR36 0.0060000
CCF_93 0.0060000
EUCL_SatO2 0.0057143
ACF_HR29 0.0056667
CCF_47 0.0055867
CCF_75 0.0054937
ACF_HR18 0.0054857
ACF_HR46 0.0054017
ACF_HR30 0.0046667
ACF_c_HR 0.0040000
ACF_HR43 0.0037536
ACF_HR49 0.0035556
CCF_13 0.0033333
CCF_17 0.0032000
ACF_HR27 0.0026667
ACF_SatO241 0.0026667
ACF_HR35 0.0025455
SEXO 0.0020000
PER_HR 0.0019149
ACF_HR12 0.0018889
ENFERMEDAD_BASE 0.0000000
PREMATURIDAD 0.0000000
PAUSAS_APNEA 0.0000000
ACF_SatO2 0.0000000
ACF_HR 0.0000000
EUCL_HR 0.0000000
CCF 0.0000000
ACF_s_HR 0.0000000
PER_s_HR 0.0000000
EUCL_c_HR 0.0000000
PER_c_HR 0.0000000
ACF_HR1 0.0000000
ACF_HR7 0.0000000
ACF_HR45 0.0000000

SMOTE FINAL

head(final.model.df)
##               EDAD PESO EG FR_0_8h FLUJO2_0_8H SAPI_0_8h SCORE_CRUCES_INGRESO
## ACR_11231843  10.0 8.20 41      48        2.00         2                    2
## ADAO_11159808 13.0 7.78 40      56        2.00         3                    3
## AGG_11236448   3.1 5.66 37      44        1.00         2                    2
## AHL_11239959   5.3 8.44 38      65        0.40         3                    2
## AJGD_11119689 15.0 7.00 34      37        2.00         0                    2
## AMP_11228639   1.6 3.80 37      42        0.94         1                    3
##               SCORE_WOOD_DOWNES_INGRESO SEXO PALIVIZUMAB LM DERMATITIS ALERGIAS
## ACR_11231843                          5    0           0  1          0        1
## ADAO_11159808                         7    0           0  0          0        1
## AGG_11236448                          6    0           0  1          0        0
## AHL_11239959                          5    0           0  1          0        0
## AJGD_11119689                         5    0           1  0          0        0
## AMP_11228639                          6    0           0  1          0        0
##               TABACO ENFERMEDAD_BASE RADIOGRAFIA ANALITICA SUERO ETIOLOGIA
## ACR_11231843       0               0           0         0     0         1
## ADAO_11159808      1               1           0         0     1         0
## AGG_11236448       0               0           0         0     0         1
## AHL_11239959       0               0           0         0     0         1
## AJGD_11119689      1               1           0         0     1         1
## AMP_11228639       1               1           0         0     0         0
##               PREMATURIDAD ALIMENTACION SNG GN_INGRESO PAUSAS_APNEA DETERIORO
## ACR_11231843             0            1   0          1            0         0
## ADAO_11159808            0            0   0          1            0         0
## AGG_11236448             0            1   0          1            0         0
## AHL_11239959             0            1   0          0            0         0
## AJGD_11119689            1            1   0          1            0         0
## AMP_11228639             0            1   0          0            0         0
##               ACF_SatO2 EUCL_SatO2 PER_SatO2 ACF_HR EUCL_HR PER_HR CCF ACF_s_HR
## ACR_11231843          1          1         1      1       1      1   1        1
## ADAO_11159808         2          2         1      1       2      1   1        1
## AGG_11236448          1          1         1      1       2      1   1        1
## AHL_11239959          1          2         1      1       2      1   2        1
## AJGD_11119689         1          2         1      1       2      1   1        1
## AMP_11228639          1          1         1      2       1      1   1        2
##               EUCL_s_HR PER_s_HR ACF_c_HR EUCL_c_HR PER_c_HR ACF_HR1   ACF_HR2
## ACR_11231843          1        1        1         1        1       1 0.5747954
## ADAO_11159808         1        1        1         1        1       1 0.6805727
## AGG_11236448          2        2        1         2        1       1 0.7659893
## AHL_11239959          1        1        1         2        1       1 0.7330013
## AJGD_11119689         2        1        1         2        1       1 0.4856503
## AMP_11228639          1        2        2         1        1       1 0.6595950
##                 ACF_HR3   ACF_HR4   ACF_HR5   ACF_HR6   ACF_HR7   ACF_HR8
## ACR_11231843  0.4244149 0.3898310 0.3054550 0.2987537 0.2466085 0.1833401
## ADAO_11159808 0.5935279 0.5085316 0.4365390 0.3660983 0.3061974 0.2645815
## AGG_11236448  0.6522822 0.5752187 0.5026580 0.4312281 0.4003839 0.3616214
## AHL_11239959  0.6576631 0.6158813 0.5836972 0.5097892 0.4615090 0.4253346
## AJGD_11119689 0.4165173 0.3766304 0.3176037 0.3071462 0.2873193 0.2504552
## AMP_11228639  0.6178051 0.6037129 0.5651124 0.5755787 0.5525003 0.5484309
##                 ACF_HR9  ACF_HR10  ACF_HR11  ACF_HR12   ACF_HR13   ACF_HR14
## ACR_11231843  0.1800060 0.1590625 0.1193108 0.1028016 0.08907378 0.02692387
## ADAO_11159808 0.2238202 0.1822452 0.1658125 0.1617351 0.14100383 0.13026706
## AGG_11236448  0.3484616 0.3680116 0.3937240 0.3530302 0.34635666 0.35754880
## AHL_11239959  0.3663603 0.3350366 0.3211704 0.3012808 0.29708129 0.26719489
## AJGD_11119689 0.2382239 0.2213956 0.1841389 0.1555994 0.19398733 0.15437946
## AMP_11228639  0.5151089 0.5260231 0.5356568 0.5412524 0.53812733 0.53846799
##                 ACF_HR15   ACF_HR16     ACF_HR17    ACF_HR18     ACF_HR19
## ACR_11231843  0.02098007 0.01292424 0.0006154294 0.004233393 -0.006757205
## ADAO_11159808 0.13321015 0.13066704 0.1285902414 0.110254753  0.127414548
## AGG_11236448  0.32532530 0.27518679 0.2299503431 0.206868669  0.184265903
## AHL_11239959  0.25676612 0.24100162 0.2420480921 0.198732377  0.197691766
## AJGD_11119689 0.18278084 0.17649073 0.1750699756 0.190130736  0.148089255
## AMP_11228639  0.54239706 0.55188989 0.5360942030 0.531989902  0.471925620
##                   ACF_HR20    ACF_HR21    ACF_HR22     ACF_HR23   ACF_HR24
## ACR_11231843  -0.007036055 -0.01496791 -0.02636549 -0.001402886 0.01324269
## ADAO_11159808  0.087625607  0.07760646  0.09671878  0.104156536 0.10125899
## AGG_11236448   0.151694667  0.14302509  0.12456011  0.131032068 0.15374218
## AHL_11239959   0.174912058  0.19319050  0.21205775  0.206312141 0.18457331
## AJGD_11119689  0.169290584  0.18741791  0.23496989  0.197737591 0.19868995
## AMP_11228639   0.484153622  0.49282071  0.49739289  0.498560780 0.47651016
##                 ACF_HR25   ACF_HR26    ACF_HR27    ACF_HR28    ACF_HR29
## ACR_11231843  0.02086305 0.02388871 -0.01035748 -0.03510893 -0.04784269
## ADAO_11159808 0.07996171 0.07672970  0.09223638  0.06817663  0.09274641
## AGG_11236448  0.13654930 0.11173266  0.10480140  0.09948863  0.06725227
## AHL_11239959  0.17656272 0.19223655  0.17530399  0.13561442  0.14198217
## AJGD_11119689 0.18905268 0.22099258  0.18826589  0.20099552  0.18028969
## AMP_11228639  0.47433498 0.49124269  0.46617148  0.47121446  0.49358464
##                  ACF_HR30     ACF_HR31   ACF_HR32   ACF_HR33   ACF_HR34
## ACR_11231843  -0.05506440 -0.008593307 0.04976843 0.09740572 0.06713914
## ADAO_11159808  0.06786673  0.071169346 0.07319753 0.07839764 0.04368361
## AGG_11236448   0.07242530  0.075139440 0.09715155 0.11831388 0.15119247
## AHL_11239959   0.15516364  0.104568650 0.08413169 0.10251633 0.09851785
## AJGD_11119689  0.14769550  0.165832019 0.11516172 0.12166889 0.13947771
## AMP_11228639   0.45935156  0.460468415 0.43672572 0.43495816 0.42293683
##                 ACF_HR35   ACF_HR36   ACF_HR37   ACF_HR38   ACF_HR39   ACF_HR40
## ACR_11231843  0.04049820 0.01295611 0.03353650 0.02670075 0.05435805 0.05163509
## ADAO_11159808 0.05899972 0.06957130 0.06502349 0.04428139 0.08720689 0.08245975
## AGG_11236448  0.16481099 0.17926504 0.17486282 0.17939105 0.16038387 0.14700455
## AHL_11239959  0.13082361 0.13043217 0.13487428 0.11851440 0.13412057 0.14253952
## AJGD_11119689 0.13992780 0.11603972 0.12556575 0.13822745 0.08786577 0.11241510
## AMP_11228639  0.41076414 0.39748507 0.38724889 0.38415061 0.37327204 0.38356428
##                 ACF_HR41   ACF_HR42    ACF_HR43    ACF_HR44    ACF_HR45
## ACR_11231843  0.04581221 0.03625811 0.006093607 0.015911426 0.065718135
## ADAO_11159808 0.07325789 0.02199331 0.010335726 0.005374176 0.008207619
## AGG_11236448  0.14244461 0.15426774 0.162140790 0.167102275 0.193588145
## AHL_11239959  0.14241159 0.13874827 0.152605118 0.122308403 0.116989766
## AJGD_11119689 0.12355936 0.14482627 0.151343806 0.125769167 0.114462985
## AMP_11228639  0.34057877 0.35432214 0.350061870 0.362196920 0.348115576
##                   ACF_HR46   ACF_HR47   ACF_HR48   ACF_HR49   ACF_HR50
## ACR_11231843  -0.044529286 0.02727482 0.03598471 0.01538854 0.03556238
## ADAO_11159808  0.005354707 0.04384913 0.07181361 0.07248583 0.09748668
## AGG_11236448   0.189538586 0.17553872 0.17449402 0.19356802 0.19300176
## AHL_11239959   0.097048192 0.09234721 0.08137636 0.05817498 0.05753825
## AJGD_11119689  0.147833838 0.11542335 0.14404906 0.07111346 0.10372669
## AMP_11228639   0.328500927 0.32673600 0.28805596 0.28570880 0.27435691
##               ACF_SatO21 ACF_SatO22 ACF_SatO23 ACF_SatO24 ACF_SatO25 ACF_SatO26
## ACR_11231843           1  0.5082890  0.3997243  0.3055021  0.3009323  0.2725452
## ADAO_11159808          1  0.7960148  0.7358783  0.7023573  0.7034097  0.6571457
## AGG_11236448           1  0.4506480  0.4176547  0.3266226  0.3352883  0.2867152
## AHL_11239959           1  0.6522007  0.4130156  0.3200723  0.3440361  0.3568053
## AJGD_11119689          1  0.6469179  0.5880904  0.5481336  0.5084136  0.4652971
## AMP_11228639           1  0.3765707  0.3564648  0.2828661  0.2304710  0.2216612
##               ACF_SatO27 ACF_SatO28 ACF_SatO29 ACF_SatO210 ACF_SatO211
## ACR_11231843   0.2828684  0.2414714  0.2329953  0.18395173   0.1467580
## ADAO_11159808  0.6266538  0.6305916  0.6168577  0.59417999   0.6000893
## AGG_11236448   0.3288047  0.2209685  0.2946372  0.24923513   0.2791107
## AHL_11239959   0.3408829  0.3217067  0.3072727  0.25540711   0.2257664
## AJGD_11119689  0.4792604  0.4275522  0.3935165  0.35060010   0.3330913
## AMP_11228639   0.1820556  0.1759353  0.1038674  0.07915669   0.1212448
##               ACF_SatO212 ACF_SatO213 ACF_SatO214 ACF_SatO215 ACF_SatO216
## ACR_11231843   0.12033122  0.08302370  0.08933466  0.05687640  0.05274341
## ADAO_11159808  0.60607048  0.60015069  0.58930211  0.59429754  0.56563344
## AGG_11236448   0.25321237  0.23780416  0.18830545  0.29476738  0.24013660
## AHL_11239959   0.22431145  0.24252531  0.26020561  0.23401364  0.19351172
## AJGD_11119689  0.30196103  0.25973001  0.21434187  0.22249353  0.21308087
## AMP_11228639   0.08580592  0.08996543  0.07081004  0.05479702  0.00521051
##               ACF_SatO217 ACF_SatO218 ACF_SatO219  ACF_SatO220 ACF_SatO221
## ACR_11231843   0.06126060  0.08978425  0.02651201  0.078210876  0.05633258
## ADAO_11159808  0.55562686  0.55569350  0.55287474  0.553927137  0.53920741
## AGG_11236448   0.29281568  0.24484356  0.27312417  0.178482125  0.22141972
## AHL_11239959   0.17366679  0.14454853  0.11669907  0.149636558  0.16472810
## AJGD_11119689  0.18224214  0.17989537  0.16992608  0.118883946  0.14000960
## AMP_11228639   0.02134299  0.04160247  0.07214742 -0.004522566  0.02031293
##               ACF_SatO222 ACF_SatO223 ACF_SatO224 ACF_SatO225 ACF_SatO226
## ACR_11231843  0.007953371  0.02307094  0.05578342  0.05754983  0.01633989
## ADAO_11159808 0.525401555  0.53638341  0.53743580  0.53454517  0.54348362
## AGG_11236448  0.170925445  0.15660776  0.11918869  0.15172497  0.14043635
## AHL_11239959  0.173167686  0.16825227  0.13524343  0.08820634  0.09185565
## AJGD_11119689 0.165611015  0.12406405  0.14798910  0.20780663  0.16061276
## AMP_11228639  0.111043640  0.09620470  0.07466595  0.05033299  0.01874388
##               ACF_SatO227 ACF_SatO228 ACF_SatO229 ACF_SatO230  ACF_SatO231
## ACR_11231843   0.03651988  0.03014404  0.03653216 0.026885553  0.018244632
## ADAO_11159808  0.52573474  0.51981495  0.50410946 0.503118465  0.488398734
## AGG_11236448   0.13107597  0.09380520  0.10983555 0.073366759  0.122373113
## AHL_11239959   0.09736712  0.07803585  0.06991932 0.089334524  0.053043299
## AJGD_11119689  0.21066161  0.18263507  0.18302649 0.167654826  0.196464213
## AMP_11228639   0.06265166  0.01221945  0.06245386 0.008097181 -0.006432008
##               ACF_SatO232 ACF_SatO233 ACF_SatO234 ACF_SatO235 ACF_SatO236
## ACR_11231843   0.03425803  0.03731653  0.08545823  0.08212560  0.04122430
## ADAO_11159808  0.47360713  0.48528722  0.49035453  0.48337710  0.47154277
## AGG_11236448   0.07317205  0.09085445  0.11009158  0.11357759  0.14531284
## AHL_11239959   0.04793588  0.03307846  0.04347559  0.01617575 -0.02722358
## AJGD_11119689  0.20440416  0.24276020  0.21465966  0.17716046  0.15298218
## AMP_11228639  -0.04581565 -0.01922558  0.02923064 -0.03056929  0.01440266
##               ACF_SatO237 ACF_SatO238 ACF_SatO239 ACF_SatO240 ACF_SatO241
## ACR_11231843   0.02554620  0.04391622  0.02081907 0.058707749  0.03614286
## ADAO_11159808  0.47153753  0.46864689  0.43414012 0.423147789  0.40624091
## AGG_11236448   0.11294811  0.06122085  0.12123779 0.127562364  0.06081561
## AHL_11239959  -0.04350629 -0.03287029  0.02951063 0.069235684  0.06395972
## AJGD_11119689  0.13635243  0.12934334  0.10067326 0.079159171  0.05660577
## AMP_11228639   0.01397162 -0.01940303  0.03909295 0.001048235  0.08743216
##               ACF_SatO242 ACF_SatO243 ACF_SatO244 ACF_SatO245 ACF_SatO246
## ACR_11231843   0.01274100  0.04554895 0.078224804  0.03627727  0.03475069
## ADAO_11159808  0.40820718  0.40425891 0.383480876  0.36664587  0.35974033
## AGG_11236448   0.11997640  0.09993272 0.085353394  0.10265570  0.03053047
## AHL_11239959   0.07775235  0.05163507 0.029005208  0.05880395  0.05077536
## AJGD_11119689  0.03686780  0.00625108 0.004644364  0.03616619  0.02081380
## AMP_11228639   0.01282564  0.06121771 0.114447275  0.06079782  0.07559045
##               ACF_SatO247  ACF_SatO248 ACF_SatO249  ACF_SatO250         CCF_1
## ACR_11231843  -0.01733608 -0.007981913 -0.05040679 -0.034433928  0.0004546919
## ADAO_11159808  0.36459200  0.337971294  0.32803660  0.342673967 -0.0002186104
## AGG_11236448   0.04854476  0.065612107  0.04693021  0.093592552 -0.0002833700
## AHL_11239959   0.04689787  0.040638027  0.04475613  0.039269127  0.0020470889
## AJGD_11119689 -0.01999312 -0.019823713 -0.02207396 -0.063125407  0.0002870475
## AMP_11228639   0.07100495  0.064710841  0.03629374 -0.005938136 -0.0011565578
##                       CCF_2         CCF_3         CCF_4         CCF_5
## ACR_11231843   3.058839e-03  0.0040423309  0.0042604543  2.982095e-03
## ADAO_11159808 -5.096438e-05 -0.0006558311 -0.0004881851 -1.093052e-03
## AGG_11236448  -2.303755e-03 -0.0039102611 -0.0030435705 -6.105371e-03
## AHL_11239959   3.135213e-03  0.0011678422  0.0043663205  4.746182e-03
## AJGD_11119689  1.449830e-04  0.0004194096  0.0013627458  7.789485e-04
## AMP_11228639  -1.132326e-04 -0.0008998812 -0.0020682374  4.315214e-05
##                       CCF_6         CCF_7         CCF_8        CCF_9
## ACR_11231843   0.0008334624 -0.0003565855 -0.0039294457 -0.005828664
## ADAO_11159808 -0.0023416790 -0.0030969976 -0.0045047567 -0.004920112
## AGG_11236448  -0.0102664720 -0.0104252073 -0.0093722480 -0.013352683
## AHL_11239959   0.0050084112  0.0081714646  0.0040492172  0.005643296
## AJGD_11119689  0.0004349491  0.0013404225  0.0019934772  0.002192178
## AMP_11228639  -0.0003246939  0.0014815937  0.0008153953  0.001464314
##                      CCF_10       CCF_11        CCF_12       CCF_13
## ACR_11231843  -0.0057106273 -0.004011007 -0.0016728658  0.001311289
## ADAO_11159808 -0.0071307634 -0.007653171 -0.0081770250 -0.011180442
## AGG_11236448  -0.0142401529 -0.011610016 -0.0161311349 -0.019307868
## AHL_11239959   0.0049587033  0.005221112  0.0117062279  0.007839770
## AJGD_11119689  0.0026054349  0.002589580  0.0021572339  0.001989928
## AMP_11228639   0.0005398061 -0.002547857  0.0002269186 -0.003891850
##                     CCF_14        CCF_15       CCF_16        CCF_17
## ACR_11231843   0.002263739  0.0012834979 -0.001549684  0.0120848708
## ADAO_11159808 -0.011595797 -0.0134216392 -0.015277861 -0.0135348097
## AGG_11236448  -0.016119532 -0.0186554317 -0.029165734 -0.0308020851
## AHL_11239959   0.008463277  0.0135671149  0.013135266  0.0164668146
## AJGD_11119689  0.002819675  0.0027028528  0.001260832  0.0009546951
## AMP_11228639  -0.003790363 -0.0005099842  0.003437316  0.0058448319
##                      CCF_18        CCF_19       CCF_20       CCF_21
## ACR_11231843   1.402588e-02 -0.0005688282 -0.023470192 -0.027826618
## ADAO_11159808 -1.306915e-02 -0.0135452677 -0.013970749 -0.013732218
## AGG_11236448  -3.339237e-02 -0.0385093928 -0.043459668 -0.040046886
## AHL_11239959   9.564670e-03  0.0036165832  0.003357061  0.003704613
## AJGD_11119689  1.751155e-05  0.0001531078 -0.001036495 -0.002918496
## AMP_11228639   3.717335e-03  0.0067373010  0.005783935  0.006381636
##                     CCF_22       CCF_23       CCF_24       CCF_25       CCF_26
## ACR_11231843  -0.003238727  0.015534503  0.008140686 -0.002989521 -0.003111799
## ADAO_11159808 -0.016981566 -0.019808491 -0.019144643 -0.019461626 -0.019192715
## AGG_11236448  -0.038553263 -0.044806016 -0.047894190 -0.046050599 -0.051025772
## AHL_11239959   0.003197076  0.004258693  0.007991851  0.010228070  0.014847014
## AJGD_11119689 -0.001426226 -0.001443727 -0.003804005 -0.003986441 -0.002642870
## AMP_11228639   0.003569838  0.002588991 -0.001658051 -0.002638823 -0.007562818
##                     CCF_27       CCF_28       CCF_29        CCF_30       CCF_31
## ACR_11231843   0.002550076  0.001198391 -0.009986409  0.0051735312  0.004855361
## ADAO_11159808 -0.019299933 -0.020785811 -0.023809481 -0.0235752894 -0.027446698
## AGG_11236448  -0.061949405 -0.069061214 -0.072158563 -0.0926706241 -0.093279037
## AHL_11239959   0.016164241  0.014334421  0.004460782 -0.0004750371 -0.004759260
## AJGD_11119689 -0.004457437 -0.007619795 -0.005406039 -0.0060789668 -0.005123010
## AMP_11228639  -0.012663710 -0.006551292 -0.003371610 -0.0057502575 -0.007770127
##                     CCF_32       CCF_33       CCF_34      CCF_35       CCF_36
## ACR_11231843   0.011590358  0.025815799  0.039122798  0.02979790  0.022310953
## ADAO_11159808 -0.028005272 -0.025929491 -0.024415011 -0.02248390 -0.021127101
## AGG_11236448  -0.081288185 -0.083957724 -0.094464480 -0.07319993 -0.076255893
## AHL_11239959  -0.007601417 -0.018404827 -0.028743262 -0.03336860 -0.031705709
## AJGD_11119689 -0.006110739 -0.005856458 -0.004762471 -0.00726760 -0.004965982
## AMP_11228639  -0.010160671 -0.013466310 -0.019729555 -0.02726893 -0.025642729
##                     CCF_37        CCF_38       CCF_39       CCF_40       CCF_41
## ACR_11231843   0.019525405  0.0267977661  0.019980920  0.021127655  0.023193368
## ADAO_11159808 -0.020999961 -0.0184135111 -0.015064675 -0.015116921 -0.013214738
## AGG_11236448  -0.077424521 -0.0637237815 -0.048401469 -0.050523824 -0.051225010
## AHL_11239959  -0.038499498 -0.0273063815 -0.022250113 -0.019776768 -0.008137230
## AJGD_11119689 -0.001253485  0.0003377283  0.003303363  0.004570806  0.006076082
## AMP_11228639  -0.035918737 -0.0291796161 -0.033971332 -0.035383382 -0.017982636
##                     CCF_42       CCF_43       CCF_44       CCF_45       CCF_46
## ACR_11231843   0.034513084  0.030099924  0.028115605  0.017691357  0.004728547
## ADAO_11159808 -0.009578018 -0.008788311 -0.010873104 -0.011768748 -0.011878859
## AGG_11236448  -0.043811558 -0.049631757 -0.047960897 -0.036007611 -0.032215460
## AHL_11239959  -0.006686933 -0.001441107  0.001068917 -0.005689447 -0.005087718
## AJGD_11119689  0.005484539  0.001759943  0.003981980  0.003448491  0.001105411
## AMP_11228639  -0.019930411 -0.015593445 -0.016972870 -0.014132569 -0.007595835
##                      CCF_47        CCF_48       CCF_49       CCF_50
## ACR_11231843  -0.0023334312  0.0008733767  0.015095606  0.043698740
## ADAO_11159808 -0.0101097684 -0.0120354292 -0.003864899 -0.010719307
## AGG_11236448  -0.0263738728 -0.0163090961 -0.003414610  0.005852453
## AHL_11239959  -0.0118034211 -0.0153702843 -0.014620406 -0.015515727
## AJGD_11119689  0.0006321922  0.0030234418  0.001261241 -0.002953830
## AMP_11228639  -0.0183720294 -0.0009194270 -0.010292795 -0.013804737
##                     CCF_51       CCF_52       CCF_53       CCF_54       CCF_55
## ACR_11231843   0.034964725  0.012489399 -0.032259227 -0.063290091 -0.053885402
## ADAO_11159808 -0.008267396 -0.005222357 -0.011855426 -0.009850531 -0.003641662
## AGG_11236448  -0.001868456 -0.001059504  0.007899973  0.001726306  0.013550687
## AHL_11239959  -0.012886031 -0.020222454 -0.023264809 -0.018102872 -0.019863634
## AJGD_11119689 -0.004101116 -0.005079172 -0.001891924 -0.006949605 -0.006641876
## AMP_11228639  -0.006739147 -0.007855929 -0.005287801 -0.014707599 -0.007742001
##                     CCF_56       CCF_57      CCF_58       CCF_59       CCF_60
## ACR_11231843  -0.044900864 -0.027834995 -0.04257100 -0.029498962 -0.007092104
## ADAO_11159808 -0.006122838 -0.003960258 -0.00639080 -0.012194938 -0.012880817
## AGG_11236448   0.034409008  0.032746626  0.03876397  0.059812204  0.064905549
## AHL_11239959  -0.009675012 -0.013720427 -0.01115499 -0.002991042 -0.007571676
## AJGD_11119689 -0.006902861 -0.009590861 -0.01588806 -0.016025706 -0.007478115
## AMP_11228639  -0.019229791 -0.016685292 -0.01522464 -0.012008412 -0.016714435
##                     CCF_61        CCF_62        CCF_63       CCF_64
## ACR_11231843  -0.004249248 -0.0237963701 -0.0231960976 -0.050146958
## ADAO_11159808 -0.014362355 -0.0078496896 -0.0117905380 -0.009688717
## AGG_11236448   0.049552850  0.0766688491  0.0850389974  0.077232596
## AHL_11239959  -0.001045690 -0.0025250528 -0.0027261169  0.008025126
## AJGD_11119689 -0.009071154 -0.0006867116  0.0005062532  0.003351400
## AMP_11228639  -0.017694422 -0.0231633647 -0.0376834237 -0.031009823
##                     CCF_65       CCF_66       CCF_67       CCF_68       CCF_69
## ACR_11231843  -0.052115220 -0.048797085 -0.026390227 -0.015458548 -0.023928162
## ADAO_11159808 -0.012342044 -0.009288326 -0.009201692 -0.003936041 -0.006874359
## AGG_11236448   0.077041452  0.082122001  0.077159311  0.087121007  0.071732905
## AHL_11239959   0.014233033  0.011265648  0.016722811  0.015076745  0.019796809
## AJGD_11119689  0.008152499 -0.001115105  0.003591707 -0.005624475 -0.002319608
## AMP_11228639  -0.029203701 -0.022526338 -0.020968759 -0.007972429 -0.014272650
##                      CCF_70        CCF_71        CCF_72        CCF_73
## ACR_11231843  -0.0067536429 -0.0107471883 -0.0050098466 -0.0084895781
## ADAO_11159808 -0.0022076225  0.0005394056 -0.0008090407  0.0007763252
## AGG_11236448   0.0892125073  0.0691595862  0.0650604697  0.0674499168
## AHL_11239959   0.0255843728  0.0268484078  0.0260525238  0.0173458911
## AJGD_11119689 -0.0004026998 -0.0011609980 -0.0028597845 -0.0120831827
## AMP_11228639  -0.0184297325 -0.0135004319 -0.0126873388 -0.0100442896
##                      CCF_74        CCF_75       CCF_76       CCF_77
## ACR_11231843  -0.0044494281  0.0038419970  0.012179987  0.021109933
## ADAO_11159808  0.0004260694  0.0001886526 -0.006884199 -0.003154894
## AGG_11236448   0.0772306014  0.0575508828  0.061011000  0.056680470
## AHL_11239959   0.0156477079  0.0194211297  0.015635446  0.022641596
## AJGD_11119689 -0.0113133268 -0.0137173465 -0.009793682 -0.016502857
## AMP_11228639  -0.0170506385 -0.0147850900 -0.022828706 -0.027329152
##                     CCF_78       CCF_79       CCF_80       CCF_81       CCF_82
## ACR_11231843   0.019716500  0.010810144 -0.007344863 -0.025795314 -0.016740661
## ADAO_11159808 -0.008710207 -0.003748353 -0.004351773 -0.004202934 -0.002922812
## AGG_11236448   0.048902849  0.037629264  0.036355374  0.026828953  0.024915464
## AHL_11239959   0.023206646  0.030377997  0.033418869  0.036958460  0.048105978
## AJGD_11119689 -0.011393416 -0.013597074 -0.011733272 -0.003035092 -0.007107151
## AMP_11228639  -0.028342411 -0.029764400 -0.034194206 -0.036292493 -0.027521342
##                      CCF_83        CCF_84       CCF_85        CCF_86
## ACR_11231843  -0.0074376644 -0.0202051183 -0.040368282 -0.0421427932
## ADAO_11159808  0.0012433831 -0.0041846245 -0.012154401 -0.0001256478
## AGG_11236448   0.0400122043  0.0477331734  0.027460311  0.0227268736
## AHL_11239959   0.0571783884  0.0553257144  0.055676740  0.0603232663
## AJGD_11119689  0.0003619212 -0.0008142114  0.004651249  0.0185391318
## AMP_11228639  -0.0382333992 -0.0318572180 -0.016810513 -0.0156801982
##                     CCF_87        CCF_88       CCF_89       CCF_90      CCF_91
## ACR_11231843  -0.037992387 -0.0402962341 -0.036706207 -0.023937107 -0.04455039
## ADAO_11159808  0.002372556  0.0009430972  0.003312549  0.004184715  0.01057152
## AGG_11236448  -0.010222478 -0.0196085035 -0.009713435 -0.027188223 -0.02529531
## AHL_11239959   0.057482791  0.0535364550  0.053775830  0.054227796  0.05554975
## AJGD_11119689  0.011099193  0.0262233816  0.025924736  0.024009404  0.02563622
## AMP_11228639  -0.015800794 -0.0144179732  0.008899564 -0.007586326 -0.01486855
##                     CCF_92       CCF_93       CCF_94      CCF_95       CCF_96
## ACR_11231843  -0.056521970 -0.074324801 -0.083478430 -0.10681707 -0.125702657
## ADAO_11159808  0.010937359  0.008935026  0.011980065  0.01243704  0.008419520
## AGG_11236448  -0.021398218 -0.021074770 -0.020875257 -0.01682383 -0.045337979
## AHL_11239959   0.052201281  0.062686742  0.062028477  0.06160279  0.052983340
## AJGD_11119689  0.023432609  0.027377835  0.021037581  0.02992081  0.023016775
## AMP_11228639  -0.004057226 -0.025856927 -0.004451642 -0.02393063 -0.003333842
##                    CCF_97      CCF_98      CCF_99      CCF_100 Mean_SC_P2_1
## ACR_11231843  -0.12003382 -0.11782146 -0.09759510 -0.076168771   0.13118665
## ADAO_11159808  0.01427251  0.01084089  0.01162336  0.001268052  -0.14017217
## AGG_11236448  -0.02380581 -0.01616292 -0.01008677 -0.005673891   1.03293097
## AHL_11239959   0.05330678  0.04825501  0.03610457  0.022415838   0.93119030
## AJGD_11119689  0.02479881  0.02398495  0.01281251  0.024077587  -0.08247117
## AMP_11228639  -0.01668824 -0.01192308 -0.01210488 -0.033906625   0.48068506
##               Mean_SC_P2_2 Mean_SC_P2_3 Mean_SC_P2_4 Mean_SC_P2_5 Mean_SC_P2_6
## ACR_11231843    0.59114972   0.19165128    0.1074327   -0.1365853  -0.49505415
## ADAO_11159808   0.57299155   0.70368445   -0.5483858   -0.3450857  -0.27893253
## AGG_11236448   -0.06342918  -0.55589376   -0.6340789   -0.2959537  -0.05429066
## AHL_11239959    0.75409673  -0.01756826   -0.4525594    0.2261159  -0.45365939
## AJGD_11119689   0.59184154   0.85456078   -0.1009241   -0.4785830  -0.58804932
## AMP_11228639    1.21058864   0.27439637   -1.0158997   -0.6601790  -0.53567673
##               Mean_SC_P2_7 Mean_SC_P2_8 Mean_SatO2_P2_1 Mean_SatO2_P2_2
## ACR_11231843   -0.03077218   -0.3590087        98.40000        94.43333
## ADAO_11159808  -0.15308011    0.1889803        97.16667        96.13333
## AGG_11236448    0.05537156    0.5153436        96.79193        97.28333
## AHL_11239959   -0.13687090   -0.8507450        97.35000        96.43333
## AJGD_11119689  -0.07746699   -0.1189078        99.52333        98.71667
## AMP_11228639   -0.12746166    0.3735470        88.58509        90.36667
##               Mean_SatO2_P2_3 Mean_SatO2_P2_4 Mean_SatO2_P2_5 Mean_SatO2_P2_6
## ACR_11231843         95.38333        96.05000        94.60000        95.66667
## ADAO_11159808        97.00000        99.43333        98.81667        97.98333
## AGG_11236448         95.86667        94.51667        92.90000        95.75000
## AHL_11239959         95.55585        96.10000        97.40000        97.46667
## AJGD_11119689        97.18333        98.76667        97.51667        96.85000
## AMP_11228639         86.86667        84.90000        86.58333        87.50000
##               Mean_SatO2_P2_7 Mean_SatO2_P2_8 Mean_Q_P2_1 Mean_Q_P2_2
## ACR_11231843         95.31667        93.80000   0.9542725   0.9819488
## ADAO_11159808        99.11667        98.93333   0.5570747   0.7249887
## AGG_11236448         94.80000        95.70000   0.4867412   0.2524360
## AHL_11239959         97.68333        96.93333   0.7932506   0.7302792
## AJGD_11119689        99.35000        99.85000   0.2655324   0.5257116
## AMP_11228639         87.04897        86.63123   0.7867395   0.8954698
##               Mean_Q_P2_3 Mean_Q_P2_4 Mean_Q_P2_5 Mean_Q_P2_6 Mean_Q_P2_7
## ACR_11231843   0.96740144  0.95919540   0.9542325   0.9390559   0.9541947
## ADAO_11159808  0.69016171  0.45262153   0.5011029   0.5244741   0.5503328
## AGG_11236448   0.06112992  0.05768611   0.1434693   0.1469481   0.1751905
## AHL_11239959   0.50100816  0.36737763   0.5616739   0.3659843   0.4562215
## AJGD_11119689  0.62585176  0.29639805   0.1762554   0.1896599   0.2939501
## AMP_11228639   0.72774806  0.45976473   0.5411093   0.5783251   0.6558104
##               Mean_Q_P2_8
## ACR_11231843    0.9264839
## ADAO_11159808   0.6297041
## AGG_11236448    0.3250607
## AHL_11239959    0.2390536
## AJGD_11119689   0.2733735
## AMP_11228639    0.7613643
final.model.df <- as.data.frame(sapply(final.model.df, as.numeric))
final.model.df$DETERIORO <- factor(final.model.df$DETERIORO)
newMWMOTE_FIN <- imbalance::oversample(final.model.df, ratio = 0.85, method = "SMOTE", classAttr = "DETERIORO")
newMWMOTE_FIN <- data.frame(newMWMOTE_FIN)
pos_1 <- get_column_position(newMWMOTE_FIN, "SAPI_0_8h")
pos_2 <- get_column_position(newMWMOTE_FIN, "PER_c_HR")
pos_3 <- get_column_position(newMWMOTE_FIN, "DETERIORO")
columns_to_round <- setdiff(pos_1:pos_2, pos_3)
newMWMOTE_FIN[, columns_to_round] <- lapply(newMWMOTE_FIN[, columns_to_round], function(x) round(x, 1))
col_names_factor <- names(newMWMOTE_FIN[pos_1:pos_2])
newMWMOTE_FIN[col_names_factor] <- lapply(newMWMOTE_FIN[col_names_factor] , factor)
table(newMWMOTE_FIN$DETERIORO)
## 
##  1  2 
## 52 45
set.seed(123)
data_partition_FIN_P2 <- caret::createDataPartition(newMWMOTE_FIN$DETERIORO, 
                                  p = .7, 
                                  list = FALSE, 
                                  times = 1)

train_data_FIN_P2_SM <- newMWMOTE_FIN[data_partition_FIN_P2, ]
test_data_FIN_P2_SM <- newMWMOTE_FIN[-data_partition_FIN_P2, ]
set.seed(123)
RF_FIN_SM <- randomForest::randomForest(DETERIORO ~ ., data = train_data_FIN_P2_SM, importance = TRUE)
print(RF_FIN_SM)
## 
## Call:
##  randomForest(formula = DETERIORO ~ ., data = train_data_FIN_P2_SM,      importance = TRUE) 
##                Type of random forest: classification
##                      Number of trees: 500
## No. of variables tried at each split: 16
## 
##         OOB estimate of  error rate: 7.25%
## Confusion matrix:
##    1  2 class.error
## 1 34  3  0.08108108
## 2  2 30  0.06250000
#-----ERORES DE PREDICCION TEST--------#
DETERIORO2p = predict(RF_FIN_SM, newdata = test_data_FIN_P2_SM)

tabla01=table(test_data_FIN_P2_SM$DETERIORO,DETERIORO2p)
tabla01
##    DETERIORO2p
##      1  2
##   1 15  0
##   2  1 12
err <- (tabla01[1,2]+tabla01[2,1])/sum(tabla01)
print(err)
## [1] 0.03571429
kable(randomForest::importance(RF_FIN_SM, type =1)[order(randomForest::importance(RF_FIN_SM, type =1), decreasing = TRUE),], col.names = "MeanDecreaseAccuarcy")
MeanDecreaseAccuarcy
ALIMENTACION 6.9720536
SNG 6.7252368
SCORE_CRUCES_INGRESO 6.5085197
SCORE_WOOD_DOWNES_INGRESO 5.7661905
SUERO 5.1861274
ANALITICA 5.1533810
RADIOGRAFIA 5.0125568
FLUJO2_0_8H 4.6985155
CCF_62 4.5963388
SAPI_0_8h 4.5801181
CCF_59 4.4351829
ACF_SatO214 4.3037114
ACF_SatO222 4.2876847
LM 4.0864560
Mean_Q_P2_4 4.0461377
CCF_65 3.9152608
ACF_SatO25 3.9135036
CCF_10 3.8344280
CCF_63 3.8165531
Mean_Q_P2_3 3.4795662
Mean_Q_P2_5 3.4765987
CCF_60 3.4454279
ACF_SatO28 3.3727179
CCF_68 3.2427037
CCF_64 3.1859343
CCF_67 3.1568142
CCF_56 3.1031926
Mean_SatO2_P2_5 3.0716316
CCF_54 3.0247449
Mean_SatO2_P2_2 2.9639177
ETIOLOGIA 2.9243535
EUCL_SatO2 2.9082900
PESO 2.8781066
CCF_66 2.8711409
TABACO 2.8252063
CCF_58 2.7964814
CCF_53 2.7534002
ACF_SatO211 2.6753726
CCF_83 2.6365736
ACF_SatO22 2.5999093
ACF_SatO215 2.5716494
ACF_HR34 2.5118231
CCF_45 2.4867862
ACF_SatO220 2.4063604
ALERGIAS 2.3745713
FR_0_8h 2.3318808
SEXO 2.3177804
ACF_SatO29 2.3106385
ACF_HR9 2.2651109
CCF_28 2.2634952
Mean_SatO2_P2_6 2.2525329
CCF_39 2.2440310
CCF_85 2.2282994
CCF_61 2.2234326
CCF_84 2.2001097
Mean_Q_P2_8 2.1832704
CCF_97 2.1647312
CCF_38 2.1534846
ACF_SatO23 2.1522892
Mean_Q_P2_7 2.1067225
CCF_52 2.1020382
CCF_31 2.0680204
CCF_98 2.0525398
ACF_HR36 2.0059355
CCF_29 2.0037999
Mean_SC_P2_3 1.9936356
CCF_55 1.9772813
CCF_69 1.9647871
CCF_93 1.9510816
CCF_99 1.9453378
Mean_SC_P2_6 1.9415814
ACF_SatO221 1.9309839
ACF_SatO216 1.9237569
CCF_86 1.9097235
CCF_46 1.8929765
ACF_SatO224 1.8886379
CCF_20 1.8878190
PER_s_HR 1.8805768
ACF_HR2 1.8629005
Mean_Q_P2_6 1.8512359
CCF_100 1.8465844
CCF_49 1.8443332
CCF_95 1.8433800
CCF_96 1.8421002
ACF_HR47 1.8032631
CCF_90 1.7680848
ACF_SatO212 1.7574683
CCF_16 1.7531565
ACF_HR18 1.7369514
ACF_HR40 1.7281036
CCF_22 1.7158692
Mean_Q_P2_2 1.7085262
ENFERMEDAD_BASE 1.7039704
CCF_78 1.7016006
ACF_HR26 1.6752312
Mean_SatO2_P2_8 1.6649218
Mean_SC_P2_8 1.6609172
CCF_40 1.6387887
ACF_HR21 1.6320949
ACF_HR16 1.6259448
CCF_76 1.6236417
ACF_SatO210 1.5942061
ACF_HR33 1.5863327
EUCL_HR 1.5738765
CCF_9 1.5728056
CCF_43 1.5713131
CCF_87 1.5039326
Mean_Q_P2_1 1.4949317
CCF_13 1.4692301
CCF_4 1.4300421
CCF_33 1.4170505
CCF_24 1.4170505
Mean_SC_P2_1 1.4167286
ACF_HR44 1.4158171
ACF_SatO247 1.4145954
CCF_73 1.4131633
DERMATITIS 1.4128599
CCF_44 1.4116353
ACF_SatO250 1.4097011
ACF_HR22 1.4015297
CCF_94 1.3951391
CCF_11 1.3871488
CCF_50 1.3811146
CCF_7 1.3805889
CCF_51 1.3783671
ACF_HR45 1.3767339
ACF_HR15 1.3722325
EUCL_c_HR 1.3651572
CCF_15 1.3638601
CCF_27 1.3440623
CCF_57 1.3384082
CCF_42 1.3114644
Mean_SatO2_P2_7 1.2975218
ACF_HR38 1.2886768
ACF_SatO213 1.2865213
CCF_79 1.2669398
CCF_35 1.2597740
ACF_HR7 1.2529319
CCF_48 1.2471093
CCF_8 1.2240633
ACF_HR31 1.2144654
CCF_92 1.2049558
CCF_17 1.1379035
ACF_SatO235 1.1322779
ACF_HR39 1.1253424
CCF_25 1.1075275
ACF_HR37 1.1017306
CCF_77 1.0924309
ACF_SatO229 1.0906204
PER_SatO2 1.0673916
EG 1.0602344
Mean_SatO2_P2_4 1.0486074
CCF_19 1.0251890
ACF_SatO242 1.0106206
PALIVIZUMAB 1.0010015
ACF_HR 1.0010015
CCF 1.0010015
EUCL_s_HR 1.0010015
ACF_HR12 1.0010015
ACF_HR14 1.0010015
ACF_HR17 1.0010015
ACF_HR19 1.0010015
ACF_HR29 1.0010015
ACF_HR43 1.0010015
ACF_HR46 1.0010015
ACF_SatO223 1.0010015
ACF_SatO232 1.0010015
ACF_SatO236 1.0010015
ACF_SatO243 1.0010015
ACF_SatO248 1.0010015
ACF_SatO249 1.0010015
CCF_36 1.0010015
CCF_72 1.0010015
CCF_88 1.0010015
GN_INGRESO 1.0010015
ACF_HR10 1.0010015
ACF_HR20 1.0010015
ACF_HR41 1.0010015
ACF_SatO225 1.0010015
ACF_SatO231 1.0010015
CCF_12 1.0010015
CCF_21 1.0010015
CCF_47 1.0010015
CCF_71 1.0010015
CCF_74 1.0010015
CCF_81 1.0010015
CCF_82 1.0010015
EDAD 0.9480136
ACF_HR49 0.9190102
ACF_SatO24 0.8953170
ACF_HR4 0.8538252
ACF_SatO219 0.8174294
ACF_SatO227 0.7981979
ACF_HR42 0.7975355
Mean_SC_P2_7 0.7862244
ACF_SatO246 0.7828199
CCF_37 0.6803147
ACF_HR30 0.6654846
ACF_SatO230 0.6472409
ACF_HR23 0.6389674
CCF_23 0.6206423
CCF_70 0.6114666
CCF_2 0.5783354
CCF_3 0.5515189
ACF_SatO26 0.4343361
ACF_HR6 0.3777749
ACF_SatO240 0.3755001
CCF_34 0.3755001
ACF_HR32 0.3721557
ACF_HR5 0.3562604
Mean_SatO2_P2_3 0.3437564
ACF_SatO27 0.2843134
ACF_SatO239 0.2139997
Mean_SC_P2_5 0.1385422
ACF_HR8 0.1127782
ACF_HR3 0.0864233
CCF_26 0.0864233
CCF_30 0.0666626
ACF_SatO217 0.0267040
PREMATURIDAD 0.0000000
PAUSAS_APNEA 0.0000000
ACF_SatO2 0.0000000
PER_HR 0.0000000
ACF_c_HR 0.0000000
PER_c_HR 0.0000000
ACF_HR1 0.0000000
ACF_HR11 0.0000000
ACF_HR13 0.0000000
ACF_HR50 0.0000000
ACF_SatO21 0.0000000
ACF_SatO238 0.0000000
CCF_5 0.0000000
CCF_32 0.0000000
CCF_41 0.0000000
Mean_SatO2_P2_1 -0.0737378
ACF_SatO241 -0.0770249
ACF_HR27 -0.1143149
CCF_14 -0.1967663
CCF_89 -0.2017277
CCF_80 -0.4106929
CCF_91 -0.4111071
ACF_SatO234 -0.5283826
ACF_HR24 -0.6023864
ACF_SatO218 -0.6060617
CCF_1 -0.6219050
ACF_SatO226 -0.7465793
Mean_SC_P2_2 -0.7923459
ACF_SatO245 -0.8620769
ACF_HR25 -1.0010015
ACF_HR28 -1.0010015
ACF_HR35 -1.0010015
ACF_HR48 -1.0010015
ACF_s_HR -1.0010015
ACF_SatO228 -1.0010015
ACF_SatO244 -1.0010015
CCF_18 -1.2594942
CCF_75 -1.2669398
ACF_SatO233 -1.3080942
CCF_6 -1.4141611
ACF_SatO237 -1.4159994
Mean_SC_P2_4 -1.4170505

IMPROVED FINAL MODEL SMOTE

# Tratamiento de datos
# ==============================================================================
library(ISLR)
library(dplyr)
library(tidyr)
library(skimr)

# Gráficos
# ==============================================================================
library(ggplot2)
library(ggpubr)

# Preprocesado y modelado
# ==============================================================================
library(tidymodels)
library(ranger)
library(doParallel)
set.seed(123)
trainIndex <- caret::createDataPartition(newMWMOTE_FIN$DETERIORO, 
                                  p = .7, 
                                  list = FALSE, 
                                  times = 1)
datos_train <- newMWMOTE_FIN[trainIndex, ]
datos_test <- newMWMOTE_FIN[-trainIndex, ]

Esta sección crea un grid de hiperparámetros con diferentes combinaciones de num_trees (número de árboles), mtry (variables a considerar en cada división del árbol) y max_depth (profundidad máxima del árbol) para un modelo de bosque aleatorio

# Grid de hiperparámetros evaluados
# ==============================================================================
param_grid = expand_grid(
                'num_trees' = c(50, 100, 500, 1000, 5000),
                'mtry'      = c(3, 5, 7, ncol(datos_train)-1),
                'max_depth' = c(1, 3, 10, 20)
                
             )

En esta sección, se ajusta un modelo de bosque aleatorio para cada combinación de hiperparámetros en el grid. Luego, se calcula el error out-of-bag (OOB) para cada modelo y se almacena en un vector oob_error

# Loop para ajustar un modelo con cada combinación de hiperparámetros
# ==============================================================================

oob_error = rep(NA, nrow(param_grid))

for(i in 1:nrow(param_grid)){

  modelo <- ranger(
              formula   = DETERIORO ~ .,
              data      = datos_train, 
              num.trees = param_grid$num_trees[i],
              mtry      = param_grid$mtry[i],
              max.depth = param_grid$max_depth[i],
              seed      = 123
            )

 oob_error[i] <- modelo$prediction.error
}

Aquí se crean resultados que contienen las combinaciones de hiperparámetros junto con sus errores OOB correspondientes. Luego, se ordenan los resultados por error OOB de menor a mayor.

# Resultados
# ==============================================================================
resultados <- param_grid
resultados$oob_error <- oob_error
resultados <- resultados %>% arrange(oob_error) # Order
head(resultados)
## # A tibble: 6 × 4
##   num_trees  mtry max_depth oob_error
##       <dbl> <dbl>     <dbl>     <dbl>
## 1        50   261         3    0.0435
## 2        50   261        10    0.0435
## 3        50   261        20    0.0435
## 4       100   261         3    0.0435
## 5       100   261        10    0.0435
## 6       100   261        20    0.0435

Finalmente, esta sección muestra los mejores hiperparámetros encontrados según el error OOB más bajo.

# Mejores hiperparámetros por out-of-bag error
# ==============================================================================
head(resultados, 1)
## # A tibble: 1 × 4
##   num_trees  mtry max_depth oob_error
##       <dbl> <dbl>     <dbl>     <dbl>
## 1        50   261         3    0.0435

En esta sección, se define el modelo que se utilizará, que es un modelo de bosque aleatorio (rand_forest) para clasificación. Los hiperparámetros mtry y trees se establecen como parámetros a sintonizar utilizando la función tune(). También se configuran otras opciones del modelo, como el motor (engine) que se utilizará (en este caso, “ranger”), la profundidad máxima del árbol (max.depth), la importancia de las variables (importance), y una semilla aleatoria para la reproducibilidad

# DEFINICIÓN DEL MODELO Y DE LOS HIPERPARÁMETROS A OPTIMIZAR
# ==============================================================================
modelo <- rand_forest(
             mode  = "classification",
             mtry  = tune(),
             trees = tune()
          ) %>%
          set_engine(
            engine     = "ranger",
            max.depth  = tune(),
            importance = "none",
            seed       = 123
          )

En esta parte, se define el preprocesamiento de los datos utilizando la función recipe. En este caso, no se realiza ningún preprocesamiento, por lo que el transformer solo contiene la definición de la fórmula (DETERIORO ~ .) y los datos de entrenamiento.

# DEFINICIÓN DEL PREPROCESADO
# ==============================================================================
# En este caso no hay preprocesado, por lo que el transformer solo contiene
# la definición de la fórmula y los datos de entrenamiento.
transformer <- recipe(
                  formula = DETERIORO ~ .,
                  data    =  datos_train
               )

Aquí se define la estrategia de validación cruzada para evaluar el modelo. Se utiliza una validación cruzada estratificada de 5 pliegues (vfold_cv) para dividir los datos de entrenamiento en conjuntos de entrenamiento y validación. La estratificación se realiza en función de la variable objetivo DETERIORO

# DEFINICIÓN DE LA ESTRATEGIA DE VALIDACIÓN Y CREACIÓN DE PARTICIONES
# ==============================================================================
set.seed(123)
cv_folds <- vfold_cv(
              data    = datos_train,
              v       = 5,
              strata  = DETERIORO
            )

Se crea un flujo de trabajo (workflow) que combina el preprocesamiento (transformer) y el modelo (modelo) definidos anteriormente. Esto establece el flujo de trabajo completo para entrenar y evaluar el modelo

# WORKFLOW
# ==============================================================================
workflow_modelado <- workflow() %>%
                     add_recipe(transformer) %>%
                     add_model(modelo)

Se crea un grid de hiperparámetros que especifica las diferentes combinaciones de trees, mtry, y max.depth que se probarán durante la optimización de hiperparámetros

# GRID DE HIPERPARÁMETROS
# ==============================================================================
hiperpar_grid <- expand_grid(
                  'trees'     = c(50, 100, 500, 1000, 5000),
                  'mtry'      = c(3, 5, 7, ncol(datos_train)-1),
                  'max.depth' = c(1, 3, 10, 20)
                 )

En esta parte se ejecuta la optimización de hiperparámetros utilizando tune_grid. Se ajusta el flujo de trabajo (workflow_modelado) en múltiples combinaciones de hiperparámetros utilizando la estrategia de validación cruzada definida anteriormente. La métrica de evaluación utilizada es la exactitud (accuracy).

# EJECUCIÓN DE LA OPTIMIZACIÓN DE HIPERPARÁMETROS
# ==============================================================================
cl <- makePSOCKcluster(parallel::detectCores() - 1)
registerDoParallel(cl)

grid_fit <- tune_grid(
              object    = workflow_modelado,
              resamples = cv_folds,
              metrics   = metric_set(accuracy),
              grid      = hiperpar_grid
            )

stopCluster(cl)

En esta parte se ejecuta la optimización de hiperparámetros utilizando tune_grid. Se ajusta el flujo de trabajo (workflow_modelado) en múltiples combinaciones de hiperparámetros utilizando la estrategia de validación cruzada definida anteriormente. La métrica de evaluación utilizada es la exactitud (accuracy).

# Mejores hiperparámetros una vez realizada la validación cruzada
# ==============================================================================
show_best(grid_fit, metric = "accuracy", n = 1)
## # A tibble: 1 × 9
##    mtry trees max.depth .metric  .estimator  mean     n std_err .config         
##   <dbl> <dbl>     <dbl> <chr>    <chr>      <dbl> <int>   <dbl> <chr>           
## 1     3   100        10 accuracy binary     0.954     5  0.0308 Preprocessor1_M…
FIN_SM <- randomForest::randomForest(DETERIORO ~ ., data = datos_train, mtry = 5, trees = 100, max.depth=10, importance = TRUE)
print(FIN_SM)
## 
## Call:
##  randomForest(formula = DETERIORO ~ ., data = datos_train, mtry = 5,      trees = 100, max.depth = 10, importance = TRUE) 
##                Type of random forest: classification
##                      Number of trees: 500
## No. of variables tried at each split: 5
## 
##         OOB estimate of  error rate: 4.35%
## Confusion matrix:
##    1  2 class.error
## 1 36  1  0.02702703
## 2  2 30  0.06250000
#-----ERORES DE PREDICCION TEST--------#
DETERIORO2p = predict(FIN_SM, newdata = datos_test)
mat_confusion=table(datos_test$DETERIORO,DETERIORO2p)
err <- (mat_confusion[1,2]+mat_confusion[2,1])/sum(mat_confusion)
print(err)
## [1] 0.03571429
kable(randomForest::importance(FIN_SM, type =1)[order(randomForest::importance(FIN_SM, type =1), decreasing = TRUE),], col.names = "MeanDecreaseGini")
MeanDecreaseGini
SUERO 5.1923059
SCORE_CRUCES_INGRESO 5.1873727
FLUJO2_0_8H 4.9676709
Mean_Q_P2_4 4.5721831
ALIMENTACION 4.4992618
SCORE_WOOD_DOWNES_INGRESO 4.3541931
RADIOGRAFIA 4.1588694
ANALITICA 4.1175073
LM 4.0974355
ACF_SatO29 3.9688656
ACF_SatO214 3.9620044
SNG 3.8703263
CCF_10 3.8674180
ACF_SatO222 3.7631803
CCF_63 3.7132444
Mean_SatO2_P2_2 3.6875307
EUCL_SatO2 3.5539425
CCF_9 3.5448691
CCF_62 3.4818378
ACF_SatO25 3.4762352
CCF_53 3.4588823
Mean_Q_P2_7 3.3869423
CCF_59 3.3851267
Mean_Q_P2_5 3.3607339
PER_s_HR 3.3373141
CCF_61 3.2781998
ENFERMEDAD_BASE 3.2218319
CCF_65 3.1838654
Mean_Q_P2_8 3.1581342
CCF_64 3.1235662
Mean_Q_P2_3 3.0953074
SAPI_0_8h 3.0683979
Mean_SatO2_P2_6 3.0502666
CCF_55 3.0491263
CCF_60 3.0349077
CCF_58 3.0012102
ACF_HR2 2.9993849
CCF_67 2.9733269
ACF_SatO28 2.9665019
ACF_SatO26 2.9082642
ACF_SatO22 2.8860969
CCF_83 2.8731379
CCF_100 2.8176812
CCF_40 2.8126416
CCF_69 2.7877640
CCF_79 2.7704629
EUCL_c_HR 2.7441116
ETIOLOGIA 2.7212681
ACF_SatO220 2.6911765
CCF_98 2.6893534
CCF_1 2.6704672
CCF_56 2.6549461
CCF_51 2.6400872
CCF_80 2.6267946
ACF_SatO215 2.6155108
CCF_86 2.5854653
CCF_68 2.5687651
CCF_99 2.5135154
CCF_30 2.5021366
CCF_8 2.4968772
Mean_Q_P2_6 2.4435665
CCF_39 2.4259988
CCF_84 2.4113968
ACF_HR8 2.3528595
CCF_28 2.3499833
EUCL_HR 2.3482226
CCF_13 2.3429653
CCF_66 2.3312670
CCF_45 2.2860186
ACF_SatO221 2.2691946
CCF_57 2.2480290
Mean_SatO2_P2_1 2.2435827
CCF_97 2.2178558
TABACO 2.2118599
CCF_31 2.1975750
ACF_HR9 2.1817093
CCF_50 2.1721618
CCF_6 2.1647058
CCF_48 2.1622868
CCF_70 2.1595616
CCF_44 2.1561620
ACF_HR45 2.1479780
CCF_17 2.1423264
ACF_SatO213 2.1390582
CCF_43 2.1157970
CCF_77 2.1103816
ACF_SatO246 2.1063409
CCF_93 2.1034866
ACF_SatO217 2.0885890
ACF_HR19 2.0829084
PESO 2.0672884
ACF_SatO211 2.0646767
Mean_Q_P2_2 2.0578182
CCF_18 2.0522241
CCF_26 2.0495418
CCF_87 2.0438746
PER_SatO2 2.0281565
ALERGIAS 2.0034312
CCF_35 1.9665988
ACF_SatO223 1.9434195
ACF_HR18 1.9353453
ACF_HR12 1.9225845
CCF_32 1.9173016
CCF_89 1.9119846
CCF_42 1.9023076
CCF_49 1.9015261
CCF_24 1.8945231
CCF_95 1.8884539
ACF_HR6 1.8826089
CCF_20 1.8619703
FR_0_8h 1.8533632
ACF_HR24 1.8380462
CCF_11 1.8224838
ACF_HR4 1.8192573
ACF_SatO224 1.8160857
CCF_78 1.8160717
CCF 1.8109667
ACF_SatO249 1.7894285
CCF_27 1.7837456
CCF_94 1.7796006
CCF_41 1.7762870
ACF_SatO23 1.7736943
ACF_SatO245 1.7735201
CCF_52 1.7407094
CCF_7 1.7369679
CCF_74 1.7353233
ACF_HR37 1.7227938
ACF_SatO210 1.7009007
PALIVIZUMAB 1.6829912
ACF_SatO27 1.6725775
ACF_HR32 1.6712792
ACF_HR22 1.6645013
ACF_SatO227 1.6633293
CCF_90 1.6571970
ACF_HR36 1.6566318
ACF_SatO226 1.6351606
EG 1.6277837
Mean_SatO2_P2_8 1.6223132
SEXO 1.6050346
ACF_HR7 1.6036713
Mean_SC_P2_7 1.6023852
ACF_SatO230 1.5906361
Mean_SC_P2_2 1.5866112
Mean_SatO2_P2_5 1.5861582
CCF_76 1.5137207
ACF_HR47 1.4926253
ACF_SatO212 1.4737408
ACF_HR35 1.4592595
CCF_34 1.4531694
CCF_88 1.4478368
CCF_46 1.4443381
ACF_HR40 1.4290404
CCF_73 1.4250098
DERMATITIS 1.4168316
ACF_SatO232 1.4167771
ACF_HR 1.4159994
Mean_SC_P2_1 1.4121361
CCF_91 1.3977325
Mean_Q_P2_1 1.3919156
ACF_HR38 1.3855403
ACF_s_HR 1.3831757
CCF_71 1.3785275
ACF_HR13 1.3762166
CCF_47 1.3643369
CCF_19 1.3450945
CCF_12 1.3440623
ACF_HR5 1.3307982
ACF_HR21 1.3299366
CCF_72 1.3280557
ACF_SatO219 1.3263386
CCF_38 1.3229841
CCF_37 1.3145831
ACF_SatO218 1.3080942
ACF_HR17 1.3052298
ACF_HR16 1.3049276
CCF_21 1.2950216
ACF_HR39 1.2798776
CCF_29 1.2775091
Mean_SatO2_P2_7 1.2576845
ACF_HR44 1.2204356
ACF_SatO248 1.1827799
EDAD 1.1748646
CCF_36 1.1720668
ACF_SatO236 1.1674512
ACF_HR20 1.1640356
CCF_25 1.1586711
ACF_HR26 1.1490770
ACF_HR31 1.1401775
CCF_54 1.1366650
ACF_HR41 1.1038725
CCF_81 1.0937772
ACF_SatO231 1.0921965
CCF_3 1.0762622
ACF_HR34 1.0482779
ACF_HR50 1.0415620
ACF_SatO216 1.0272804
ACF_HR11 1.0148615
PREMATURIDAD 1.0010015
ACF_HR10 1.0010015
ACF_HR28 1.0010015
CCF_5 1.0010015
ACF_c_HR 1.0010015
ACF_HR46 1.0010015
ACF_SatO24 1.0010015
ACF_SatO242 1.0010015
ACF_HR15 0.9843990
ACF_SatO243 0.9533827
ACF_SatO233 0.9463392
ACF_HR3 0.9340372
CCF_14 0.9085354
ACF_HR27 0.8994367
Mean_SatO2_P2_4 0.8819364
ACF_HR43 0.8605539
ACF_SatO235 0.8533909
ACF_SatO225 0.8399890
ACF_HR23 0.8363087
ACF_HR48 0.8286607
CCF_75 0.7022538
CCF_92 0.6663297
ACF_SatO250 0.6486123
ACF_SatO241 0.6074505
CCF_85 0.5775428
Mean_SC_P2_8 0.5670257
ACF_SatO240 0.5130473
Mean_SC_P2_5 0.4890181
ACF_SatO244 0.4610918
ACF_SatO247 0.4473031
CCF_96 0.2416825
ACF_HR33 0.2297615
ACF_HR29 0.1475947
ACF_HR49 0.1263877
CCF_16 0.0940969
ACF_HR14 0.0706914
PAUSAS_APNEA 0.0000000
ACF_SatO2 0.0000000
EUCL_s_HR 0.0000000
PER_c_HR 0.0000000
ACF_HR1 0.0000000
ACF_HR25 0.0000000
ACF_HR42 0.0000000
ACF_SatO21 0.0000000
ACF_SatO228 0.0000000
ACF_SatO229 0.0000000
ACF_SatO237 0.0000000
CCF_33 0.0000000
Mean_SC_P2_4 0.0000000
Mean_SatO2_P2_3 -0.0277297
CCF_4 -0.0588747
ACF_SatO234 -0.0662761
CCF_2 -0.0864233
CCF_23 -0.1069049
GN_INGRESO -0.1225146
Mean_SC_P2_3 -0.1819501
Mean_SC_P2_6 -0.3398938
CCF_15 -0.4958062
ACF_HR30 -0.5906663
ACF_SatO239 -0.6873275
CCF_22 -0.7152863
CCF_82 -0.8532141
ACF_SatO238 -1.0010015
PER_HR -1.3865363

FINAL MODEL LOGISTIC REGRESSION

logit  <- nnet::multinom(DETERIORO ~., data = datos_train)
## # weights:  543 (542 variable)
## initial  value 47.827155 
## iter  10 value 0.613750
## iter  20 value 0.025360
## iter  30 value 0.002200
## iter  40 value 0.000308
## final  value 0.000006 
## converged
predicted.classes <- logit %>% predict(datos_test, type = "class")
head(predicted.classes)
## [1] 1 1 2 2 2 1
## Levels: 1 2
# Model accuracy

## Linear Regression
paste0("Acierto Linear Regression ", round(mean(predicted.classes == datos_test$DETERIORO),3), " %")
## [1] "Acierto Linear Regression 0.929 %"
## Random Forest
paste0("Acierto RF ", round((mat_confusion[1,1] + mat_confusion[2,2]) / sum(mat_confusion),3), " %")
## [1] "Acierto RF 0.964 %"