Entregable 1

Se tiene como objetivo principal analizar las diferencias en los niveles de Calcio (CaMol), Fosforo (PhoMol) y Fosfatasa Alcalina (ALP) para pacientes mayores de 65 años de edad en función del género (Sex = Male or Female) y determinar si la variación de las condiciones analíticas entre laboratorios o la edad de los pacientes, afecta a la distribución de las 3 variables de estudio.

Descripción de las variables

Variables cuantitativas

Age ( Edad en años del paciente) CaMol (Calcio en milimoles por litro; (mmo/L)) PhoMol (Fósforo en milimoles por litro; (mmo/L)) ALP (Fosfatasa Alcalina UL/L)

Variables cualitativas

Sex (Sexo del paciente): 1=Male; 2=Female Lab (Laboratorio ): 1=Metpath; 2=Deyor; 3=St. Elizabeth’s; 4=CB Rouche; 5=YOH; 6=Horizon AgeG (Rango de edades): 65-69; 70-74; 75-79; 80-84; 85-89 años

Cargue de la base de datos

library(readxl)
calcium <- read.csv("~/Verónica Palacio/Esp. Estadistica Aplicada/Clases/Mineria de datos/Practica R/MDAA - Laboratorio 1 - Limpieza de datos/MDAA - Laboratorio 1 - Limpieza de datos/calcium.csv", sep=";")
str(calcium)
## 'data.frame':    178 obs. of  8 variables:
##  $ Observacion: int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Age        : int  78 72 72 NA 73 73 65 68 89 84 ...
##  $ Sex        : chr  "2" "2" "2" "2" ...
##  $ ALP        : int  83 117 132 102 114 88 213 153 86 108 ...
##  $ Lab        : int  4 4 4 4 4 43 4 4 4 4 ...
##  $ CaMol      : num  2.53 2.5 2.43 2.48 2.33 2.13 2.55 2.45 2.25 2.43 ...
##  $ PhoMol     : num  1.07 1.16 1.13 0.81 1.13 0.84 1.26 1.23 0.65 0.84 ...
##  $ AgeG       : chr  "75 - 79" "70 - 74" "70 - 74" "70 - 74" ...
summary(calcium)
##   Observacion          Age             Sex                 ALP        
##  Min.   :  1.00   Min.   : 65.00   Length:178         Min.   :  9.00  
##  1st Qu.: 45.25   1st Qu.: 69.00   Class :character   1st Qu.: 71.00  
##  Median : 89.50   Median : 72.00   Mode  :character   Median : 85.00  
##  Mean   : 89.50   Mean   : 83.65                      Mean   : 92.03  
##  3rd Qu.:133.75   3rd Qu.: 75.50                      3rd Qu.:109.00  
##  Max.   :178.00   Max.   :771.00                      Max.   :219.00  
##                   NA's   :3                           NA's   :1       
##       Lab             CaMol            PhoMol         AgeG          
##  Min.   : 1.000   Min.   : 1.050   Min.   :0.09   Length:178        
##  1st Qu.: 1.000   1st Qu.: 2.280   1st Qu.:0.97   Class :character  
##  Median : 2.000   Median : 2.350   Median :1.13   Mode  :character  
##  Mean   : 2.401   Mean   : 3.921   Mean   :1.16                     
##  3rd Qu.: 3.000   3rd Qu.: 2.480   3rd Qu.:1.23                     
##  Max.   :43.000   Max.   :25.300   Max.   :8.84                     
##  NA's   :1        NA's   :1        NA's   :1

Se observa en el resumen de los datos, presencia de datos faltantes y algunos que podrian ser datos atipicos

Adecuación del formato de variables

Se adecua su formato según la naturaleza de la variable

Punto 1. Reglas de consistencia

Para verificar que cada variable ha sido correctamente digitada en la base de datos o, que dicho dato es coherente con los rangos de la variable. En el caso de las variables CaMol y PhoMol que cuentan con varios rangos de referencia, se tomará el valor mínimo y máximo de las referncias globales para establecer el rango. Finalmente, las reglas de consistencia serán:

# Carga del archivo de reglas de validación
Rules = editrules::editfile("Consistencia.txt")

# Conexión entre las  reglas
windows()
plot(Rules)

# Verificación de las reglas sobres los datos
editrules::violatedEdits(Rules, calcium)
##       edit
## record  num1  num2  num3  num4  num5  num6  num7  num8  dat1  dat2  dat3
##    1   FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    2   FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    3   FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    4   FALSE FALSE    NA    NA  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##    5   FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##    6   FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
##    7   FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    8   FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    9   FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE
##    10  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    11  FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    12  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    13  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##    14  FALSE FALSE    NA    NA FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    15  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    16  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    17  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    18  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    19  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    20  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    21  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    22  FALSE FALSE FALSE FALSE FALSE FALSE    NA    NA FALSE FALSE FALSE
##    23  FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##    24  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    25  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    26  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    27  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    28  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##    29  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    30  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    31  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    32  FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##    33  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    34  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    35  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE
##    36  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    37  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    38  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    39  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    40  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    41  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    42  FALSE FALSE FALSE FALSE    NA    NA FALSE FALSE FALSE FALSE FALSE
##    43  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    44  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    45  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    46  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    47  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    48  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    49  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    50  FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    51  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    52  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    53  FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    54  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    55  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    56  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    57  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    58  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    59  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    60  FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE
##    61  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    62  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    63  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    64  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    65  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    66  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    67  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    68  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    69  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    70  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    71  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    72  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    73  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    74  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    75  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    76  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    77  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    78  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
##    79  FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE
##    80  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    81  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    82  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    83  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    84  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    85     NA    NA FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    86  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    87  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    88  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    89  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    90  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    91  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    92  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    93  FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##    94  FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    95  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    96  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    97  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    98  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    99  FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    100 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    101 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    102 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    103 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    104 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    105 FALSE FALSE    NA    NA FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    106 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    107 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    108 FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##    109 FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##    110 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    111 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    112 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    113 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    114 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    115 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    116 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    117 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    118 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    119 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    120 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##    121 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    122 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    123 FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    124 FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE
##    125 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    126 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    127 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    128 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    129 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    130 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    131 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    132 FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##    133 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    134 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    135 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    136 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    137 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    138 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    139 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    140 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    141 FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##    142 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    143 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    144 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    145 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    146 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    147 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    148  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    149  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    150 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    151 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    152 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    153 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    154 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    155 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    156 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    157 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    158 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    159 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    160 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    161 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    162 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    163 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    164 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    165 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    166 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    167 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    168 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    169 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    170 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
##    171 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    172 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    173 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##    174 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
##    175 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    176 FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##    177 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##    178 FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE
Valid_Data = editrules::violatedEdits(Rules, calcium)
summary(Valid_Data)
## Edit violations, 178 observations, 0 completely missing (0%):
## 
##  editname freq   rel
##      num8   34 19.1%
##      num2   15  8.4%
##      dat3    8  4.5%
##      num5    7  3.9%
##      num6    5  2.8%
##      num4    3  1.7%
##      dat2    3  1.7%
##      num1    2  1.1%
##      dat1    2  1.1%
##      num7    1  0.6%
## 
## Edit violations per record:
## 
##  errors freq  rel
##       0  105  59%
##       1   57  32%
##       2   13 7.3%
##       3    3 1.7%
# Visualización del diagnóstico
windows()
plot(Valid_Data)

De los resultados anteriores se puede concluir que: Tres pacientes presentan una edad mayor de 89 años (uno de ellos tiene una edad de 771 años).

Dos pacientes presentan una medición del calcio menor a 2.1 (cercano a 1, violando el límie inferior del rango coherente según las referencias). Quince pacientes presentan una medición del calcio mayor a 2.7 (estos quince individuos tienen una medición cerca a 25 (mmo/L), medida incoherente según las referencias)

Siete pacientes tienen una medición de Fósforo menor de 0.84 (mediciones cercanas a 0.09, siendo estas muy bajas). Por otro lado, seis pacientes presentan mediciones de Fósforo en su cuerpo mayores a 1.5 (cercanas a 8.9, siendo estas muy altas e incoherentes con los rangos según las referencias).

Para la variable Sexo, se encontraron que ocho mediciones estaban decodficadas de forma diferetne a 1 y 2. Para la variable Laboratorio se encontró que 3 pacientes tenían decodificaciones diferentes a los 6 laboratorios asginados originalmente. Finalmente, se encontró que un total de tres pacientes no estaban categorizados correctamente según los rangos de edades datos.

# Extraer las posiciones para corrección del dato

Inconsistencias=function(Valid_Data){
  Reglas_inc=which(apply(Valid_Data,2,any))
  Lab_Reglas_inc=colnames(Valid_Data)[Reglas_inc]
  Registros_inc=unname(which(apply(Valid_Data,1,any)))
  id_reg_inc= lapply(Reglas_inc,function(j){
    unname(which(Valid_Data[,j]))})
  return(list(Lab_Reglas_inc=Lab_Reglas_inc,id_reg_inc=id_reg_inc))
}

Inconsistencias(Valid_Data)
## $Lab_Reglas_inc
##  [1] "num1" "num2" "num4" "num5" "num6" "num7" "num8" "dat1" "dat2" "dat3"
## 
## $id_reg_inc
## $id_reg_inc$num1
## [1] 148 149
## 
## $id_reg_inc$num2
##  [1] 21 25 26 27 28 29 30 31 32 33 34 35 36 37 50
## 
## $id_reg_inc$num4
## [1]  11  53 123
## 
## $id_reg_inc$num5
## [1]   4   9  23 108 109 124 141
## 
## $id_reg_inc$num6
## [1]  32  79  93 132 176
## 
## $id_reg_inc$num7
## [1] 60
## 
## $id_reg_inc$num8
##  [1]   2   3   7   8  17  33  34  46  49  53  57  74  80  81  82  88  89  90  91
## [20]  94 100 105 106 114 124 125 129 136 147 161 163 169 174 178
## 
## $id_reg_inc$dat1
## [1] 35 79
## 
## $id_reg_inc$dat2
## [1]   6  78 170
## 
## $id_reg_inc$dat3
## [1]   5   9  13  28  35  60 120 173

Con este procedimiento se observa en que posiciones existe inconsistencia en los datos, las variables Sex, Lab, y Age presentan inconsistencia que pueden estar asociadas a la mal digitalización de los datos

Punto 2. Registro y visualización de datos faltantes

## Visualizando y Cuantificando los datos faltantes
is.na(calcium)                                  
##        Observacion   Age   Sex   ALP   Lab CaMol PhoMol  AgeG
##   [1,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##   [2,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##   [3,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##   [4,]       FALSE  TRUE FALSE FALSE FALSE FALSE  FALSE FALSE
##   [5,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##   [6,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##   [7,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##   [8,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##   [9,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [10,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [11,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [12,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [13,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [14,]       FALSE  TRUE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [15,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [16,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [17,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [18,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [19,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [20,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [21,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [22,]       FALSE FALSE FALSE  TRUE FALSE FALSE  FALSE FALSE
##  [23,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [24,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [25,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [26,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [27,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [28,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [29,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [30,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [31,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [32,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [33,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [34,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [35,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [36,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [37,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [38,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [39,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [40,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [41,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [42,]       FALSE FALSE FALSE FALSE FALSE FALSE   TRUE FALSE
##  [43,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [44,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [45,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [46,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [47,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [48,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [49,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [50,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [51,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [52,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [53,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [54,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [55,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [56,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [57,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [58,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [59,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [60,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [61,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [62,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [63,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [64,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [65,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [66,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [67,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [68,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [69,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [70,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [71,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [72,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [73,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [74,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [75,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [76,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [77,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [78,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [79,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE  TRUE
##  [80,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [81,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [82,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [83,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [84,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [85,]       FALSE FALSE FALSE FALSE FALSE  TRUE  FALSE FALSE
##  [86,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [87,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [88,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [89,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [90,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [91,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [92,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [93,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [94,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [95,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [96,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [97,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [98,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
##  [99,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [100,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [101,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [102,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [103,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [104,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [105,]       FALSE  TRUE FALSE FALSE FALSE FALSE  FALSE FALSE
## [106,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [107,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [108,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [109,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [110,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [111,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [112,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [113,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [114,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [115,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [116,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [117,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [118,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [119,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [120,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [121,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [122,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [123,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [124,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [125,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [126,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [127,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [128,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [129,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [130,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [131,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [132,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [133,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [134,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [135,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [136,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [137,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [138,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [139,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [140,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [141,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [142,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [143,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [144,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [145,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [146,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [147,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [148,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [149,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [150,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [151,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [152,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [153,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [154,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [155,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [156,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [157,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [158,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [159,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [160,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [161,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [162,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [163,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [164,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [165,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [166,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [167,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [168,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [169,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [170,]       FALSE FALSE FALSE FALSE  TRUE FALSE  FALSE FALSE
## [171,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [172,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [173,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [174,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [175,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [176,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [177,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
## [178,]       FALSE FALSE FALSE FALSE FALSE FALSE  FALSE FALSE
x11()
visdat::vis_miss(calcium)        
## Warning: `gather_()` was deprecated in tidyr 1.2.0.
## ℹ Please use `gather()` instead.
## ℹ The deprecated feature was likely used in the visdat package.
##   Please report the issue at <]8;;https://github.com/ropensci/visdat/issueshttps://github.com/ropensci/visdat/issues]8;;>.

Se observa en el anterior análisis que hay datos faltantes en las variables Age, ALP, Lab, CaMol,PhoMol, y AgeG.

miss<-function(calcium,plot=T){  
  n=nrow(calcium);p=ncol(calcium)
  names.obs<-rownames(calcium)
  
  nobs.comp=sum(complete.cases(calcium))         # Cuenta los registros completos
  Obs.comp=which(complete.cases(calcium))        # Identifica los registros completos
  nobs.miss = sum(!complete.cases(calcium))      # Identifica los registros con datos faltantes.
  Obs.miss=which(!complete.cases(calcium))       # Identifica los registros con datos faltantes.
  
  Datos.NA<-is.na(calcium)
  Var_Num<- sort(colSums(Datos.NA),decreasing=T)
  Var_per<-round(Var_Num/n,3)
  Obs_Num<-rowSums(Datos.NA)
  names(Obs_Num)<-names.obs
  Obs_Num<-sort(Obs_Num,decreasing=T)
  Obs_per<-round(Obs_Num/p,3)
  lista<-list(n.row = n, n.col = p,n.comp = nobs.comp,Obs.comp = Obs.comp,n.miss = nobs.miss,Obs.miss = Obs.miss, Var.n = Var_Num , Var.p = Var_per, Obs.n= Obs_Num, Obs.per= Obs_per)
  
  if(plot){
    windows(height=10,width=15)
    par(mfrow=c(1,2))
    coord<-barplot(Var_per,plot=F)
    barplot(Var_per,xaxt="n",horiz=T,yaxt="n",xlim=c(-0.2,1), ylim=c(0,max(coord)+1),main= "% datos faltantes por variable")
    axis(2,at=coord,labels=names(Var_per), cex.axis=0.5,pos=0,las=2)
    axis(1,seq(0,1,0.2),seq(0,1,0.2),pos=0)
    
    coord<-barplot(Obs_per,plot=F)
    barplot(Obs_per,xaxt="n",horiz=T,yaxt="n",xlim=c(-0.2,1), ylim=c(0,max(coord)+1),main= "% datos faltantes por registro")
    axis(2,at=coord,labels=names(Obs_per),cex.axis=0.5,pos=0,las=2)
    axis(1,seq(0,1,0.2),seq(0,1,0.2))
  }
  return(invisible(lista))
}

Summary.NA = miss(calcium) 

Se observa en el anterior gráfico que existen datos faltantes principalmente en los registros, 4, 79,y 1.

3. Corrección de inconsistencias

level_Lab=c("1"="1","2"="2","3"="3","4"="4","5"="5","6"="6","21"="2","43"="4")
level_Sexo=c("1"="1","12"="2","2"="2","21"="1","22"="2","f"="2","F"="2","m"="1","M"="1")
level_EdadR=c("65 - 69"="65 - 69","70 - 74"="70 - 74","75 - 79"="75 - 79","80 - 84"="80 - 84","85 - 89"="85 - 89","85-89"="85 - 89")
calcium <- transform(calcium,
                     Lab=factor(dplyr::recode(Lab, !!! level_Lab)),
                     Sex=factor(dplyr::recode(Sex, !!! level_Sexo)),
                     AgeG=factor(dplyr::recode(AgeG, !!! level_EdadR)))

summary(calcium)
##   Observacion          Age         Sex         ALP           Lab    
##  Min.   :  1.00   Min.   : 65.00   1:91   Min.   :  9.00   1   :88  
##  1st Qu.: 45.25   1st Qu.: 69.00   2:87   1st Qu.: 71.00   2   :42  
##  Median : 89.50   Median : 72.00          Median : 85.00   3   :16  
##  Mean   : 89.50   Mean   : 83.65          Mean   : 92.03   4   :14  
##  3rd Qu.:133.75   3rd Qu.: 75.50          3rd Qu.:109.00   5   :11  
##  Max.   :178.00   Max.   :771.00          Max.   :219.00   6   : 6  
##                   NA's   :3               NA's   :1        NA's: 1  
##      CaMol            PhoMol          AgeG   
##  Min.   : 1.050   Min.   :0.09   65 - 69:55  
##  1st Qu.: 2.280   1st Qu.:0.97   70 - 74:70  
##  Median : 2.350   Median :1.13   75 - 79:38  
##  Mean   : 3.921   Mean   :1.16   80 - 84: 9  
##  3rd Qu.: 2.480   3rd Qu.:1.23   85 - 89: 5  
##  Max.   :25.300   Max.   :8.84   NA's   : 1  
##  NA's   :1        NA's   :1

Corrección de inconsistencias

Se comparan los datos que violan las reglas vs lo datos originales, y se corrigen aquellos erroneos

calcium[11,2]= 71
calcium[53,2]= 69
calcium[123,2]= 73
calcium[25,6]=2.53;calcium[26,6]=2.0;calcium[27,6]=2.23;
calcium[28,6]=2.43;calcium[29,6]=2.5;calcium[30,6]=2.33;
calcium[31,6]=2.4;calcium[32,6]=2.5;calcium[33,6]=2.35;
calcium[34,6]=2.25;calcium[35,6]=2.5;calcium[36,6]=2.45;
calcium[37,6]=2.33;

Punto 4. Analisis univariado y multivariado

id.out.uni=function(x,method=c("Standarized","Tukey","Cook")){
  id.out=NULL
  if(method=="Standarized"){id.out=which(abs(scale(x))>3)}
  else if(method=="Tukey"){id.out=which(x%in%(boxplot.stats(x)$out))}
  else if(method=="Cook"){model=lm(x~1);CD=cooks.distance(model)
  id.out=unname(which(CD>4*mean(CD)))}
  return(id.out)
}

par(mfrow=c(1,4))
Boxplot=lapply(calcium[,-c(1,3,5,8)],boxplot,col="blue")

El boxplot de Edad muestra que la distribución de esta variable que tiene una media de 72, cuenta con una cola muy larga a la derecha de la media. La gráfica muestra así mismo, que existen 3 datos atipicos al lado derecho de la distribución donde la edad máxima para no ser un outlier es 84 años.

El boxplot de ALP muestra que la distribución de esta variable que tiene una media de 92, cuenta con una cola muy larga a la derecha de la media. La gráfica muestra así mismo, que existen 5 datos atípicos al lado derecho de la distribución y uno al lado izquierdo.

El boxplot de PhoMol muestra que la distribución de esta variable que tiene una media de 1.16, posee 3 datos atípicos a la derecha de la distribución (uno muy alejado) y un dato atípico a la izquierda.

El boxplot de CaMol muestra que la distribución de esta variable que tiene una media de 3.92, posee muchos datos atípicos a la derecha de la distribución (exageradamente alejados) y un dato atípico a la izquierda.

Identificar los Datos Atipicos: univarido

out_Tukey = lapply(calcium[,-c(1,3,5,8)],id.out.uni,method="Tukey");out_Tukey=unlist(out_Tukey)
out_Cook = lapply(calcium[,-c(1,3,5,8)],id.out.uni,method="Cook");out_Cook=unlist(out_Cook)
# Se extraen los valores atípicos que conisiden de acuerdo a los métodos de Tukey y distancias Cook
At1= (out_Cook[order(out_Cook)] %in% out_Tukey[order(out_Tukey)]);At1=out_Cook[which(At1==TRUE)]

Los registros que se pueden considerar atípicos de acuerdo al enfoque univariado y combinando los métodos de Tukey y distancias Cooks son:

At1
##    Age1    Age3    Age5    Age7    Age8    ALP5 PhoMol2 
##       8      32      36      77     105      79     131

Identificar los Datos Atipicos: multivariado

Calcio.cor = cor(na.omit(calcium[,-c(1,3,5,8)]),method="pearson")
corrplot::corrplot(Calcio.cor , method = "ellipse",addCoef.col = "black",type="upper")

pairs(calcium[,-c(1,3,5,8)],lower.panel = panel.smooth, pch = 15)

## Visualización de outliers multivariados
out.mult=function(Datos){
  n= nrow(Datos); p= ncol(Datos)
  Distance=mahalanobis(Datos,center=colMeans(Datos),cov=cov(Datos))
  Limit= qchisq(0.01, lower.tail=FALSE,df=p)
  id.dist= which(Distance>Limit)
  Score_LOF = DMwR2::lofactor(Datos, k=5)
  id.LOF <- order(Score_LOF, decreasing=TRUE)[1:ceiling(0.01*n)]
  
  plot(Distance,pch=20,ylim=c(0,max(Distance)#*1.2))
  ))
  text(id.dist,Distance[id.dist],id.dist, col="red",pos=2,cex=0.8)
  abline(h=Limit,col="red",lwd=2,lty=2)
  plot(Score_LOF,pch=20,ylim=c(0,max(Score_LOF)#*1.2))
  ))
  text(id.LOF,Score_LOF[id.LOF],id.LOF, col="red",pos=2,cex=0.8)
  return(list(Out_dist=id.dist,Out_LOF=id.LOF))
}
id_Out_mult=out.mult(na.omit(calcium[,-c(1,3,5,8)]))
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo

Y con base en los gráficos anteriores, desde el enfoque multivariado los resgistros a considerarse atípicos son:

id_Out_mult
## $Out_dist
##   7  21  80  94 132 149 
##   6  19  76  89 126 143 
## 
## $Out_LOF
## [1]  56 126

Finalmente, con base en el análisis Univariado y multivariado de datos atípicos se deciden amputar los siguientes tres registros: 7,21,32,149

calcium[7,4] <- NA
calcium[21,6] <- NA
calcium[80,4] <- NA
calcium[149,6] <- NA

Imputación de datos faltantes

Para la amputación de datos faltantes se tiene 3 opciones inicialmente:

Valor medio o Mediana: Consiste en remplazar el NA por la media o mediana de la varaible, dado que este método subestima la varianza y es poco robusto no se tomará en cuenta.

Amputación por regresión: Se predice el NA en función de los facores completos, el problema de este método es que si la asociación de las variables es poca es equivalente a remplazar la media.

Dado que los dos métodos anteriores no convencen, se procederá a realizar la amputación de datos faltantes por el método de las distancias (K vecinos cercanos).

Datos=calcium
Datos_ImputKNN<-DMwR2::knnImputation(Datos,k=5,scale=T,meth = "weighAvg")
windows(height=10,width=15); visdat::vis_miss(Datos_ImputKNN)

Terminando el proceso de imputación, se obtiene una base de datos limpia (sin datos faltantes) y con algunas correciones de datos atípicos que se consideraron influyentes.

Datos limpios de R a excel

clean_calcium=Datos_ImputKNN
write.csv(clean_calcium,"clean_calcium.csv")

Visualización de datos

La distribución de los pacientes por edad, laboratorio y género.

library(ggplot2)
hist(clean_calcium$Age, xlab="Distribución de la edad", col="Blue", main="Histograma" )

boxplot(clean_calcium$Age, ylab="EDAD", col="Blue", main="Boxplot" )

ggplot(data.frame(clean_calcium), aes(x=Lab)) +
  geom_bar(col="green")+ggtitle(" Distribución Laboratorio")

ggplot(data.frame(clean_calcium), aes(x=Sex)) +
  geom_bar(fill=c("pink","sky blue"))

Se observa que hay más pacientes que hacen parte del laboratorio 1,también los pacientes se concentran entre los 65 y 80 años, donde hay presencia de pacientes de mayor edad.

Se observa que hay más presencia de hombres que de mujeres.

Diferencia de ALP entre grupos

par(mfrow=c(1,3))
boxplot(formula = ALP ~ AgeG, data =  clean_calcium)
boxplot(formula = ALP ~ Sex, data =  clean_calcium)
boxplot(formula = ALP ~ Lab, data =  clean_calcium)

Se observa que en terminos de edad para cada grupo la mediana está muy cerca de este componente. En terminos de genero son más las mujeres que presentan un ALP superior a 100,

Diferencia CaMol entre grupos

par(mfrow=c(1,3))
boxplot(formula = CaMol ~ AgeG, data = clean_calcium)
boxplot(formula = CaMol ~ Sex, data =  clean_calcium)
boxplot(formula = CaMol ~ Lab, data =  clean_calcium)

Entre las edades se registra un reporte superior en el rango de 85-89 años, asi mismo este caso se ve más frecuente en mujeres que en hombres, en terminos de lab es el 4 el que presenta un valor máximo.

Diferencias PhoMol entre grupos

par(mfrow=c(1,3))
boxplot(formula = PhoMol ~ AgeG, data =  clean_calcium)
boxplot(formula = PhoMol ~ Sex, data =  clean_calcium)
boxplot(formula = PhoMol ~ Lab, data =  clean_calcium)

No hay presencia de una diferencia tan marcada en el analisis de esta variable.

La estructura de correlación entre las variables cuantitativas: Age, ALP, CaMol, PhoMol.

LastFrame<- clean_calcium[, c("Age", "ALP", "PhoMol","CaMol")]
AQ.cor = cor(LastFrame,method="pearson")
print(AQ.cor)
##                Age         ALP      PhoMol       CaMol
## Age     1.00000000 -0.07627619 -0.05395209 -0.03613395
## ALP    -0.07627619  1.00000000 -0.04186702  0.12786098
## PhoMol -0.05395209 -0.04186702  1.00000000  0.04393499
## CaMol  -0.03613395  0.12786098  0.04393499  1.00000000
corrplot::corrplot(AQ.cor, method = "ellipse",addCoef.col = "black",type="upper")

Existe una correlación positiva entre las variables ALP y CaMol con el 11%, y en menor medida una correlación entre PhoMol y CaMol del 2%. Esto quiere decir que a medida que incrementa una de ellas la otra variable también lo hace.

Existe una correlación negativa entre la edad y ALP, es decir que a medida que se incrementa la edad este indicador de ALP disminuye en 5%. Algo parecido ocurre con la relación negativa entre edad, ALP,PhoMol y CaMol, y una correlación negativa entre ALP y PhoMol.