Big Data Analytics - Visualisasi Data
Untuk memahami data, sering kali berguna untuk memvisualisasikannya. Biasanya dalam aplikasi Big Data, minat bergantung pada menemukan wawasan, bukan hanya membuat plot yang indah. Berikut ini adalah contoh pendekatan berbeda untuk memahami data menggunakan plot.
Untuk mulai menganalisis data penerbangan, kita bisa mulai dengan memeriksa apakah ada korelasi antara variabel numerik. Kode ini juga tersedia dibda/part1/data_visualization/data_visualization.R mengajukan.
# Install the package corrplot by running
install.packages('corrplot')
# then load the library
library(corrplot)
# Load the following libraries
library(nycflights13)
library(ggplot2)
library(data.table)
library(reshape2)
# We will continue working with the flights data
DT <- as.data.table(flights)
head(DT) # take a look
# We select the numeric variables after inspecting the first rows.
numeric_variables = c('dep_time', 'dep_delay',
'arr_time', 'arr_delay', 'air_time', 'distance')
# Select numeric variables from the DT data.table
dt_num = DT[, numeric_variables, with = FALSE]
# Compute the correlation matrix of dt_num
cor_mat = cor(dt_num, use = "complete.obs")
print(cor_mat)
### Here is the correlation matrix
# dep_time dep_delay arr_time arr_delay air_time distance
# dep_time 1.00000000 0.25961272 0.66250900 0.23230573 -0.01461948 -0.01413373
# dep_delay 0.25961272 1.00000000 0.02942101 0.91480276 -0.02240508 -0.02168090
# arr_time 0.66250900 0.02942101 1.00000000 0.02448214 0.05429603 0.04718917
# arr_delay 0.23230573 0.91480276 0.02448214 1.00000000 -0.03529709 -0.06186776
# air_time -0.01461948 -0.02240508 0.05429603 -0.03529709 1.00000000 0.99064965
# distance -0.01413373 -0.02168090 0.04718917 -0.06186776 0.99064965 1.00000000
# We can display it visually to get a better understanding of the data
corrplot.mixed(cor_mat, lower = "circle", upper = "ellipse")
# save it to disk
png('corrplot.png')
print(corrplot.mixed(cor_mat, lower = "circle", upper = "ellipse"))
dev.off()
Kode ini menghasilkan visualisasi matriks korelasi berikut -
Kita dapat melihat di plot bahwa ada korelasi yang kuat antara beberapa variabel dalam dataset. Misalnya, keterlambatan kedatangan dan keterlambatan keberangkatan tampaknya sangat berkorelasi. Kita dapat melihat ini karena elips menunjukkan hubungan yang hampir garis antara kedua variabel, namun tidak mudah untuk menemukan penyebab dari hasil ini.
Kita tidak dapat mengatakan bahwa karena dua variabel berkorelasi, yang satu berpengaruh pada yang lain. Juga kami menemukan di plot korelasi yang kuat antara waktu udara dan jarak, yang cukup masuk akal untuk diharapkan karena dengan jarak yang lebih jauh, waktu penerbangan akan bertambah.
Kami juga dapat melakukan analisis data univariat. Cara sederhana dan efektif untuk memvisualisasikan distribusi adalahbox-plots. Kode berikut menunjukkan cara membuat plot kotak dan bagan teralis menggunakan pustaka ggplot2. Kode ini juga tersedia dibda/part1/data_visualization/boxplots.R mengajukan.
source('data_visualization.R')
### Analyzing Distributions using box-plots
# The following shows the distance as a function of the carrier
p = ggplot(DT, aes(x = carrier, y = distance, fill = carrier)) + # Define the carrier
in the x axis and distance in the y axis
geom_box-plot() + # Use the box-plot geom
theme_bw() + # Leave a white background - More in line with tufte's
principles than the default
guides(fill = FALSE) + # Remove legend
labs(list(title = 'Distance as a function of carrier', # Add labels
x = 'Carrier', y = 'Distance'))
p
# Save to disk
png(‘boxplot_carrier.png’)
print(p)
dev.off()
# Let's add now another variable, the month of each flight
# We will be using facet_wrap for this
p = ggplot(DT, aes(carrier, distance, fill = carrier)) +
geom_box-plot() +
theme_bw() +
guides(fill = FALSE) +
facet_wrap(~month) + # This creates the trellis plot with the by month variable
labs(list(title = 'Distance as a function of carrier by month',
x = 'Carrier', y = 'Distance'))
p
# The plot shows there aren't clear differences between distance in different months
# Save to disk
png('boxplot_carrier_by_month.png')
print(p)
dev.off()