Buat Akun DQLab & Akses Kelas Data Science Python, R, SQL, Excel GRATIS

Analisis PCA: Sederhanakan Data dengan Reduksi Dimensi Menggunakan R

Belajar Data Science di Rumah 18-April-2022
https://dqlab.id/files/dqlab/cache/8f3c7bf3d931c8cb11e852acda7a2cf2_x_Thumbnail800.jpg

Principal Component Analysis (PCA) adalah salah satu metode reduksi dimensi pada machine learning. PCA akan memilih œvariabel-variabel yang mampu menjelaskan sebagian besar variabilitas data. PCA mengurangi dimensi dengan membentuk variabel-variabel baru yang disebut Principal Components. Principal Components yang merupakan kombinasi linier dari variabel-variabel lama. Penghitungan Varians dan Principal Component ini dapat dilakukan dengan menggunakan konsep nilai eigen (eigenvalue) dan vektor eigen (eigenvector) dari ilmu Aljabar Linier.


Principal Component Analysis (PCA) tentunya punya banyak manfaat dalam proses analisis data, misal:

  • Mengatasi multikolinieritas yang pada metode parametrik tertentu merupakan asumsi yang harus dipenuhi;

  • Mereduksi jumlah variabel yang akan dimasukkan ke model;

  • Jumlah variabel yang lebih sedikit tentu akan menyederhanakan model;

  • Juga mempercepat proses komputasi.


Principal Component Analysis (PCA) adalah metode reduksi yang populer. Sehingga telah banyak diimplementasikan ke bahasa pemrograman maupun perangkat lunak pengolah data. Salah satunya adalah bahasa R. Pada artikel ini, kita akan mempraktekkan materi pada modul Data Science in Finance: Dimension Reduction.


1. Package

Ada beberapa packages yang akan digunakan, yakni:

  • ggcorrplot

  • ggplot2

  • ggfortify

  • factoextra

  • openxlsx

Untuk dapat menggunakan fungsi-fungsi dari packages di atas, perlu mengimpornya terlebih dahulu.


```

library(ggplot2)

library(ggcorrplot)

library(ggfortify)

library(factoextra)

library(openxlsx)

```

bahasa R


2. Data

Data yang digunakan adalah data risk rating dengan beberapa variabel prediktor lainnya. Untuk memanggil data, jalan kode berikut:


```

cslarge_raw <- read.xlsx("https://storage.googleapis.com/dqlab-dataset/dqlab_pcadata.xlsx", 

                         sheet = "cslarge")


str(cslarge_raw)

head(cslarge_raw)


```

bahasa R


Data risk rating yang telah di import terdiri dari kolom:

  • contractcode

  • income

  • tenor

  • dependents

  • midoverdue

  • riskrating

  • age

  • empyear

  • asset

  • debt


Baca juga : Kursus Belajar Data dengan Bahasa R Untuk Pemula


3. Deskriptif Data: Visualisasi



```

#Gambarkan distribusi income berdasarkan dependents.

ggplot(cslarge_raw, aes(as.factor(dependents), income)) + 

  geom_boxplot() + xlab("Dependents") + ggtitle("Boxplot Income Berdasarkan Dependents") + theme_minimal()

```

bahasa R


```

#Gambarkan distribusi debt berdasarkan dependents.

ggplot(cslarge_raw, aes(as.factor(dependents), debt)) +

  geom_boxplot() + xlab("Dependents") + ggtitle("Boxplot Debt Berdasarkan Dependents") +

  theme_minimal()


```

bahasa R


bahasa R


Dari boxplot income berdasarkan dependents dapat disimpulkan bahwa tidak terdapat perbedaan besar pada median dan sebaran penghasilan individu-individu tidak memiliki tanggungan sampai dengan yang memiliki 4 tanggungan. Median dan sebaran penghasilan kelompok dengan 5 dan 6 dependen lebih besar dibandingkan dengan 5 kelompok sebelumnya.


Hal yang sama dapat diamati pada boxplot debt berdasarkan dependents. Median dan sebaran debt semakin besar dengan semakin banyaknya tanggungan.


4. Korelasi 

Untuk melihat seberapa besar hubungan linier antar variabel, kita bisa melihat korelasinya. Salah satu korelasi yang umum digunakan untuk variabel numerik adalah korelasi pearson. Karena korelasi hanya secara teori hanya cocok untuk data numerik, sebelumnya kita juga  perlu subset data.


```

cstrain <-subset(cslarge_raw, select = -c(contractcode,riskrating))

cor(cstrain)

```


bahasa R


Terlihat hubungan paling kuat adalah hubungan antara income versus age, income dan empyear disusul dengan hubungan antara dependents versus midoverdue dan debt. Untuk memudahkan membaca korelasi di atas, kita bisa memanfaatkan visualisasi sebagai berikut:


```

ggcorrplot(cor(cstrain))

```


bahasa R


bahasa R


5. PCA

Selanjutnya untuk menggunakan analisis pca, cukup menggunakan fungsi prcomp. Dapat


```

pr.out <- prcomp(cstrain, scale = TRUE, center = TRUE)

summary(pr.out)

```

bahasa R


bahasa R

Dari gambar di atas, diperoleh bahwa bersama-sama PC1 dan PC2 telah mampu menggambarkan 78% dari varians data. Output proportion of variance juga bisa divisualisasikan menggunakan screeplot berikut.


```

fviz_eig(pr.out, addlabels = TRUE, ylim = c(0, 80))

```

bahasa R



bahasa R


Baca juga : Belajar Data Science: Bahasa Pemrograman R Cocok untuk Pemula 


6. Dataframe baru

Setelah mengetahui bahwa PCA1 + PCA2 telah mampu menjelaskan 78% varians data, kita memilih untuk mereduksi variabel menjadi PCA1 dan PCA2. Terakhir kita membuat dataset dengan variabel PC1, PC2 dan riskrating agar siap diolah ke tahap selanjutnya.


```

# data akhir

pca_fix=data.frame(pr.out$x[,1:2])

#pca_fix <- as.data.frame(pca_fix)

pca_fix$riskrating <- cslarge_raw$riskrating

head(pca_fix)

```

bahasa R


bahasa R


7. Belajar Lebih Lanjut, pada Module R DQLab Yuk!

Data hasil pca di atas, sudah siap diolah ke tahap selanjutnya. Bingung bagaimana mengolah data hasil pca? Yuk kerjakan module Data Science in Finance: Dimension Reduction di academy DQLab


Pada Module tersebut akan ada banyak penjelasan tambahan mengenai teori maupun implementasi pca dalam kasus nyata. Misal penjelasan lengkap mengenai teori aljabar yang jadi dasar dari pca, maupun bagaimana implementasi pca dalam proses split data dalam pembuatan model machine learning klasifikasi.


Tunggu apalagi, yuk sign up sekarang di DQLab.id atau isi form dibawah ini ya!


Penulis : Ashari Ramadhan

Editor : Annissa Widya Davita

Mulai Karier
sebagai Praktisi
Data Bersama
DQLab

Daftar sekarang dan ambil langkah
pertamamu untuk mengenal
Data Science.

Buat Akun


Atau

Sudah punya akun? Login