## Libraries 
library(stats) ## Computing distances matrix
library(FactoMineR) ## Computing
library(ggplot2) ## Graphical Exploration
library(factoextra) ## Visualization
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(readxl) ## lee archivos exceñ
library(pROC) #analiza  curvas y analiza metricas
## Type 'citation("pROC")' for a citation.
## 
## Adjuntando el paquete: 'pROC'
## The following objects are masked from 'package:stats':
## 
##     cov, smooth, var
library(dplyr) #manipula datos eficazmente
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(corrplot) #visualiza matrices de correlacion 
## corrplot 0.95 loaded
### PCA para breastcancer con variables renombradas
# Leer datos
data <- read_excel("C:/Surco/AFirstWeek/Bases/breastcancer.xlsx")
data$diagnosis <- as.factor(data$diagnosis)

# Eliminar columna 'id'
bas <- data[, !names(data) %in% c("id")]

# Guardar nombres originales
nombres_originales <- names(bas)[names(bas) != "diagnosis"]
nombres_nuevos <- paste0("V", seq_along(nombres_originales))

# Renombrar variables numéricas
names(bas)[names(bas) != "diagnosis"] <- nombres_nuevos

# Ver correspondencia
data.frame(Variable = nombres_nuevos, Original = nombres_originales)
##    Variable                Original
## 1        V1             radius_mean
## 2        V2            texture_mean
## 3        V3          perimeter_mean
## 4        V4               area_mean
## 5        V5         smoothness_mean
## 6        V6        compactness_mean
## 7        V7          concavity_mean
## 8        V8     concave points_mean
## 9        V9           symmetry_mean
## 10      V10  fractal_dimension_mean
## 11      V11               radius_se
## 12      V12              texture_se
## 13      V13            perimeter_se
## 14      V14                 area_se
## 15      V15           smoothness_se
## 16      V16          compactness_se
## 17      V17            concavity_se
## 18      V18       concave points_se
## 19      V19             symmetry_se
## 20      V20    fractal_dimension_se
## 21      V21            radius_worst
## 22      V22           texture_worst
## 23      V23         perimeter_worst
## 24      V24              area_worst
## 25      V25        smoothness_worst
## 26      V26       compactness_worst
## 27      V27         concavity_worst
## 28      V28    concave points_worst
## 29      V29          symmetry_worst
## 30      V30 fractal_dimension_worst
# Ejecutar PCA
pcao <- PCA(bas, quali.sup = which(names(bas) == "diagnosis"), graph = FALSE)

### Exploración
str(pcao)
## List of 6
##  $ eig      : num [1:30, 1:3] 13.28 5.69 2.82 1.98 1.65 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : chr [1:30] "comp 1" "comp 2" "comp 3" "comp 4" ...
##   .. ..$ : chr [1:3] "eigenvalue" "percentage of variance" "cumulative percentage of variance"
##  $ var      :List of 4
##   ..$ coord  : num [1:30, 1:5] 0.798 0.378 0.829 0.805 0.52 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:30] "V1" "V2" "V3" "V4" ...
##   .. .. ..$ : chr [1:5] "Dim.1" "Dim.2" "Dim.3" "Dim.4" ...
##   ..$ cor    : num [1:30, 1:5] 0.798 0.378 0.829 0.805 0.52 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:30] "V1" "V2" "V3" "V4" ...
##   .. .. ..$ : chr [1:5] "Dim.1" "Dim.2" "Dim.3" "Dim.4" ...
##   ..$ cos2   : num [1:30, 1:5] 0.636 0.143 0.688 0.649 0.27 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:30] "V1" "V2" "V3" "V4" ...
##   .. .. ..$ : chr [1:5] "Dim.1" "Dim.2" "Dim.3" "Dim.4" ...
##   ..$ contrib: num [1:30, 1:5] 4.79 1.08 5.18 4.88 2.03 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:30] "V1" "V2" "V3" "V4" ...
##   .. .. ..$ : chr [1:5] "Dim.1" "Dim.2" "Dim.3" "Dim.4" ...
##  $ ind      :List of 4
##   ..$ coord  : num [1:569, 1:5] 9.19 2.39 5.73 7.12 3.94 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:569] "1" "2" "3" "4" ...
##   .. .. ..$ : chr [1:5] "Dim.1" "Dim.2" "Dim.3" "Dim.4" ...
##   ..$ cos2   : num [1:569, 1:5] 0.737 0.216 0.878 0.259 0.45 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:569] "1" "2" "3" "4" ...
##   .. .. ..$ : chr [1:5] "Dim.1" "Dim.2" "Dim.3" "Dim.4" ...
##   ..$ contrib: num [1:569, 1:5] 1.1182 0.0754 0.435 0.6714 0.2049 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:569] "1" "2" "3" "4" ...
##   .. .. ..$ : chr [1:5] "Dim.1" "Dim.2" "Dim.3" "Dim.4" ...
##   ..$ dist   : Named num [1:569] 10.71 5.13 6.12 13.99 5.87 ...
##   .. ..- attr(*, "names")= chr [1:569] "1" "2" "3" "4" ...
##  $ svd      :List of 3
##   ..$ vs: num [1:30] 3.64 2.39 1.68 1.41 1.28 ...
##   ..$ U : num [1:569, 1:5] 2.522 0.655 1.573 1.954 1.08 ...
##   ..$ V : num [1:30, 1:5] 0.219 0.104 0.228 0.221 0.143 ...
##  $ quali.sup:List of 5
##   ..$ coord : num [1:2, 1:5] -2.206 3.715 0.346 -0.583 0.213 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:2] "B" "M"
##   .. .. ..$ : chr [1:5] "Dim.1" "Dim.2" "Dim.3" "Dim.4" ...
##   ..$ cos2  : num [1:2, 1:5] 0.96032 0.96032 0.02366 0.02366 0.00897 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:2] "B" "M"
##   .. .. ..$ : chr [1:5] "Dim.1" "Dim.2" "Dim.3" "Dim.4" ...
##   ..$ v.test: num [1:2, 1:5] -18.72 18.72 4.49 -4.49 3.93 ...
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr [1:2] "B" "M"
##   .. .. ..$ : chr [1:5] "Dim.1" "Dim.2" "Dim.3" "Dim.4" ...
##   ..$ dist  : Named num [1:2] 2.25 3.79
##   .. ..- attr(*, "names")= chr [1:2] "B" "M"
##   ..$ eta2  : num [1, 1:5] 0.617 0.03548 0.02715 0.01627 0.00986
##   .. ..- attr(*, "dimnames")=List of 2
##   .. .. ..$ : chr "diagnosis"
##   .. .. ..$ : chr [1:5] "Dim.1" "Dim.2" "Dim.3" "Dim.4" ...
##  $ call     :List of 10
##   ..$ row.w     : num [1:569] 0.00176 0.00176 0.00176 0.00176 0.00176 ...
##   ..$ col.w     : num [1:30] 1 1 1 1 1 1 1 1 1 1 ...
##   ..$ scale.unit: logi TRUE
##   ..$ ncp       : num 5
##   ..$ centre    : num [1:30] 14.1273 19.2896 91.969 654.8891 0.0964 ...
##   ..$ ecart.type: num [1:30] 3.521 4.2973 24.2776 351.6048 0.0141 ...
##   ..$ X         :'data.frame':   569 obs. of  31 variables:
##   .. ..$ diagnosis: Factor w/ 2 levels "B","M": 2 2 2 2 2 2 2 2 2 2 ...
##   .. ..$ V1       : num [1:569] 18 20.6 19.7 11.4 20.3 ...
##   .. ..$ V2       : num [1:569] 10.4 17.8 21.2 20.4 14.3 ...
##   .. ..$ V3       : num [1:569] 122.8 132.9 130 77.6 135.1 ...
##   .. ..$ V4       : num [1:569] 1001 1326 1203 386 1297 ...
##   .. ..$ V5       : num [1:569] 0.1184 0.0847 0.1096 0.1425 0.1003 ...
##   .. ..$ V6       : num [1:569] 0.2776 0.0786 0.1599 0.2839 0.1328 ...
##   .. ..$ V7       : num [1:569] 0.3001 0.0869 0.1974 0.2414 0.198 ...
##   .. ..$ V8       : num [1:569] 0.1471 0.0702 0.1279 0.1052 0.1043 ...
##   .. ..$ V9       : num [1:569] 0.242 0.181 0.207 0.26 0.181 ...
##   .. ..$ V10      : num [1:569] 0.0787 0.0567 0.06 0.0974 0.0588 ...
##   .. ..$ V11      : num [1:569] 1.095 0.543 0.746 0.496 0.757 ...
##   .. ..$ V12      : num [1:569] 0.905 0.734 0.787 1.156 0.781 ...
##   .. ..$ V13      : num [1:569] 8.59 3.4 4.58 3.44 5.44 ...
##   .. ..$ V14      : num [1:569] 153.4 74.1 94 27.2 94.4 ...
##   .. ..$ V15      : num [1:569] 0.0064 0.00522 0.00615 0.00911 0.01149 ...
##   .. ..$ V16      : num [1:569] 0.049 0.0131 0.0401 0.0746 0.0246 ...
##   .. ..$ V17      : num [1:569] 0.0537 0.0186 0.0383 0.0566 0.0569 ...
##   .. ..$ V18      : num [1:569] 0.0159 0.0134 0.0206 0.0187 0.0188 ...
##   .. ..$ V19      : num [1:569] 0.03 0.0139 0.0225 0.0596 0.0176 ...
##   .. ..$ V20      : num [1:569] 0.00619 0.00353 0.00457 0.00921 0.00511 ...
##   .. ..$ V21      : num [1:569] 25.4 25 23.6 14.9 22.5 ...
##   .. ..$ V22      : num [1:569] 17.3 23.4 25.5 26.5 16.7 ...
##   .. ..$ V23      : num [1:569] 184.6 158.8 152.5 98.9 152.2 ...
##   .. ..$ V24      : num [1:569] 2019 1956 1709 568 1575 ...
##   .. ..$ V25      : num [1:569] 0.162 0.124 0.144 0.21 0.137 ...
##   .. ..$ V26      : num [1:569] 0.666 0.187 0.424 0.866 0.205 ...
##   .. ..$ V27      : num [1:569] 0.712 0.242 0.45 0.687 0.4 ...
##   .. ..$ V28      : num [1:569] 0.265 0.186 0.243 0.258 0.163 ...
##   .. ..$ V29      : num [1:569] 0.46 0.275 0.361 0.664 0.236 ...
##   .. ..$ V30      : num [1:569] 0.1189 0.089 0.0876 0.173 0.0768 ...
##   ..$ row.w.init: num [1:569] 1 1 1 1 1 1 1 1 1 1 ...
##   ..$ call      : language PCA(X = bas, quali.sup = which(names(bas) == "diagnosis"), graph = FALSE)
##   ..$ quali.sup :List of 5
##   .. ..$ quali.sup :'data.frame':    569 obs. of  1 variable:
##   .. .. ..$ diagnosis: Factor w/ 2 levels "B","M": 2 2 2 2 2 2 2 2 2 2 ...
##   .. ..$ modalite  : int 2
##   .. ..$ nombre    : num [1:2] 357 212
##   .. ..$ barycentre:'data.frame':    2 obs. of  30 variables:
##   .. .. ..$ V1 : num [1:2] 12.1 17.5
##   .. .. ..$ V2 : num [1:2] 17.9 21.6
##   .. .. ..$ V3 : num [1:2] 78.1 115.4
##   .. .. ..$ V4 : num [1:2] 463 978
##   .. .. ..$ V5 : num [1:2] 0.0925 0.1029
##   .. .. ..$ V6 : num [1:2] 0.0801 0.1452
##   .. .. ..$ V7 : num [1:2] 0.0461 0.1608
##   .. .. ..$ V8 : num [1:2] 0.0257 0.088
##   .. .. ..$ V9 : num [1:2] 0.174 0.193
##   .. .. ..$ V10: num [1:2] 0.0629 0.0627
##   .. .. ..$ V11: num [1:2] 0.284 0.609
##   .. .. ..$ V12: num [1:2] 1.22 1.21
##   .. .. ..$ V13: num [1:2] 2 4.32
##   .. .. ..$ V14: num [1:2] 21.1 72.7
##   .. .. ..$ V15: num [1:2] 0.0072 0.00678
##   .. .. ..$ V16: num [1:2] 0.0214 0.0323
##   .. .. ..$ V17: num [1:2] 0.026 0.0418
##   .. .. ..$ V18: num [1:2] 0.00986 0.01506
##   .. .. ..$ V19: num [1:2] 0.0206 0.0205
##   .. .. ..$ V20: num [1:2] 0.00364 0.00406
##   .. .. ..$ V21: num [1:2] 13.4 21.1
##   .. .. ..$ V22: num [1:2] 23.5 29.3
##   .. .. ..$ V23: num [1:2] 87 141
##   .. .. ..$ V24: num [1:2] 559 1422
##   .. .. ..$ V25: num [1:2] 0.125 0.145
##   .. .. ..$ V26: num [1:2] 0.183 0.375
##   .. .. ..$ V27: num [1:2] 0.166 0.451
##   .. .. ..$ V28: num [1:2] 0.0744 0.1822
##   .. .. ..$ V29: num [1:2] 0.27 0.323
##   .. .. ..$ V30: num [1:2] 0.0794 0.0915
##   .. ..$ numero    : int 1
##  - attr(*, "class")= chr [1:2] "PCA" "list"
pcao$eig
##           eigenvalue percentage of variance cumulative percentage of variance
## comp 1  1.328161e+01           4.427203e+01                          44.27203
## comp 2  5.691355e+00           1.897118e+01                          63.24321
## comp 3  2.817949e+00           9.393163e+00                          72.63637
## comp 4  1.980640e+00           6.602135e+00                          79.23851
## comp 5  1.648731e+00           5.495768e+00                          84.73427
## comp 6  1.207357e+00           4.024522e+00                          88.75880
## comp 7  6.752201e-01           2.250734e+00                          91.00953
## comp 8  4.766171e-01           1.588724e+00                          92.59825
## comp 9  4.168948e-01           1.389649e+00                          93.98790
## comp 10 3.506935e-01           1.168978e+00                          95.15688
## comp 11 2.939157e-01           9.797190e-01                          96.13660
## comp 12 2.611614e-01           8.705379e-01                          97.00714
## comp 13 2.413575e-01           8.045250e-01                          97.81166
## comp 14 1.570097e-01           5.233657e-01                          98.33503
## comp 15 9.413497e-02           3.137832e-01                          98.64881
## comp 16 7.986280e-02           2.662093e-01                          98.91502
## comp 17 5.939904e-02           1.979968e-01                          99.11302
## comp 18 5.261878e-02           1.753959e-01                          99.28841
## comp 19 4.947759e-02           1.649253e-01                          99.45334
## comp 20 3.115940e-02           1.038647e-01                          99.55720
## comp 21 2.997289e-02           9.990965e-02                          99.65711
## comp 22 2.743940e-02           9.146468e-02                          99.74858
## comp 23 2.434084e-02           8.113613e-02                          99.82971
## comp 24 1.805501e-02           6.018336e-02                          99.88990
## comp 25 1.548127e-02           5.160424e-02                          99.94150
## comp 26 8.177640e-03           2.725880e-02                          99.96876
## comp 27 6.900464e-03           2.300155e-02                          99.99176
## comp 28 1.589338e-03           5.297793e-03                          99.99706
## comp 29 7.488031e-04           2.496010e-03                          99.99956
## comp 30 1.330448e-04           4.434827e-04                         100.00000
pcao$var$coord[1:5,]
##        Dim.1      Dim.2       Dim.3       Dim.4       Dim.5
## V1 0.7977668 -0.5579027 -0.01432118 -0.05827700 -0.04851878
## V2 0.3780132 -0.1424382  0.10835829  0.84870380  0.06351944
## V3 0.8292355 -0.5133487 -0.01563555 -0.05908501 -0.04799015
## V4 0.8053928 -0.5512695  0.04817717 -0.07520017 -0.01326563
## V5 0.5196530  0.4440017 -0.17507219 -0.22430770  0.46878427
pcao$ind$coord[1:5,]
##      Dim.1     Dim.2      Dim.3      Dim.4      Dim.5
## 1 9.192837  1.948583 -1.1231662 -3.6337309  1.1951101
## 2 2.387802 -3.768172 -0.5292927 -1.1182639 -0.6217750
## 3 5.733896 -1.075174 -0.5517476 -0.9120827  0.1770859
## 4 7.122953 10.275589 -3.2327895 -0.1525470  2.9608784
## 5 3.935302 -1.948072  1.3897667 -2.9406393 -0.5467474
### Matriz de correlación y descomposición
Acs <- scale(bas[, sapply(bas, is.numeric)])
COR <- (t(Acs) %*% Acs) / (nrow(Acs)-1)
E <- eigen(COR)

### Eigenvalores y vectores propios
E$values
##  [1] 1.328161e+01 5.691355e+00 2.817949e+00 1.980640e+00 1.648731e+00
##  [6] 1.207357e+00 6.752201e-01 4.766171e-01 4.168948e-01 3.506935e-01
## [11] 2.939157e-01 2.611614e-01 2.413575e-01 1.570097e-01 9.413497e-02
## [16] 7.986280e-02 5.939904e-02 5.261878e-02 4.947759e-02 3.115940e-02
## [21] 2.997289e-02 2.743940e-02 2.434084e-02 1.805501e-02 1.548127e-02
## [26] 8.177640e-03 6.900464e-03 1.589338e-03 7.488031e-04 1.330448e-04
E$vectors
##              [,1]         [,2]         [,3]         [,4]         [,5]
##  [1,] -0.21890244 -0.233857132 -0.008531243  0.041408962  0.037786354
##  [2,] -0.10372458 -0.059706088  0.064549903 -0.603050001 -0.049468850
##  [3,] -0.22753729 -0.215181361 -0.009314220  0.041983099  0.037374663
##  [4,] -0.22099499 -0.231076711  0.028699526  0.053433795  0.010331251
##  [5,] -0.14258969  0.186113023 -0.104291904  0.159382765 -0.365088528
##  [6,] -0.23928535  0.151891610 -0.074091571  0.031794581  0.011703971
##  [7,] -0.25840048  0.060165363  0.002733838  0.019122753  0.086375412
##  [8,] -0.26085376 -0.034767500 -0.025563541  0.065335944 -0.043861025
##  [9,] -0.13816696  0.190348770 -0.040239936  0.067124984 -0.305941428
## [10,] -0.06436335  0.366575471 -0.022574090  0.048586765 -0.044424360
## [11,] -0.20597878 -0.105552152  0.268481387  0.097941242 -0.154456496
## [12,] -0.01742803  0.089979682  0.374633665 -0.359855528 -0.191650506
## [13,] -0.21132592 -0.089457234  0.266645367  0.088992415 -0.120990220
## [14,] -0.20286964 -0.152292628  0.216006528  0.108205039 -0.127574432
## [15,] -0.01453145  0.204430453  0.308838979  0.044664180 -0.232065676
## [16,] -0.17039345  0.232715896  0.154779718 -0.027469363  0.279968156
## [17,] -0.15358979  0.197207283  0.176463743  0.001316880  0.353982091
## [18,] -0.18341740  0.130321560  0.224657567  0.074067335  0.195548089
## [19,] -0.04249842  0.183848000  0.288584292  0.044073351 -0.252868765
## [20,] -0.10256832  0.280092027  0.211503764  0.015304750  0.263297438
## [21,] -0.22799663 -0.219866379 -0.047506990  0.015417240 -0.004406592
## [22,] -0.10446933 -0.045467298 -0.042297823 -0.632807885 -0.092883400
## [23,] -0.23663968 -0.199878428 -0.048546508  0.013802794  0.007454151
## [24,] -0.22487053 -0.219351858 -0.011902318  0.025894749 -0.027390903
## [25,] -0.12795256  0.172304352 -0.259797613  0.017652216 -0.324435445
## [26,] -0.21009588  0.143593173 -0.236075625 -0.091328415  0.121804107
## [27,] -0.22876753  0.097964114 -0.173057335 -0.073951180  0.188518727
## [28,] -0.25088597 -0.008257235 -0.170344076  0.006006996  0.043332069
## [29,] -0.12290456  0.141883349 -0.271312642 -0.036250695 -0.244558663
## [30,] -0.13178394  0.275339469 -0.232791313 -0.077053470  0.094423351
##                [,6]          [,7]         [,8]         [,9]        [,10]
##  [1,]  0.0187407904 -0.1240883403  0.007452296 -0.223109764  0.095486443
##  [2,] -0.0321788366  0.0113995382 -0.130674825  0.112699390  0.240934066
##  [3,]  0.0173084449 -0.1144770573  0.018687258 -0.223739213  0.086385615
##  [4,] -0.0018877480 -0.0516534275 -0.034673604 -0.195586014  0.074956489
##  [5,] -0.2863744966 -0.1406689928  0.288974575  0.006424722 -0.069292681
##  [6,] -0.0141309489  0.0309184960  0.151396350 -0.167841425  0.012936200
##  [7,] -0.0093441809 -0.1075204434  0.072827285  0.040591006 -0.135602298
##  [8,] -0.0520499505 -0.1504822142  0.152322414 -0.111971106  0.008054528
##  [9,]  0.3564584607 -0.0938911345  0.231530989  0.256040084  0.572069479
## [10,] -0.1194306679  0.2957600240  0.177121441 -0.123740789  0.081103207
## [11,] -0.0256032561  0.3124900373 -0.022539967  0.249985002 -0.049547594
## [12,] -0.0287473145 -0.0907553556  0.475413139 -0.246645397 -0.289142742
## [13,]  0.0018107150  0.3146403902  0.011896690  0.227154024 -0.114508236
## [14,] -0.0428639079  0.3466790028 -0.085805135  0.229160015 -0.091927889
## [15,] -0.3429173935 -0.2440240556 -0.573410232 -0.141924890  0.160884609
## [16,]  0.0691975186  0.0234635340 -0.117460157 -0.145322810  0.043504866
## [17,]  0.0563432386 -0.2088237897 -0.060566501  0.358107079 -0.141276243
## [18,] -0.0312244482 -0.3696459369  0.108319309  0.272519886  0.086240847
## [19,]  0.4902456426 -0.0803822539 -0.220149279 -0.304077200 -0.316529830
## [20,] -0.0531952674  0.1913949726 -0.011168188 -0.213722716  0.367541918
## [21,] -0.0002906849 -0.0097099360 -0.042619416 -0.112141463  0.077361643
## [22,] -0.0500080613  0.0098707439 -0.036251636  0.103341204  0.029550941
## [23,]  0.0085009872 -0.0004457267 -0.030558534 -0.109614364  0.050508334
## [24,] -0.0251643821  0.0678316595 -0.079394246 -0.080732461  0.069921152
## [25,] -0.3692553703 -0.1088308865 -0.205852191  0.112315904 -0.128304659
## [26,]  0.0477057929  0.1404729381 -0.084019659 -0.100677822 -0.172133632
## [27,]  0.0283792555 -0.0604880561 -0.072467871  0.161908621 -0.311638520
## [28,] -0.0308734498 -0.1679666187  0.036170795  0.060488462 -0.076648291
## [29,]  0.4989267845 -0.0184906298 -0.228225053  0.064637806 -0.029563075
## [30,] -0.0802235245  0.3746576261 -0.048360667 -0.134174175  0.012609579
##             [,11]        [,12]       [,13]        [,14]        [,15]
##  [1,]  0.04147149  0.051067457  0.01196721 -0.059506135  0.051118775
##  [2,] -0.30224340  0.254896423  0.20346133  0.021560100  0.107922421
##  [3,]  0.01678264  0.038926106  0.04410950 -0.048513812  0.039902936
##  [4,]  0.11016964  0.065437508  0.06737574 -0.010830829 -0.013966907
##  [5,] -0.13702184  0.316727211  0.04557360 -0.445064860  0.118143364
##  [6,] -0.30800963 -0.104017044  0.22928130 -0.008101057 -0.230899962
##  [7,]  0.12419024  0.065653480  0.38709081  0.189358699  0.128283732
##  [8,] -0.07244603  0.042589267  0.13213810  0.244794768  0.217099194
##  [9,]  0.16305408 -0.288865504  0.18993367 -0.030738856  0.073961707
## [10,] -0.03804827  0.236358988  0.10623908  0.377078865 -0.517975705
## [11,] -0.02535702 -0.016687915 -0.06819523 -0.010347413  0.110050711
## [12,]  0.34494446 -0.306160423 -0.16822238  0.010849347 -0.032752721
## [13,] -0.16731877 -0.101446828 -0.03784399  0.045523718  0.008268089
## [14,]  0.05161946 -0.017679218  0.05606493 -0.083570718  0.046024366
## [15,]  0.08420621 -0.294710053  0.15044143  0.201152530 -0.018559465
## [16,] -0.20688568 -0.263456509  0.01004017 -0.491755932 -0.168209315
## [17,]  0.34951794  0.251146975  0.15878319 -0.134586924 -0.250471408
## [18,] -0.34237591 -0.006458751 -0.49402674  0.199666719 -0.062079344
## [19,] -0.18784404  0.320571348  0.01033274  0.046864383  0.113383199
## [20,]  0.25062479  0.276165974 -0.24045832 -0.145652466  0.353232211
## [21,]  0.10506733  0.039679665 -0.13789053 -0.023101281 -0.166567074
## [22,]  0.01315727  0.079797450 -0.08014543 -0.053430792 -0.101115399
## [23,]  0.05107628 -0.008987738 -0.09696571 -0.012219382 -0.182755198
## [24,]  0.18459894  0.048088657 -0.10116061  0.006685465 -0.314993600
## [25,]  0.14389035  0.056514866 -0.20513034 -0.162235443 -0.046125866
## [26,] -0.19742047 -0.371662503  0.01227931 -0.166470250  0.049956014
## [27,]  0.18501676 -0.087034532  0.21798433  0.066798931  0.204835886
## [28,] -0.11777205 -0.068125354 -0.25438749  0.276418891  0.169499607
## [29,]  0.15756025  0.044033503 -0.25653491 -0.005355574 -0.139888394
## [30,]  0.11828355 -0.034731693 -0.17281424  0.212104110  0.256173195
##             [,16]        [,17]         [,18]       [,19]        [,20]
##  [1,]  0.15058388 -0.202924255 -0.1467123385  0.22538466 -0.049698664
##  [2,]  0.15784196  0.038706119  0.0411029851  0.02978864 -0.244134993
##  [3,]  0.11445396 -0.194821310 -0.1583174548  0.23959528 -0.017665012
##  [4,]  0.13244803 -0.255705763 -0.2661681046 -0.02732219 -0.090143762
##  [5,]  0.20461325 -0.167929914  0.3522268017 -0.16456584  0.017100960
##  [6,] -0.17017837  0.020307708 -0.0077941384  0.28422236  0.488686329
##  [7,] -0.26947021  0.001598353  0.0269681105  0.00226636 -0.033387086
##  [8,] -0.38046410 -0.034509509  0.0828277367 -0.15497236 -0.235407606
##  [9,]  0.16466159  0.191737848 -0.1733977905 -0.05881116  0.026069156
## [10,]  0.04079279 -0.050225246 -0.0878673570 -0.05815705 -0.175637222
## [11,] -0.05890572  0.139396866  0.2362165319  0.17588331 -0.090800503
## [12,]  0.03450040 -0.043963016  0.0098586620  0.03600985 -0.071659988
## [13,] -0.02651665  0.024635639  0.0259288003  0.36570154 -0.177250625
## [14,] -0.04115323 -0.334418173 -0.3049069032 -0.41657231  0.274201148
## [15,]  0.05803906 -0.139595006  0.2312599432 -0.01326009  0.090061477
## [16,] -0.18983090  0.008246477 -0.1004742346 -0.24244818 -0.461098220
## [17,]  0.12542065 -0.084616716  0.0001954852  0.12638102  0.066946174
## [18,]  0.19881035 -0.108132263 -0.0460549116 -0.01216430  0.068868294
## [19,]  0.15771150  0.274059129 -0.1870147640 -0.08903929  0.107385289
## [20,] -0.26855388  0.122733398  0.0598230982  0.08660084  0.222345297
## [21,]  0.08156057  0.240049982  0.2161013526  0.01366130 -0.005626909
## [22,] -0.18555785 -0.069365185 -0.0583984505 -0.07586693  0.300599798
## [23,]  0.05485705  0.234164147  0.1885435919  0.09081325  0.011003858
## [24,]  0.09065339  0.273399584  0.1420648558 -0.41004720  0.060047387
## [25,] -0.14555166  0.278030197 -0.5015516751  0.23451384 -0.129723903
## [26,]  0.15373486  0.004037123  0.0735745143  0.02020070  0.229280589
## [27,]  0.21502195  0.191313419  0.1039079796 -0.04578612 -0.046482792
## [28,] -0.17814174  0.075485316 -0.0758138963 -0.26022962  0.033022340
## [29,] -0.25789401 -0.430658116  0.2787138431  0.11725053 -0.116759236
## [30,]  0.40555649 -0.159394300 -0.0235647497 -0.01149448 -0.104991974
##               [,21]       [,22]         [,23]       [,24]       [,25]
##  [1,]  0.0685700057  0.07292890 -0.0985526942  0.18257944  0.01922650
##  [2,] -0.4483694667  0.09480063 -0.0005549975 -0.09878679 -0.08474593
##  [3,]  0.0697690429  0.07516048 -0.0402447050  0.11664888 -0.02701541
##  [4,]  0.0184432785  0.09756578  0.0077772734 -0.06984834  0.21004078
##  [5,]  0.1194917473  0.06382295 -0.0206657211 -0.06869742 -0.02895489
##  [6,] -0.1926213963 -0.09807756  0.0523603957  0.10413552 -0.39662323
##  [7,] -0.0055717533 -0.18521200  0.3248703785 -0.04474106  0.09697732
##  [8,]  0.0094238187 -0.31185243 -0.0514087968 -0.08402770  0.18645160
##  [9,]  0.0869384844 -0.01840673 -0.0512005770 -0.01933947  0.02458369
## [10,]  0.0762718362  0.28786888 -0.0846898562  0.13326055  0.20722186
## [11,] -0.0863867747 -0.15027468 -0.2641253170  0.55870157  0.17493043
## [12,] -0.2170719674  0.04845693 -0.0008738805 -0.02426730 -0.05698648
## [13,]  0.3049501584  0.15935280  0.0900742110 -0.51675039 -0.07292764
## [14,] -0.1925877857  0.06423262  0.0982150746  0.02246072 -0.13185041
## [15,]  0.0720987261  0.05054490 -0.0598177179 -0.01563119 -0.03121070
## [16,]  0.1403865724 -0.04528769  0.0091038710  0.12177779 -0.17316455
## [17,] -0.0630479298 -0.20521269 -0.3875423290 -0.18820504 -0.01593998
## [18,] -0.0343753236 -0.07254538  0.3517550738  0.10966898  0.12954655
## [19,]  0.0976995265 -0.08465443 -0.0423628949 -0.00322620  0.01951493
## [20,] -0.0628432814  0.24470508  0.0857810992 -0.07519442  0.08417120
## [21,] -0.0072938995 -0.09629821 -0.0556767923  0.15683037 -0.07070972
## [22,]  0.5944401434 -0.11111202 -0.0089228997  0.11848460  0.11818972
## [23,]  0.0920235990  0.01722163  0.0633448296 -0.23711317 -0.11803403
## [24,] -0.1467901315 -0.09695982  0.1908896250 -0.14406303  0.03828995
## [25,] -0.1648492374 -0.06825409  0.0936901494  0.01099014  0.04796476
## [26,] -0.1813748671  0.02967641 -0.1479209247 -0.18674995  0.62438494
## [27,]  0.1321005945  0.46042619  0.2864331353  0.28885257 -0.11577034
## [28,] -0.0008860815  0.29984056 -0.5675277966 -0.10734024 -0.26319634
## [29,] -0.1627085487  0.09714484  0.1213434508  0.01438181 -0.04529962
## [30,]  0.0923439434 -0.46947115  0.0076253382 -0.03782545 -0.28013348
##              [,26]        [,27]         [,28]         [,29]         [,30]
##  [1,] -0.129476396  0.131526670 -2.111940e-01 -2.114605e-01  0.7024140910
##  [2,] -0.024556664  0.017357309  6.581146e-05  1.053393e-02  0.0002736610
##  [3,] -0.125255946  0.115415423 -8.433827e-02 -3.838261e-01 -0.6898969685
##  [4,]  0.362727403 -0.466612477  2.725083e-01  4.227949e-01 -0.0329473482
##  [5,] -0.037003686 -0.069689923 -1.479269e-03  3.434667e-03 -0.0048474577
##  [6,]  0.262808474 -0.097748705  5.462767e-03  4.101677e-02  0.0446741863
##  [7,] -0.548876170 -0.364808397 -4.553864e-02  1.001479e-02  0.0251386661
##  [8,]  0.387643377  0.454699351  8.883097e-03  4.206949e-03 -0.0010772653
##  [9,] -0.016044038  0.015164835 -1.433026e-03  7.569862e-03 -0.0012803794
## [10,] -0.097404839  0.101244946  6.311687e-03 -7.301433e-03 -0.0047556848
## [11,]  0.049977080 -0.212982901  1.922239e-01 -1.184421e-01 -0.0087110937
## [12,] -0.011237242  0.010092889  5.622611e-03  8.776279e-03 -0.0010710392
## [13,]  0.103653282 -0.041691553 -2.631919e-01  6.100219e-03  0.0137293906
## [14,] -0.155304589  0.313358657  4.206811e-02  8.592591e-02  0.0011053260
## [15,] -0.007717557  0.009052154 -9.792963e-03 -1.776386e-03 -0.0016082109
## [16,] -0.049727632 -0.046536088  1.539555e-02 -3.158134e-03  0.0019156224
## [17,]  0.091454968  0.084224797 -5.820978e-03 -1.607852e-02 -0.0089265265
## [18,] -0.017941919  0.011165509  2.900930e-02  2.393779e-02 -0.0021601973
## [19,] -0.017267849  0.019975983  7.636526e-03  5.223292e-03  0.0003293898
## [20,]  0.035488974  0.012036564 -1.975646e-02  8.341912e-03  0.0017989568
## [21,] -0.197054744  0.178666740 -4.126396e-01  6.357249e-01 -0.1356430561
## [22,]  0.036469433 -0.021410694  3.902509e-04 -1.723549e-02  0.0010205360
## [23,] -0.244103670  0.241031046  7.286809e-01 -2.292180e-02  0.0797438536
## [24,]  0.231359525 -0.237162466 -2.389603e-01 -4.449359e-01  0.0397422838
## [25,]  0.012602464  0.040853568  1.535248e-03 -7.385492e-03  0.0045832773
## [26,] -0.100463424  0.070505414 -4.869182e-02 -3.566904e-06 -0.0128415624
## [27,]  0.266853781  0.142905801  1.764090e-02  1.267572e-02  0.0004021392
## [28,] -0.133574507 -0.230901389 -2.247567e-02 -3.524045e-02 -0.0022884418
## [29,]  0.028184296 -0.022790444 -4.920481e-03 -1.340423e-02  0.0003954435
## [30,]  0.004520482 -0.059985998  2.356214e-02 -1.147766e-02  0.0018942925
eigvalo <- get_eigenvalue(pcao)
eigvalo
##          eigenvalue variance.percent cumulative.variance.percent
## Dim.1  1.328161e+01     4.427203e+01                    44.27203
## Dim.2  5.691355e+00     1.897118e+01                    63.24321
## Dim.3  2.817949e+00     9.393163e+00                    72.63637
## Dim.4  1.980640e+00     6.602135e+00                    79.23851
## Dim.5  1.648731e+00     5.495768e+00                    84.73427
## Dim.6  1.207357e+00     4.024522e+00                    88.75880
## Dim.7  6.752201e-01     2.250734e+00                    91.00953
## Dim.8  4.766171e-01     1.588724e+00                    92.59825
## Dim.9  4.168948e-01     1.389649e+00                    93.98790
## Dim.10 3.506935e-01     1.168978e+00                    95.15688
## Dim.11 2.939157e-01     9.797190e-01                    96.13660
## Dim.12 2.611614e-01     8.705379e-01                    97.00714
## Dim.13 2.413575e-01     8.045250e-01                    97.81166
## Dim.14 1.570097e-01     5.233657e-01                    98.33503
## Dim.15 9.413497e-02     3.137832e-01                    98.64881
## Dim.16 7.986280e-02     2.662093e-01                    98.91502
## Dim.17 5.939904e-02     1.979968e-01                    99.11302
## Dim.18 5.261878e-02     1.753959e-01                    99.28841
## Dim.19 4.947759e-02     1.649253e-01                    99.45334
## Dim.20 3.115940e-02     1.038647e-01                    99.55720
## Dim.21 2.997289e-02     9.990965e-02                    99.65711
## Dim.22 2.743940e-02     9.146468e-02                    99.74858
## Dim.23 2.434084e-02     8.113613e-02                    99.82971
## Dim.24 1.805501e-02     6.018336e-02                    99.88990
## Dim.25 1.548127e-02     5.160424e-02                    99.94150
## Dim.26 8.177640e-03     2.725880e-02                    99.96876
## Dim.27 6.900464e-03     2.300155e-02                    99.99176
## Dim.28 1.589338e-03     5.297793e-03                    99.99706
## Dim.29 7.488031e-04     2.496010e-03                    99.99956
## Dim.30 1.330448e-04     4.434827e-04                   100.00000
fviz_eig(pcao, addlabels = TRUE, ylim = c(0, 50))

### Variables
varo <- get_pca_var(pcao)
head(varo$coord, 7)
##        Dim.1      Dim.2        Dim.3       Dim.4       Dim.5
## V1 0.7977668 -0.5579027 -0.014321182 -0.05827700 -0.04851878
## V2 0.3780132 -0.1424382  0.108358294  0.84870380  0.06351944
## V3 0.8292355 -0.5133487 -0.015635546 -0.05908501 -0.04799015
## V4 0.8053928 -0.5512695  0.048177170 -0.07520017 -0.01326563
## V5 0.5196530  0.4440017 -0.175072188 -0.22430770  0.46878427
## V6 0.8720501  0.3623611 -0.124375651 -0.04474618 -0.01502824
## V7 0.9417132  0.1435339  0.004589225 -0.02691245 -0.11090854
head(varo$cos2, 5)
##        Dim.1      Dim.2        Dim.3       Dim.4        Dim.5
## V1 0.6364318 0.31125539 0.0002050963 0.003396209 0.0023540715
## V2 0.1428940 0.02028864 0.0117415199 0.720298141 0.0040347193
## V3 0.6876316 0.26352690 0.0002444703 0.003491038 0.0023030547
## V4 0.6486576 0.30389811 0.0023210397 0.005655066 0.0001759769
## V5 0.2700393 0.19713747 0.0306502709 0.050313944 0.2197586899
head(varo$contrib, 7)
##       Dim.1     Dim.2       Dim.3       Dim.4       Dim.5
## V1 4.791828 5.4689158 0.007278210  0.17147022  0.14278085
## V2 1.075879 0.3564817 0.416669002 36.36693032  0.24471672
## V3 5.177322 4.6303018 0.008675469  0.17625806  0.13968654
## V4 4.883878 5.3396446 0.082366279  0.28551705  0.01067348
## V5 2.033182 3.4638057 1.087680124  2.54028658 13.32896332
## V6 5.725748 2.3071061 0.548956087  0.10108954  0.01369829
## V7 6.677081 0.3619871 0.000747387  0.03656797  0.74607118
# Visualización básica
fviz_pca_var(pcao, col.var = "black")

fviz_pca_var(pcao, arrowsize = 2, col.var = "black")

fviz_pca_var(pcao, arrowsize = 2, col.var = "blue", axes = 3:4)

fviz_pca_var(pcao, col.var = "black", axes = 4:5)

fviz_pca_var(pcao, arrowsize = 1, labelsize = 5, repel = TRUE)

# Corrplot
corrplot(varo$contrib, is.corr = FALSE)

corrplot(varo$cos2, is.corr = FALSE)

# Colores por cos2 y contribución
fviz_pca_var(pcao, col.var = "cos2", gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), repel = TRUE)

fviz_pca_var(pcao, col.var = "cos2", gradient.cols = c("darkred", "darkgreen", "blue"), repel = TRUE)

fviz_pca_var(pcao, col.var = "cos2", arrowsize = 1, gradient.cols = c("yellow", "green", "darkgreen"), repel = TRUE)

# Contribuciones
fviz_contrib(pcao, choice = "var", axes = 1, top = 4)

fviz_contrib(pcao, choice = "var", axes = 2, top = 4)

fviz_contrib(pcao, choice = "var", axes = 2, top = 3)

fviz_contrib(pcao, choice = "var", axes = 1:2, top = 5)

fviz_pca_var(pcao, col.var = "contrib", arrowsize = 1, gradient.cols = c("green", "darkgreen", "brown"))

fviz_pca_var(pcao, col.var = "contrib", axes = 3:4, gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"))

# Descripción de dimensiones
desc <- dimdesc(pcao, axes = c(1, 2), proba = 1.00)
desc$Dim.1
## 
## Link between the variable and the continuous variables (R-square)
## =================================================================================
##     correlation       p.value
## V8   0.95065387 2.239690e-290
## V7   0.94171317 1.952712e-270
## V28  0.91432733 9.464350e-225
## V6   0.87205011 4.285431e-178
## V23  0.86240823 8.834229e-170
## V27  0.83371903 2.329782e-148
## V21  0.83090957 1.749333e-146
## V3   0.82923555 2.208294e-145
## V24  0.81951682 3.223940e-139
## V4   0.80539280 6.810274e-131
## V1   0.79776675 1.118789e-126
## V13  0.77015490 8.240322e-113
## V26  0.76567217 9.648314e-111
## V11  0.75066782 3.835677e-104
## V14  0.73933688  1.831582e-99
## V18  0.66844526  6.335820e-75
## V16  0.62098087  5.664123e-62
## V17  0.55974171  3.139331e-48
## V5   0.51965303  1.128786e-40
## V9   0.50353484  6.559237e-38
## V30  0.48027261  3.591007e-34
## V25  0.46630955  4.624955e-32
## V29  0.44791263  1.997316e-29
## V22  0.38072738  4.561039e-21
## V2   0.37801323  9.083988e-21
## V20  0.37379938  2.613817e-20
## V10  0.23456539  1.494995e-08
## V19  0.15488099  2.082717e-04
## V12  0.06351460  1.302146e-01
## V15  0.05295834  2.071789e-01
## 
## Link between the variable and the categorical variable (1-way anova)
## =============================================
##                  R2       p.value
## diagnosis 0.6169962 2.933787e-120
## 
## Link between variable and the categories of the categorical variables
## ================================================================
##              Estimate       p.value
## diagnosis=M  2.960375 2.933787e-120
## diagnosis=B -2.960375 2.933787e-120
desc$Dim.2
## 
## Link between the variable and the continuous variables (R-square)
## =================================================================================
##     correlation       p.value
## V10  0.87452298 2.457175e-180
## V20  0.66820323  7.480718e-75
## V30  0.65686526  1.508827e-71
## V16  0.55518008  2.563775e-47
## V15  0.48770074  2.469079e-35
## V17  0.47046874  1.113702e-32
## V9   0.45410669  2.697776e-30
## V5   0.44400165  6.923016e-29
## V19  0.43859809  3.756057e-28
## V25  0.41105891  1.314608e-24
## V6   0.36236113  4.262912e-19
## V26  0.34256392  4.127566e-17
## V29  0.33848486  1.017778e-16
## V18  0.31090241  3.230391e-14
## V27  0.23370868  1.691993e-08
## V12  0.21466057  2.346268e-07
## V7   0.14353386  5.945583e-04
## V28 -0.01969892  6.391377e-01
## V8  -0.08294330  4.797792e-02
## V22 -0.10846933  9.615700e-03
## V2  -0.14243819  6.553715e-04
## V13 -0.21341419  2.764305e-07
## V11 -0.25181113  1.116087e-09
## V14 -0.36331782  3.389634e-19
## V23 -0.47684117  1.209959e-33
## V3  -0.51334871  1.417149e-39
## V24 -0.52329808  2.551063e-41
## V21 -0.52452555  1.539744e-41
## V4  -0.55126955  1.512182e-46
## V1  -0.55790267  7.349009e-48
## 
## Link between the variable and the categorical variable (1-way anova)
## =============================================
##                   R2      p.value
## diagnosis 0.03548051 6.073145e-06
## 
## Link between variable and the categories of the categorical variables
## ================================================================
##              Estimate      p.value
## diagnosis=B  0.464711 6.073145e-06
## diagnosis=M -0.464711 6.073145e-06
desc <- dimdesc(pcao, axes = c(1, 2), proba = 0.01)
desc$Dim.1
## 
## Link between the variable and the continuous variables (R-square)
## =================================================================================
##     correlation       p.value
## V8    0.9506539 2.239690e-290
## V7    0.9417132 1.952712e-270
## V28   0.9143273 9.464350e-225
## V6    0.8720501 4.285431e-178
## V23   0.8624082 8.834229e-170
## V27   0.8337190 2.329782e-148
## V21   0.8309096 1.749333e-146
## V3    0.8292355 2.208294e-145
## V24   0.8195168 3.223940e-139
## V4    0.8053928 6.810274e-131
## V1    0.7977668 1.118789e-126
## V13   0.7701549 8.240322e-113
## V26   0.7656722 9.648314e-111
## V11   0.7506678 3.835677e-104
## V14   0.7393369  1.831582e-99
## V18   0.6684453  6.335820e-75
## V16   0.6209809  5.664123e-62
## V17   0.5597417  3.139331e-48
## V5    0.5196530  1.128786e-40
## V9    0.5035348  6.559237e-38
## V30   0.4802726  3.591007e-34
## V25   0.4663095  4.624955e-32
## V29   0.4479126  1.997316e-29
## V22   0.3807274  4.561039e-21
## V2    0.3780132  9.083988e-21
## V20   0.3737994  2.613817e-20
## V10   0.2345654  1.494995e-08
## V19   0.1548810  2.082717e-04
## 
## Link between the variable and the categorical variable (1-way anova)
## =============================================
##                  R2       p.value
## diagnosis 0.6169962 2.933787e-120
## 
## Link between variable and the categories of the categorical variables
## ================================================================
##              Estimate       p.value
## diagnosis=M  2.960375 2.933787e-120
## diagnosis=B -2.960375 2.933787e-120
desc$Dim.2
## 
## Link between the variable and the continuous variables (R-square)
## =================================================================================
##     correlation       p.value
## V10   0.8745230 2.457175e-180
## V20   0.6682032  7.480718e-75
## V30   0.6568653  1.508827e-71
## V16   0.5551801  2.563775e-47
## V15   0.4877007  2.469079e-35
## V17   0.4704687  1.113702e-32
## V9    0.4541067  2.697776e-30
## V5    0.4440017  6.923016e-29
## V19   0.4385981  3.756057e-28
## V25   0.4110589  1.314608e-24
## V6    0.3623611  4.262912e-19
## V26   0.3425639  4.127566e-17
## V29   0.3384849  1.017778e-16
## V18   0.3109024  3.230391e-14
## V27   0.2337087  1.691993e-08
## V12   0.2146606  2.346268e-07
## V7    0.1435339  5.945583e-04
## V22  -0.1084693  9.615700e-03
## V2   -0.1424382  6.553715e-04
## V13  -0.2134142  2.764305e-07
## V11  -0.2518111  1.116087e-09
## V14  -0.3633178  3.389634e-19
## V23  -0.4768412  1.209959e-33
## V3   -0.5133487  1.417149e-39
## V24  -0.5232981  2.551063e-41
## V21  -0.5245255  1.539744e-41
## V4   -0.5512695  1.512182e-46
## V1   -0.5579027  7.349009e-48
## 
## Link between the variable and the categorical variable (1-way anova)
## =============================================
##                   R2      p.value
## diagnosis 0.03548051 6.073145e-06
## 
## Link between variable and the categories of the categorical variables
## ================================================================
##              Estimate      p.value
## diagnosis=B  0.464711 6.073145e-06
## diagnosis=M -0.464711 6.073145e-06
### Individuos
ind <- get_pca_ind(pcao)
head(ind$coord)
##      Dim.1     Dim.2      Dim.3      Dim.4      Dim.5
## 1 9.192837  1.948583 -1.1231662 -3.6337309  1.1951101
## 2 2.387802 -3.768172 -0.5292927 -1.1182639 -0.6217750
## 3 5.733896 -1.075174 -0.5517476 -0.9120827  0.1770859
## 4 7.122953 10.275589 -3.2327895 -0.1525470  2.9608784
## 5 3.935302 -1.948072  1.3897667 -2.9406393 -0.5467474
## 6 2.380247  3.949929 -2.9348768 -0.9410369  1.0560419
head(ind$cos2)
##       Dim.1      Dim.2       Dim.3        Dim.4        Dim.5
## 1 0.7366868 0.03309951 0.010996938 0.1151037016 0.0124508677
## 2 0.2164877 0.53913561 0.010637227 0.0474815863 0.0146792249
## 3 0.8781764 0.03087731 0.008131356 0.0222203296 0.0008376258
## 4 0.2593764 0.53978871 0.053427543 0.0001189646 0.0448178978
## 5 0.4498315 0.11023095 0.056101900 0.2511755035 0.0086829482
## 6 0.1722700 0.47439927 0.261905853 0.0269264275 0.0339099994
head(ind$contrib)
##        Dim.1      Dim.2      Dim.3       Dim.4       Dim.5
## 1 1.11824300 0.11724921 0.07867607 1.171622241 0.152248808
## 2 0.07544555 0.43846352 0.01747215 0.110961077 0.041210182
## 3 0.43504757 0.03569681 0.01898609 0.073815998 0.003342766
## 4 0.67136279 3.26051009 0.65179267 0.002064855 0.934499758
## 5 0.20492419 0.11718767 0.12045877 0.767300731 0.031864823
## 6 0.07496891 0.48178208 0.53719796 0.078576986 0.118877695
fviz_pca_ind(pcao)

fviz_pca_ind(pcao, axes = c(3:4))

fviz_pca_ind(pcao, pointsize = 3, pointshape = 21, fill = "lightblue", labelsize = 5, repel = TRUE)

fviz_pca_ind(pcao, col.ind = "cos2", gradient.cols = c("orange", "red", "darkred"), repel = TRUE)

fviz_pca_ind(pcao, axes = c(3:4), col.ind = "cos2", pointsize = "contrib", gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"), repel = TRUE)

fviz_cos2(pcao, choice = "ind", axes = 1)

fviz_cos2(pcao, choice = "ind", axes = 2)

fviz_cos2(pcao, choice = "ind", axes = c(1:2))

fviz_cos2(pcao, choice = "ind", axes = c(3:4))

fviz_contrib(pcao, choice = "ind", axes = 1)

fviz_contrib(pcao, choice = "ind", axes = 2)

fviz_contrib(pcao, choice = "ind", axes = 1:2)

### ----------------------------------------
### ÍNDICE DE MALIGNIDAD BASADO EN PC1
### ----------------------------------------

# Extraer coordenadas de individuos sobre la PC1
indice_malignidad <- pcao$ind$coord[, 1]

# Agregarlo al dataframe original junto con diagnosis
resultado_indice <- data.frame(
  ID = 1:length(indice_malignidad),
  diagnosis = bas$diagnosis,
  Indice_Malignidad = indice_malignidad
)

# Visualización básica: boxplot para comparar valores de PC1 entre diagnósticos
ggplot(resultado_indice, aes(x = diagnosis, y = Indice_Malignidad, fill = diagnosis)) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "Índice de malignidad basado en PCA (PC1)",
       x = "Diagnóstico",
       y = "Componente Principal 1 (PC1)")

### ----------------------------------------
### 1. Gráfico de densidad del índice por diagnóstico
### ----------------------------------------
ggplot(resultado_indice, aes(x = Indice_Malignidad, fill = diagnosis)) +
  geom_density(alpha = 0.5) +
  theme_minimal() +
  labs(title = "Distribución del índice de malignidad (PC1)",
       x = "Índice (PC1)", y = "Densidad",
       fill = "Diagnóstico") +
  scale_fill_manual(values = c("B" = "blue", "M" = "red"))

### ----------------------------------------
### 2. Curva ROC
### ----------------------------------------
# Convertir diagnosis a 0 (benigno) y 1 (maligno)
roc_data <- resultado_indice
roc_data$diagnosis_num <- ifelse(roc_data$diagnosis == "M", 1, 0)

# Calcular curva ROC
roc_curve <- roc(roc_data$diagnosis_num, roc_data$Indice_Malignidad)
## Setting levels: control = 0, case = 1
## Setting direction: controls < cases
# Mostrar AUC y curva
plot(roc_curve, col = "darkblue", lwd = 2, main = "Curva ROC - Índice de malignidad (PC1)")
auc_value <- auc(roc_curve)
legend("bottomright", legend = paste("AUC =", round(auc_value, 4)), col = "darkblue", lwd = 2)

### ----------------------------------------
### 3. Tabla resumen estadístico por grupo
### ----------------------------------------
resumen <- resultado_indice %>%
  group_by(diagnosis) %>%
  summarise(
    Media = mean(Indice_Malignidad),
    Mediana = median(Indice_Malignidad),
    Desviacion = sd(Indice_Malignidad),
    Min = min(Indice_Malignidad),
    Max = max(Indice_Malignidad),
    n = n()
  )
print(resumen)
## # A tibble: 2 × 7
##   diagnosis Media Mediana Desviacion   Min   Max     n
##   <fct>     <dbl>   <dbl>      <dbl> <dbl> <dbl> <int>
## 1 B         -2.21   -2.37       1.64 -5.57  7.09   357
## 2 M          3.71    3.38       3.03 -2.39 16.3    212