Big Data Analytics - Grafici e grafici

Il primo approccio all'analisi dei dati è analizzarli visivamente. Gli obiettivi per fare ciò sono normalmente trovare relazioni tra variabili e descrizioni univariate delle variabili. Possiamo dividere queste strategie come:

  • Analisi invariate
  • Analisi multivariata

Metodi grafici univariati

Univariateè un termine statistico. In pratica, significa che vogliamo analizzare una variabile indipendentemente dal resto dei dati. Le trame che consentono di farlo in modo efficiente sono:

Box-Plots

I box-plot vengono normalmente utilizzati per confrontare le distribuzioni. È un ottimo modo per controllare visivamente se ci sono differenze tra le distribuzioni. Possiamo vedere se ci sono differenze tra il prezzo dei diamanti per diversi tagli.

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

Possiamo vedere nella trama ci sono differenze nella distribuzione del prezzo dei diamanti in diversi tipi di taglio.

Istogrammi

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()

L'output del codice precedente sarà il seguente:

Metodi grafici multivariati

I metodi grafici multivariati nell'analisi esplorativa dei dati hanno l'obiettivo di trovare relazioni tra variabili diverse. Esistono due modi per ottenere ciò che vengono comunemente utilizzati: tracciare una matrice di correlazione di variabili numeriche o semplicemente tracciare i dati grezzi come matrice di grafici a dispersione.

Per dimostrarlo, useremo il set di dati dei diamanti. Per seguire il codice, apri lo 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)

Il codice produrrà il seguente output:

Questo è un riassunto, ci dice che c'è una forte correlazione tra prezzo e cursore, e non molto tra le altre variabili.

Una matrice di correlazione può essere utile quando abbiamo un gran numero di variabili, nel qual caso tracciare i dati grezzi non sarebbe pratico. Come accennato, è possibile visualizzare i dati grezzi anche -

library(GGally)
ggpairs(df)

Possiamo vedere nel grafico che i risultati visualizzati nella mappa termica sono confermati, c'è una correlazione 0.922 tra le variabili prezzo e carato.

È possibile visualizzare questa relazione nello scatterplot prezzo-carato situato nell'indice (3, 1) della matrice del grafico a dispersione.