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>
# 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
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")