Data Science dengan R : Cleaning and Visualisation

Wisnu Tubagus

Sosial Media


1 orang menyukai ini
Suka

Summary

Dalam portofolio ini, saya mendemonstrasikan berbagai langkah dalam pemrosesan dan analisis data menggunakan bahasa R. Proses dimulai dengan format dan pembersihan data untuk memastikan data siap digunakan. Selanjutnya, saya melakukan analisis statistik deskriptif untuk mendapatkan wawasan awal. Dengan menggunakan R Shiny, saya membuat visualisasi interaktif yang memudahkan eksplorasi data. Saya juga menguji hipotesis sederhana dengan scatter plot dan menghitung korelasi Pearson untuk menganalisis hubungan antara variabel. Keseluruhan proses ini meningkatkan pemahaman saya tentang pengolahan data dan kemampuan analitik, serta mempersiapkan saya untuk analisis data yang lebih mendalam dan pengambilan keputusan yang lebih baik.

Description


 

1. Formating dan Cleaning Data

Pada bagian ini, saya akan menjelaskan langkah-langkah yang saya lakukan untuk membersihkan dan memformat data dalam tugas bahasa R. Langkah-langkah ini mencakup pembacaan data dari file CSV, penanganan nilai yang hilang, konversi tipe data, dan penyimpanan data yang telah dibersihkan. Saya menggunakan paket tidyverse dalam bahasa R untuk menyelesaikan tugas ini.

Langkah 1: Mengimpor Dataset

Langkah pertama yang saya lakukan adalah mengimpor dataset dari file CSV yang disimpan di komputer saya. Saya menggunakan fungsi read_csv() dari paket tidyverse untuk membaca data ke dalam R.

library(tidyverse)

# Baca data dari file CSV
data <- read_csv("D:Automobile_data.csv")

Langkah 2: Mengonversi Kolom Menjadi Tipe Data yang Sesuai

Beberapa kolom dalam dataset seharusnya berisi nilai numerik, tetapi dibaca sebagai karakter. Saya mengidentifikasi kolom-kolom ini dan mengonversinya menjadi tipe data numerik menggunakan fungsi as.numeric().

# Mengubah kolom-kolom tertentu menjadi numeric jika diperlukan

numeric_columns <- c("normalized-losses", "bore", "stroke", "horsepower", "peak-rpm", "price")

data <- data %>%

 mutate(across(all_of(numeric_columns), as.numeric))

Langkah 3: Mengonversi Kolom Faktor

Beberapa kolom dalam dataset seharusnya berupa faktor (kategori), tetapi dibaca sebagai karakter. Saya mengidentifikasi kolom-kolom ini dan mengonversinya menjadi tipe data faktor menggunakan fungsi as.factor().

# Mengubah kolom yang seharusnya faktor menjadi faktor

factor_columns <- c("symboling", "make", "fuel-type", "aspiration", "num-of-doors", "body-style", "drive-wheels", "engine-location", "engine-type", "num-of-cylinders", "fuel-system")

data <- data %>%

 mutate(across(all_of(factor_columns), as.factor))

Langkah 4: Menampilkan Struktur Data

Untuk memastikan bahwa semua kolom memiliki tipe data yang sesuai, saya menampilkan struktur data menggunakan fungsi str().

# Tampilkan struktur data setelah perubahan tipe data

str(data)

 

 

 

Langkah 5: Menyimpan Data yang Telah Dibersihkan

Terakhir, saya menyimpan data yang telah dibersihkan ke file CSV baru menggunakan fungsi write_csv(). Ini memastikan bahwa data yang telah dirapikan dapat digunakan kembali di masa depan.

# Simpan data yang telah dirapikan ke file CSV baru

write_csv(data, "D:Automobile_data_cleaning.csv")

2. Statistika dan Deskriptif

Pada bagian ini, saya akan menjelaskan langkah-langkah yang saya lakukan untuk menghasilkan statistik deskriptif dari data yang telah dibersihkan. Saya menggunakan paket tidyverse dalam bahasa R untuk membaca data yang telah dibersihkan, dan menghasilkan ringkasan deskriptif untuk variabel numerik dan kategorikal.

Langkah 1: Mengimpor Dataset yang Telah Dibersihkan

Pertama, saya mengimpor dataset yang telah dibersihkan dari file CSV menggunakan fungsi read_csv() dari paket tidyverse.

library(tidyverse)

# Baca data dari file CSV yang telah dirapikan
data <- read_csv("D:Automobile_data_cleaning.csv")

Langkah 2: Menghasilkan Ringkasan Deskriptif untuk Semua Variabel

Saya memulai dengan menghasilkan ringkasan deskriptif untuk semua variabel dalam dataset. Fungsi summary() memberikan statistik dasar seperti mean, median, min, max, dan kuartil untuk variabel numerik, serta distribusi frekuensi untuk variabel kategorikal

# Ringkasan deskriptif untuk semua variabel

cat("Ringkasan Deskriptif untuk Semua Variabel: ")

print(summary(data))

Langkah 3: Menghasilkan Ringkasan Deskriptif untuk Variabel Numerik

Selanjutnya, saya memisahkan variabel numerik dari dataset dan menghasilkan ringkasan deskriptif khusus untuk variabel tersebut. Saya menggunakan fungsi sapply() untuk mengidentifikasi kolom yang bertipe numerik dan kemudian menerapkan fungsi summary() pada subset data tersebut.

# Menghasilkan ringkasan deskriptif untuk variabel numerik

numeric_columns <- sapply(data, is.numeric)

cat(" Ringkasan Deskriptif untuk Variabel Numerik: ")

print(summary(data[, numeric_columns]))

Langkah 4: Menghasilkan Ringkasan Deskriptif untuk Variabel Kategorikal

Demikian pula, saya memisahkan variabel kategorikal dari dataset dan menghasilkan ringkasan deskriptif khusus untuk variabel tersebut. Fungsi sapply() digunakan untuk mengidentifikasi kolom yang bertipe faktor dan kemudian menerapkan fungsi summary() pada subset data tersebut.

# Menghasilkan ringkasan deskriptif untuk variabel kategorikal

categorical_columns <- sapply(data, is.factor)

cat(" Ringkasan Deskriptif untuk Variabel Kategorikal: ")

print(summary(data[, categorical_columns]))

3. Visualisasi Data dengan R Shiny

Pada bagian ini, saya akan menjelaskan bagaimana saya membuat aplikasi web interaktif untuk visualisasi data menggunakan R Shiny. Aplikasi ini memungkinkan pengguna untuk membuat scatter plot dengan memilih variabel X dan Y dari dataset yang telah dibersihkan.

Langkah 1: Mengimpor Paket yang Diperlukan

Pertama, saya mengimpor paket shiny dan ggplot2 yang diperlukan untuk membuat aplikasi web dan melakukan visualisasi data.
 

library(shiny)

library(ggplot2)

Langkah 2: Memuat Dataset

Selanjutnya, saya memuat dataset yang telah dibersihkan dari file CSV menggunakan fungsi read.csv(). Dataset ini akan digunakan dalam aplikasi Shiny untuk visualisasi.

# Load data

data <- read.csv("D:Automobile_data.csv")

Langkah 3: Mendesain Antarmuka Pengguna (UI)

Saya mendesain antarmuka pengguna (UI) untuk aplikasi Shiny. UI ini terdiri dari sebuah panel utama dengan judul, panel samping untuk memilih variabel X dan Y, serta area utama untuk menampilkan scatter plot.

# Define UI

ui <- fluidPage(

 titlePanel("Scatter Plot"),

 sidebarLayout(

   sidebarPanel(

     selectInput("x_var", "X Variable:", choices = names(data)),

     selectInput("y_var", "Y Variable:", choices = names(data))

   ),

   mainPanel(

     plotOutput("scatter_plot")

   )

 )

)

Langkah 4: Mendefinisikan Logika Server

Saya mendefinisikan logika server untuk aplikasi Shiny. Bagian server ini menangani pemrosesan data dan pembuatan scatter plot berdasarkan input pengguna. Fungsi renderPlot() digunakan untuk menghasilkan plot menggunakan ggplot2.

# Define server logic

server <- function(input, output) {

 output$scatter_plot <- renderPlot({

   ggplot(data, aes_string(x = input$x_var, y = input$y_var)) +

     geom_point()

 })

}

Langkah 5: Menjalankan Aplikasi Shiny

Terakhir, saya menjalankan aplikasi Shiny menggunakan fungsi shinyApp(), yang menggabungkan UI dan server menjadi satu aplikasi yang dapat diakses melalui browser web.

# Run the application

shinyApp(ui = ui, server = server)

4. Hipotesis Sederhana dengan Scatter Plot

Pada bagian ini, saya akan menjelaskan bagaimana saya membuat scatter plot untuk menguji hipotesis sederhana menggunakan dataset yang telah dibersihkan. Saya menggunakan paket ggplot2 untuk visualisasi data, dengan tujuan mengeksplorasi hubungan antara ukuran mesin (engine size) dan bore (diameter silinder mesin) serta bagaimana harga dan efisiensi bahan bakar mempengaruhinya.

Langkah 1: Mengimpor Paket yang Diperlukan

Saya mengimpor paket ggplot2 dan readr yang diperlukan untuk membaca data dan membuat visualisasi scatter plot.

library(ggplot2)

library(readr)

Langkah 2: Memuat Dataset yang Telah Dibersihkan

Saya memuat dataset yang telah dibersihkan dari file CSV menggunakan fungsi read_csv(). Dataset ini akan digunakan untuk analisis dan visualisasi.

# Load data

data <- read_csv("D:Automobile_data_cleaning.csv")

Langkah 3: Mengonversi Kolom yang Diperlukan Menjadi Numerik

Beberapa kolom dalam dataset perlu dikonversi menjadi tipe data numerik untuk analisis lebih lanjut. Saya mengonversi kolom engine-size, bore, highway-mpg, dan price menjadi numerik menggunakan fungsi as.numeric().

# Konversi kolom yang diperlukan menjadi numerik

data$'engine-size' <- as.numeric(data$'engine-size')

data$bore <- as.numeric(data$bore)

data$'highway-mpg' <- as.numeric(data$'highway-mpg')

data$price <- as.numeric(data$price)

Langkah 4: Memeriksa Nilai NA Setelah Konversi

Setelah konversi, saya memeriksa apakah ada nilai NA di kolom-kolom yang relevan. Ini penting untuk memastikan tidak ada data yang hilang sebelum membuat scatter plot.

# Periksa apakah ada nilai NA setelah konversi

print(sum(is.na(data$'engine-size')))

print(sum(is.na(data$bore)))

print(sum(is.na(data$'highway-mpg')))

print(sum(is.na(data$price)))

Langkah 5: Menghapus Baris dengan Nilai NA

Jika ditemukan nilai NA, saya menghapus baris yang mengandung nilai NA di kolom-kolom yang relevan menggunakan fungsi na.omit().

# Hapus baris dengan nilai NA di kolom-kolom yang relevan

data <- na.omit(data)

Langkah 6: Membuat Scatter Plot

Saya membuat scatter plot menggunakan ggplot2. Plot ini menampilkan hubungan antara ukuran mesin (engine-size) dan bore, dengan warna yang merepresentasikan harga (price) dan ukuran titik yang merepresentasikan efisiensi bahan bakar di jalan raya (highway-mpg).

# Scatter plot
scatter_plot <- ggplot(data = data, aes(x = 'engine-size', y = bore, color = price, size = 'highway-mpg')) +
geom_point() +
scale_color_gradient(low = "blue", high = "red") +
labs(x = "Engine Size", y = "Bore", color = "Price", size = "Highway MPG") +
theme_minimal()

# Tampilkan scatter plot
print(scatter_plot)

5. Korelasi Pearson

Pada bagian ini, saya akan menjelaskan bagaimana saya menghitung dan menganalisis korelasi Pearson untuk beberapa variabel dalam dataset yang telah dibersihkan. Korelasi Pearson digunakan untuk mengukur kekuatan dan arah hubungan linear antara dua variabel numerik. Saya akan menggunakan paket base dalam R untuk melakukan perhitungan ini.

Langkah 1: Memeriksa Nilai Unik dalam Setiap Kolom

Saya memulai dengan memeriksa nilai unik dalam setiap kolom untuk menemukan nilai yang tidak dapat dikonversi menjadi numerik. Ini penting untuk mengidentifikasi dan menangani nilai-nilai yang tidak sesuai sebelum menghitung korelasi.

# Periksa nilai unik dalam setiap kolom untuk menemukan nilai yang tidak dapat dikonversi

unique_values <- lapply(data, unique)

print(unique_values)

Langkah 2: Mengubah atau Menghapus Nilai yang Menyebabkan Masalah

Jika ditemukan nilai non-numerik dalam kolom yang seharusnya numerik, saya menggantinya dengan NA. Hal ini memastikan bahwa hanya nilai numerik yang digunakan dalam perhitungan korelasi.

# Perbaiki atau hapus nilai-nilai yang menyebabkan masalah

# Contoh: Jika ada nilai non-numerik, Anda bisa mengubahnya menjadi NA
data$'engine-size' <- as.numeric(ifelse(is.na(as.numeric(data$'engine-size')), NA, data$'engine-size'))
data$bore <- as.numeric(ifelse(is.na(as.numeric(data$bore)), NA, data$bore))
data$'highway-mpg' <- as.numeric(ifelse(is.na(as.numeric(data$'highway-mpg')), NA, data$'highway-mpg'))
data$price <- as.numeric(ifelse(is.na(as.numeric(data$price)), NA, data$price))

Langkah 3: Menghitung Korelasi Pearson

Saya kemudian menghitung korelasi Pearson untuk variabel engine-size, bore, highway-mpg, dan price. Fungsi cor() digunakan untuk menghitung matriks korelasi.

# Sekarang coba hitung korelasi Pearson

cor_matrix <- cor(data[c("engine-size", "bore", "highway-mpg", "price")])

Langkah 4: Menampilkan Korelasi Pearson

Setelah menghitung korelasi, saya menampilkan matriks korelasi untuk mengidentifikasi hubungan antara variabel-variabel tersebut.

# Tampilkan korelasi Pearson

print(cor_matrix)

6. Kesimpulan

Secara keseluruhan, proses yang telah saya lakukan melibatkan berbagai langkah penting dalam pemrosesan dan analisis data menggunakan R. Mulai dari format dan pembersihan data, analisis statistik deskriptif, hingga visualisasi data menggunakan R Shiny, serta pengujian hipotesis dan perhitungan korelasi Pearson, semua langkah ini membantu saya untuk memahami dan memanipulasi data dengan lebih baik. Penggunaan teknik-teknik ini tidak hanya memastikan bahwa data siap untuk analisis yang lebih lanjut, tetapi juga memberikan wawasan yang berarti dari data tersebut, yang meningkatkan kemampuan saya dalam pengambilan keputusan berbasis data dan pengembangan aplikasi analitik interaktif. Dengan portofolio ini, saya dapat menunjukkan pemahaman yang mendalam tentang berbagai aspek analisis data dan kemampuan untuk menerapkan berbagai teknik analitik dalam situasi nyata.


 

Informasi Course Terkait
  Kategori: Algoritma dan Pemrograman
  Course: Data Science Dengan R