Análisis de datos

Instalar y/o cargar las librerias

#install.packages(c("readxl","corrplot","e1071"), dependencies = T) # Instalar un paquete
library(readxl) # Cargar el paquete para leer archivos xls
library(e1071) # Cargar las funciones de asimetría y curtosis
library(corrplot) # Cargar la función graficadora de correlaciones

Vamos a estudiar alguna de las bases de datos del curso

Vamos luego a leer una hoja de cálculo (datos) del fichero “datos.xls”

Mundodes = read_excel("PROYECT DATOS.xls", sheet = "Mundodes", skip = 2)
## New names:
## • `` -> `...1`
## • `` -> `...9`
# configuración de esa base de datos
paises = Mundodes$...1
Mundodes$...1 = NULL
Mundodes$...9 = NULL
head(Mundodes)
## # A tibble: 6 × 7
##   `Tasa de germinación` Tasa Mortalidad de la germinaci…¹ Mortalidad (< 1 sema…²
##                   <dbl>                             <dbl>                  <dbl>
## 1                  24.7                               5.7                   30.8
## 2                  12.5                              11.9                   14.4
## 3                  13.4                              11.7                   11.3
## 4                  11.6                              13.4                   14.8
## 5                  14.3                              10.2                   16  
## 6                  13.6                              10.7                   26.9
## # ℹ abbreviated names: ¹​`Tasa Mortalidad de la germinación`,
## #   ²​`Mortalidad (< 1 semana)`
## # ℹ 4 more variables: `Esperanza Vida de frijol` <dbl>,
## #   `Esperanza Vida rabano` <dbl>, `PNB per Cápita` <dbl>, Localización <dbl>

Análisis exploratorio

# Función para realizar histogramas en diagramas de dispersión
panel.hist <- function(x, ...){
  usr <- par("usr"); on.exit(par(usr))
  par(usr = c(usr[1:2], 0, 1.5) )
  h <- hist(x, plot = FALSE)
  breaks <- h$breaks; nB <- length(breaks)
  y <- h$counts; y <- y/max(y)
  rect(breaks[-nB], 0, breaks[-1], y, border = "black")#, col = "navyblue", border = "white", ...)
}

Cuantificar algunos estadísticos de centralidad, dispersión y forma

# Métricas de Centralidad
medias = apply(Mundodes, 2, mean)
medianas = apply(Mundodes, 2, median)
MC = rbind(medias, medianas)
# Métricas de Dispersión
des.est = apply(Mundodes, 2, sd)
rng.int = apply(Mundodes, 2, IQR)
mads = apply(Mundodes, 2, mad)
MD = rbind(des.est, rng.int, mads)
# Métricas de Forma
asim = apply(Mundodes, 2, skewness)
kurt = apply(Mundodes, 2, kurtosis)
MF = rbind(asim, kurt)
# Métricas Totalizadas
MT = rbind(MC, MD, MF)
print(MT)
##          Tasa de germinación Tasa Mortalidad de la germinación
## medias           29.46043956                        10.7340659
## medianas         29.00000000                         9.5000000
## des.est          13.69912308                         4.6838071
## rng.int          27.85000000                         4.6000000
## mads             20.90466000                         3.2617200
## asim              0.06025271                         1.0404214
## kurt             -1.48732066                         0.7605603
##          Mortalidad (< 1 semana) Esperanza Vida de frijol Esperanza Vida rabano
## medias                55.2813187               61.3813187            66.0307692
## medianas              43.0000000               63.4000000            67.6000000
## des.est               46.3023227                9.7276914            11.1306753
## rng.int               73.4500000               13.1000000            18.7000000
## mads                  50.2601400                9.7851600            12.0090600
## asim                   0.6434198               -0.6383456            -0.5249618
## kurt                  -0.7633646               -0.5925334            -0.8813635
##          PNB per Cápita Localización
## medias      5741.252747    3.9780220
## medianas    1690.000000    4.0000000
## des.est     8093.679853    1.7319098
## rng.int     6850.000000    3.0000000
## mads        1957.032000    2.9652000
## asim           1.515823   -0.2331113
## kurt           1.142416   -1.3199296

De este análisis de los estadísticos podemos concluir de que aparentemente hay concentraciones y frutas mejores, ya que en variables como la tasa mortalidad y la tasa de natalidad se tienen asimetrías y curtosis negativas. Vamos ahora a validad graficamente esto:

# Gráficos: Vamos a realizar unos boxplot discriminados por la localización, con el fin de observar si hay incidencia de la localización en la diferencia de los estadísticos de centralidad
boxplot(Mundodes$`Tasa de germinación` ~ Mundodes$Localización, horizontal = T, col = "deeppink", main = "Tasa de germinacion\nDiscriminado por País", xlab = "Tasa de Natalidad", ylab = "Localización")

boxplot(Mundodes$`Mortalidad (< 1 semana)` ~ Mundodes$Localización, horizontal = T, col = "cyan", main = "Mortalidad <1 semana\nDiscriminado por País", xlab = "Mortalidad (<1 semana)", ylab = "Localización")

# Graficar unos histogramas
hist(Mundodes$`PNB per Cápita`, col = "gray")

hist(Mundodes$`Esperanza Vida de frijol`, col = "navy")

hist(Mundodes$`Esperanza Vida rabano`, col = "gold3")

## Realizar un análisis exploratorio Multivariante

Vamos a validar el comportamiento dsitribucional por parejas de variables

La idea es mirar si hay dependencia o no entre las variables podemos cuantificar esto en términos de los índices de correlación. Evaluemos las dispersiones bivariantes

pairs(Mundodes, diag.panel = panel.hist, pch = 20)
## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

## Warning in par(usr): argument 1 does not name a graphical parameter

#lower.panel = NULL es para quitar el lado izquierdo
Cor.p = cor(Mundodes) # Matriz de Correlación de Pearson
Cor.sp = cor(Mundodes, method = "spearman") # Matriz de Correlación de Spearman
Cor.k = cor(Mundodes, method = "kendall") # Matriz de Correlación de Kendall
# Realicemos los Gŕaficos de Correlación
row.names(Cor.p) = row.names(Cor.sp) = row.names(Cor.k) = NULL# para eliminar etiquetas de filas
colnames(Cor.p) = colnames(Cor.sp) = colnames(Cor.k) = NULL #para eliminar etiquetas de columnas
corrplot(Cor.p, main = "Corplot Pearson")

corrplot(Cor.sp, main = "Corplot Spearman")

corrplot(Cor.k, main = "Corplot Kendall")