Leer la tabla de datos en formato excel

library(readxl)
TAD <- read_excel("TAD.xlsx", col_types = c("numeric", 
                                        "numeric", "numeric", "numeric", "text", 
                                          "text"))
colnames(TAD)=c("Edad","Colesterol","IMC","TADias","GEN","EST")
head(TAD) 
## # A tibble: 6 × 6
##    Edad Colesterol   IMC TADias GEN   EST  
##   <dbl>      <dbl> <dbl>  <dbl> <chr> <chr>
## 1    42        292  31.6     97 f     1    
## 2    64        235  30.8     90 f     3    
## 3    47        200  25.6     80 f     4    
## 4    56        200  26.2     75 m     5    
## 5    54        300  32.0    100 m     6    
## 6    48        215  23.2     67 m     5
tail(TAD)
## # A tibble: 6 × 6
##    Edad Colesterol   IMC TADias GEN   EST  
##   <dbl>      <dbl> <dbl>  <dbl> <chr> <chr>
## 1    57        216  21.2     65 f     4    
## 2    52        254  27.0     70 m     3    
## 3    67        243  23.9     85 m     3    
## 4    49        239  22.0     75 f     2    
## 5    42        292  31.6     97 f     1    
## 6    64        235  30.8     90 f     3
str(TAD)
## tibble [203 × 6] (S3: tbl_df/tbl/data.frame)
##  $ Edad      : num [1:203] 42 64 47 56 54 48 57 52 67 46 ...
##  $ Colesterol: num [1:203] 292 235 200 200 300 215 216 254 310 237 ...
##  $ IMC       : num [1:203] 31.6 30.8 25.6 26.2 32 ...
##  $ TADias    : num [1:203] 97 90 80 75 100 67 65 70 105 70 ...
##  $ GEN       : chr [1:203] "f" "f" "f" "m" ...
##  $ EST       : chr [1:203] "1" "3" "4" "5" ...

Medidas de resumen univariadas, tendencia central y su variabilidad

media_col=mean(TAD$Colesterol)
varianza_col=var(TAD$Colesterol)
sd_col=sd(TAD$Colesterol)
#calcular cve
cve_media_col=100*sd_col/media_col
medianaCol=median(TAD$Colesterol)
MAD_col=mad(TAD$Colesterol)
cve_mediana_col=100*MAD_col/medianaCol
#min,max,cuartiles,media y median
resumen=data.frame(Estadísticos_Descriptivos_univariados=c(mean(TAD$Colesterol),var(TAD$Colesterol),sd(TAD$Colesterol),100*sd(TAD$Colesterol)/mean(TAD$Colesterol),median(TAD$Colesterol),100*mad(TAD$Colesterol),mad(TAD$Colesterol)/median(TAD$Colesterol)))
rownames(resumen)=c("Promedio","Varianza","Desv_estandar","cve_media","Mediana","MAD","cve_mediana")
resumen
##               Estadísticos_Descriptivos_univariados
## Promedio                                239.2413793
## Varianza                               1270.9166951
## Desv_estandar                            35.6499186
## cve_media                                14.9012343
## Mediana                                 231.0000000
## MAD                                    3409.9800000
## cve_mediana                               0.1476182
summary(TAD$Colesterol)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   175.0   214.5   231.0   239.2   268.0   315.0
min_TAD <- min(TAD$TADias)
min_TAD
## [1] 65
max_TAD <- max(TAD$TADias)
max_TAD
## [1] 105
range(TAD$TADias)
## [1]  65 105
rango_TAD=max(TAD$TADias)-min(TAD$TADias)
cuartiles_TAD <- quantile(TAD$TADias,probs = seq(0,1,by=0.25))
cuartiles_TAD
##    0%   25%   50%   75%  100% 
##  65.0  75.0  80.0  92.5 105.0
#Cuartil 3 - Cuartil !
rango_intercuartil_TAD<- IQR(TAD$TADias)
rango_intercuartil_TAD
## [1] 17.5
Medidas_Posic=data.frame("Medidas de posición"=c(min(TAD$TADias),max(TAD$TADias),max(TAD$TADias)-min(TAD$TADias),quantile(TAD$TADias,probs = seq(0,1,by=0.25)),IQR(TAD$TADias)))
rownames(Medidas_Posic)=c("Mínimo","Máximo","Rango","Cuartil0_min","Cuartil_1","Cuartil_2","Cuartil_3","Cuartil_4_max","IQR")
Medidas_Posic
##               Medidas.de.posición
## Mínimo                       65.0
## Máximo                      105.0
## Rango                        40.0
## Cuartil0_min                 65.0
## Cuartil_1                    75.0
## Cuartil_2                    80.0
## Cuartil_3                    92.5
## Cuartil_4_max               105.0
## IQR                          17.5

Diagrama circular sencillo

conteoEST=table(TAD$EST)
pie(conteoEST,col="#D02090")

conteoGEN=table(TAD$GEN)
pie(conteoGEN,col="#FFC1C1")

Diagrama circular 3d y diagrama de barras

library(plotrix)
pie3D(table(TAD$GEN), radius=0.9,main="Numero de personas de cada género",labels=c("Mujeres","Hombres"),explode=0.1,col = topo.colors(length(table(TAD$GEN))), border = "white")

Diagrama de barras y diagrama circular con leyenda

#r_color <- colors()
#head(r_color, 50)
barplot(table(TAD$GEN),col="thistle3")

barplot(table(TAD$EST),col="#D02090",main="Frecuencias de la variable estrato socioeconómico")

#vcreacion del grafico, título, leyenda
leyenda <-c("Mujeres","Hombres")
pie(table(TAD$GEN), main="Numero de personas de cada género", col = heat.colors(length(table(TAD$GEN))))
legend("topright", leyenda, cex = 0.8, fill = heat.colors(length(leyenda)))

pie(table(TAD$EST), main="Numero de personas de cada género", col = terrain.colors(length(table(TAD$EST))))
leyenda <-c("1","2","3","4","5","6")
legend("topright", leyenda, cex = 0.8, fill = terrain.colors(length(leyenda)))

##Diagrama de tallo y hojas. Histograma frecuencias absolutas sin y con título

stem(TAD$Colesterol, scale = 1)
## 
##   The decimal point is 1 digit(s) to the right of the |
## 
##   17 | 5555
##   18 | 7
##   19 | 888888
##   20 | 0000000000000000000111226666889
##   21 | 333444444555555555556666688888888888
##   22 | 0000000133333
##   23 | 0000001111133455555555555555557779999
##   24 | 033333334668
##   25 | 344444444
##   26 | 0888888
##   27 | 55
##   28 | 000005557
##   29 | 00000222222222222255
##   30 | 00000
##   31 | 00000000555
hist(TAD$Colesterol,col="purple",freq=F)

hist(TAD$Colesterol,col="#98F5FF",freq=F,main="Distribución de frecuencias de los niveles de colesterol",xlab="Colesterol",ylab="Frecuencias")

hist(TAD$Colesterol,col="#98F5FF",freq=F,main="Distribución de frecuencias de los niveles de colesterol",xlab="Colesterol",ylab="Frecuencias",plot=F)
## Warning in hist.default(TAD$Colesterol, col = "#98F5FF", freq = F, main =
## "Distribución de frecuencias de los niveles de colesterol", : arguments 'freq',
## 'col', 'main', 'xlab', 'ylab' are not made use of
## $breaks
## [1] 160 180 200 220 240 260 280 300 320
## 
## $counts
## [1]  4 26 55 44 21 13 29 11
## 
## $density
## [1] 0.0009852217 0.0064039409 0.0135467980 0.0108374384 0.0051724138
## [6] 0.0032019704 0.0071428571 0.0027093596
## 
## $mids
## [1] 170 190 210 230 250 270 290 310
## 
## $xname
## [1] "TAD$Colesterol"
## 
## $equidist
## [1] TRUE
## 
## attr(,"class")
## [1] "histogram"

##Diagrama de caja general, por grupos y puntos superpuestos

boxplot(TAD$Colesterol,col="green")

boxplot(TAD$Colesterol,col="#66CDAA",ylab="Colesterol",main="Diagrama de caja de Colesterol")

boxplot(TAD$Colesterol,col="burlywood1",ylab="Colesterol",main="Diagrama de caja de Colesterol")

boxplot(TAD$IMC,col="#F0FFFF",ylab="Colesterol",main="Diagrama de caja de Colesterol")
stripchart(TAD$IMC, method = "jitter", pch = 19, add = TRUE, col = "red", vertical = TRUE)

boxplot(TAD$Colesterol~ TAD$GEN,col="#FFE4E1",ylab="Colesterol",main="Diagrama de caja de Colesterol")
stripchart(TAD$Colesterol~ TAD$GEN, method = "jitter", pch = 19, add = TRUE, col = "#CD8162", vertical = TRUE)

boxplot(TAD$TADias~ TAD$GEN,col="#FFE4E1",ylab="Colesterol",main="Diagrama de caja de Colesterol")
stripchart(TAD$TADias~ TAD$EST, method = "jitter", pch = 19, add = TRUE, col = "#6A5ACD", vertical = TRUE)

##Tablas de contingencia, conteos, proporción, porcentajes con respecto al total, porcentajes por fila y porcentajes por columna, diagramas de barras bivariados

TablaCruzada <- table(TAD$GEN,TAD$EST)
TablaCruzada
##    
##      1  2  3  4  5  6
##   f 16 14 19 42 21  3
##   m  2  3 26 15 30 12
TablaCruzada_propFilas=prop.table(TablaCruzada, margin = 1)
TablaCruzada_propColumnas=prop.table(TablaCruzada, margin = 2)
TablaCruzada100 <- addmargins(TablaCruzada * 100)
par(mfrow = c(1, 2))
colores2 <- c("#A020F0", "#FFBBFF")
barplot(TablaCruzada, col = colores2)
par(mfrow = c(1, 2))

barplot(TablaCruzada_propFilas, col = colores2, beside = TRUE)
legend("topleft", legend = c("Femenino", "Masculino"), fill = colores2)
colores6 <- c("salmon", "salmon1","salmon2","salmon3","salmon4","tan1")
barplot(TablaCruzada_propColumnas, col = colores6, beside = TRUE)

par(mfrow = c(1, 1))
par(mfrow = c(1, 2))
mosaicplot(TablaCruzada, cex = 1.1, col = colores6)
mosaicplot(TablaCruzada_propFilas, col = colores2)
par(mfrow = c(1, 1))
legend("topleft", legend = c("No", "Si"), fill = colores6)

barplot(TablaCruzada_propColumnas, col = colores6)

##Diagramas de dispersión generales y por grupos

plot(TAD$Colesterol,TAD$IMC,main="Diagrama de dispersión, Colesterol Vs. Índice de masa corporal",xlab="Colesterol",ylab="Índice de masa corporal")

plot(TAD$Colesterol,TAD$IMC,col=rainbow(length(levels(factor(TAD$GEN)))),main="Diagrama de dispersión, Colesterol Vs. Índice de masa corporal por género",xlab="Colesterol",ylab="Índice de masa corporal")
leyenda=c("Mujeres","Hombres")
legend("topright", leyenda, cex = 0.8, fill = rainbow(length(leyenda)))

##Matrices de diagramas de dispersión generales y por grupos. Diferentes gráficos en la diagonal, diagramas de caja, histogramas, densidades.

library(car)
## Loading required package: carData
scatterplotMatrix(~ Colesterol + IMC + TADias + Edad, data = TAD,diagonal=list(method="boxplot"))

scatterplotMatrix(~ Colesterol + IMC + TADias + Edad, data = TAD,diagonal=list(method="histogram"))

scatterplotMatrix(~ Colesterol + IMC + TADias + Edad, data = TAD,groups=TAD$GEN,by.groups=T)

scatterplotMatrix(~ Colesterol + IMC + TADias + Edad, data = TAD,groups=TAD$EST,by.groups=T)

##Gráfico de violin

plot(density(TAD$TADias))

library(vioplot)
## Loading required package: sm
## Package 'sm', version 2.2-6.0: type help(sm) for summary information
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
vioplot(TAD$Colesterol~ TAD$GEN)

vioplot(TAD$Colesterol~ TAD$EST,  horizontal = TRUE,col=rainbow(6))

##Matrices de covarianza y correlación

MatrizCor=cor(TAD[,1:4])
MatrizCor
##                 Edad Colesterol       IMC    TADias
## Edad       1.0000000  0.1712920 0.1083315 0.3001454
## Colesterol 0.1712920  1.0000000 0.6193804 0.7376903
## IMC        0.1083315  0.6193804 1.0000000 0.6441986
## TADias     0.3001454  0.7376903 0.6441986 1.0000000
MatrizCov=cov(TAD[,1:4])
MatrizCov
##                 Edad Colesterol       IMC    TADias
## Edad       62.043945   48.10003  3.510507  27.69097
## Colesterol 48.100034 1270.91670 90.840898 308.02748
## IMC         3.510507   90.84090 16.925086  31.04145
## TADias     27.690972  308.02748 31.041455 137.18724
MatrizVar=var(TAD[,1:4])
MatrizVar
##                 Edad Colesterol       IMC    TADias
## Edad       62.043945   48.10003  3.510507  27.69097
## Colesterol 48.100034 1270.91670 90.840898 308.02748
## IMC         3.510507   90.84090 16.925086  31.04145
## TADias     27.690972  308.02748 31.041455 137.18724

##Rostros de Chernoff

library(aplpack)
## Warning in fun(libname, pkgname): couldn't connect to display ":0"
faces(TAD[1:12,1:4])

## effect of variables:
##  modified item       Var         
##  "height of face   " "Edad"      
##  "width of face    " "Colesterol"
##  "structure of face" "IMC"       
##  "height of mouth  " "TADias"    
##  "width of mouth   " "Edad"      
##  "smiling          " "Colesterol"
##  "height of eyes   " "IMC"       
##  "width of eyes    " "TADias"    
##  "height of hair   " "Edad"      
##  "width of hair   "  "Colesterol"
##  "style of hair   "  "IMC"       
##  "height of nose  "  "TADias"    
##  "width of nose   "  "Edad"      
##  "width of ear    "  "Colesterol"
##  "height of ear   "  "IMC"