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.