Análisis de Big Data: tablas y gráficos

El primer enfoque para analizar los datos es analizarlos visualmente. Los objetivos de hacer esto normalmente son encontrar relaciones entre variables y descripciones univariadas de las variables. Podemos dividir estas estrategias como:

  • Análisis univariado
  • Analisis multivariable

Métodos gráficos univariados

Univariatees un término estadístico. En la práctica, significa que queremos analizar una variable independientemente del resto de los datos. Las parcelas que permiten hacer esto de manera eficiente son:

Diagramas de caja

Los diagramas de caja se utilizan normalmente para comparar distribuciones. Es una excelente manera de inspeccionar visualmente si existen diferencias entre las distribuciones. Podemos ver si hay diferencias entre el precio de los diamantes para diferentes cortes.

# We will be using the ggplot2 library for plotting
library(ggplot2)  
data("diamonds")  

# We will be using the diamonds dataset to analyze distributions of numeric variables 
head(diamonds) 

#    carat   cut       color  clarity  depth  table   price    x     y     z 
# 1  0.23    Ideal       E      SI2    61.5    55     326     3.95  3.98  2.43 
# 2  0.21    Premium     E      SI1    59.8    61     326     3.89  3.84  2.31 
# 3  0.23    Good        E      VS1    56.9    65     327     4.05  4.07  2.31 
# 4  0.29    Premium     I      VS2    62.4    58     334     4.20  4.23  2.63 
# 5  0.31    Good        J      SI2    63.3    58     335     4.34  4.35  2.75 
# 6  0.24    Very Good   J      VVS2   62.8    57     336     3.94  3.96  2.48 

### Box-Plots
p = ggplot(diamonds, aes(x = cut, y = price, fill = cut)) + 
   geom_box-plot() + 
   theme_bw() 
print(p)

Podemos ver en la gráfica que existen diferencias en la distribución del precio de los diamantes en diferentes tipos de corte.

Histogramas

source('01_box_plots.R')

# We can plot histograms for each level of the cut factor variable using 
facet_grid 
p = ggplot(diamonds, aes(x = price, fill = cut)) + 
   geom_histogram() + 
   facet_grid(cut ~ .) + 
   theme_bw() 

p  
# the previous plot doesn’t allow to visuallize correctly the data because of 
the differences in scale 
# we can turn this off using the scales argument of facet_grid  

p = ggplot(diamonds, aes(x = price, fill = cut)) + 
   geom_histogram() + 
   facet_grid(cut ~ ., scales = 'free') + 
   theme_bw() 
p  

png('02_histogram_diamonds_cut.png') 
print(p) 
dev.off()

La salida del código anterior será la siguiente:

Métodos gráficos multivariados

Los métodos gráficos multivariados en el análisis de datos exploratorios tienen el objetivo de encontrar relaciones entre diferentes variables. Hay dos formas de lograr esto que se utilizan comúnmente: trazar una matriz de correlación de variables numéricas o simplemente trazar los datos sin procesar como una matriz de diagramas de dispersión.

Para demostrar esto, usaremos el conjunto de datos de diamantes. Para seguir el código, abra el scriptbda/part2/charts/03_multivariate_analysis.R.

library(ggplot2)
data(diamonds) 

# Correlation matrix plots  
keep_vars = c('carat', 'depth', 'price', 'table') 
df = diamonds[, keep_vars]  
# compute the correlation matrix 
M_cor = cor(df) 

#          carat       depth      price      table 
# carat 1.00000000  0.02822431  0.9215913  0.1816175 
# depth 0.02822431  1.00000000 -0.0106474 -0.2957785 
# price 0.92159130 -0.01064740  1.0000000  0.1271339 
# table 0.18161755 -0.29577852  0.1271339  1.0000000  

# plots 
heat-map(M_cor)

El código producirá la siguiente salida:

Este es un resumen, nos dice que existe una fuerte correlación entre el precio y el símbolo de intercalación, y no mucha entre las otras variables.

Una matriz de correlación puede ser útil cuando tenemos una gran cantidad de variables, en cuyo caso trazar los datos brutos no sería práctico. Como se mencionó, también es posible mostrar los datos sin procesar:

library(GGally)
ggpairs(df)

Podemos ver en la gráfica que los resultados mostrados en el mapa de calor están confirmados, hay una correlación de 0.922 entre las variables de precio y quilates.

Es posible visualizar esta relación en la gráfica de dispersión precio-quilate ubicada en el índice (3, 1) de la matriz de gráfica de dispersión.