Análise de Big Data - Tabelas e gráficos
A primeira abordagem para analisar dados é analisá-los visualmente. Os objetivos de fazer isso normalmente são encontrar relações entre variáveis e descrições univariadas das variáveis. Podemos dividir essas estratégias como -
- Análise univariada
- Análise multivariada
Métodos Gráficos Univariados
Univariateé um termo estatístico. Na prática, significa que queremos analisar uma variável independentemente do resto dos dados. Os gráficos que permitem fazer isso de forma eficiente são -
Box-Plots
Box-Plots são normalmente usados para comparar distribuições. É uma ótima maneira de inspecionar visualmente se há diferenças entre as distribuições. Podemos ver se existem diferenças entre o preço dos diamantes para cortes diferentes.
# 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 observar no gráfico que existem diferenças na distribuição do preço dos diamantes nos 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()
A saída do código acima será a seguinte -
Métodos gráficos multivariados
Métodos gráficos multivariados na análise exploratória de dados têm o objetivo de encontrar relações entre diferentes variáveis. Existem duas maneiras de fazer isso que são comumente usadas: traçar uma matriz de correlação de variáveis numéricas ou simplesmente traçar os dados brutos como uma matriz de gráficos de dispersão.
Para demonstrar isso, usaremos o conjunto de dados de diamantes. Para seguir o código, abra o 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)
O código produzirá a seguinte saída -
Este é um resumo, nos diz que existe uma forte correlação entre o preço e o acento circunflexo, e não muito entre as outras variáveis.
Uma matriz de correlação pode ser útil quando temos um grande número de variáveis, caso em que traçar os dados brutos não seria prático. Como mencionado, é possível mostrar os dados brutos também -
library(GGally)
ggpairs(df)
Podemos ver no gráfico que os resultados exibidos no mapa de calor são confirmados, há uma correlação de 0,922 entre as variáveis de preço e quilate.
É possível visualizar essa relação no gráfico de dispersão preço-quilate localizado no índice (3, 1) da matriz do gráfico de dispersão.