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.
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)
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
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
Se adecua su formato según la naturaleza de la variable
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
## 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.
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
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;
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.
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
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
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.
clean_calcium=Datos_ImputKNN
write.csv(clean_calcium,"clean_calcium.csv")
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.
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,
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.
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.
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.