Apa Itu Principal Component Analysis (PCA)?

Apa Itu Principal Component Analysis (PCA)?

Mulai dengan 2 dimensi terlebih dahulu

Sekarang kita kembali ke dataset 2 dimensi. Tenang saja, saya tidak bermaksud mengulang, namun kita mulai dari dasarnya (basic) nya dulu agar mudah mencerna konsepnya.

Dataset dengan 2 variabel

Langkah pertama adalah dengan menghitung nilai rataan gen 1, dan nilai rataan gen 2. Nilai rataan gen 1 dihitung dengan menjumlahkan semua data gen 1, kemudian dibagi dengan jumlah data.

  • Rataan gen 1 = (10+11+8+3+2+1)/6 = 5.8
  • Rataan gen 2 = (6+3+5+3+2.8+1)/6 = 3.4

Dengan demikian, sekarang kita memiliki koodinat pusat dari gen 1 dan gen 2, yaitu (5.8, 3.4). Ilustrasi visualnya adalah sebagai berikut:

Visualisasi mencari rataan gen 1 dan gen 2

Sekarang kita fokus ke visualisasinya saja. Koordinat rataan yang sudah kita dapatkan akan menjadi titik pusat yang baru. Oleh karena itu, kita harus menggeser semua datanya mengikuti titik pusat yang baru ini. Ilustrasinya adalah sebagai berikut:

Ilustrasi scatter plot yang baru dengan menggunakan koordinat rataan sebagai titik pusat

Yang kita lakukan hanyalah mengganti titik pusatnya. Cukup bayangkan di kepala bahwa sumbu x dan sumbu y kita gerakkan, dan kita buat koordinat rataan menjadi titik perpotongan antara sumbu x dan y. Perlu diperhatikan juga bahwa keenam data kelinci tidak kita apa-apakan, hanya koordinatnya saja yang disesuaikan kembali dengan titik pusat yang baru.

Setelah kita memiliki titik pusat yang baru, maka langkah selanjutnya adalah membuat garis PCA yang pertama. Caranya adalah dengan mencoba membuat garis. Kemudian kita proyeksikan semua data ke garis baru ini. Tujuannya adalah memaksimalkan jarak dari titik yang sudah diproyeksikan dari titik pusatnya (0,0). Ilustrasinya sebagai berikut:

Ilustrasi garis PCA

Sekilas, garis PCA ini tampak seperti garis regresi, namun keduanya berbeda. PCA mencari jarak tegak lurus terkecil antara titik asli dengan garis PCA nya, sementara regresi mencari jarak vertikal terkecil (jika y = f(x)), atau jarak horisontal terkecil (jika x = f(y)).

Bagi pembaca yang ingin mereview kembali materi regresi, silakan membaca lagi artikel saya yang membahas tentangnya di link ini.

Untuk bisa menghitung jarak tegal lurus terkecil (orthogonal), bisa dilakukan dengan konsep trigonometri. Dengan menggunakan konsep trigonometri, kita bisa mencari jalan yang lebih efisien. Daripada menghitung jarak tegak lurus terkecil), lebih mudah menghitung jarak proyeksi ke titik pusat (0,0).

Sekarang kita fokus pada satu titik saja. Lalu kita sedikit bermain dengan trigonometri. Ilustrasinya seperti ini.

Ilustrasi trigonometri di pemilihan garis PCA

Walaupun konsep dasar dari PCA adalah meminimasi nilai b, namun ternyata lebih mudah untuk menghitung nilai c, daripada menghitung nilai b. Hal ini bisa dibuktikan dnegan membalik sisi a dan c, menjadi sebagai berikut:

Rumus trigonometri

Melalui rumus trigonometri di atas kita bisa tahu bahwa semakin kecil b, maka semakin besar c.

Dengan demikian, untuk menemukan garis PCA yang terbaik adalah dengan mencari nilai c yang terbesar. Jika kita kembali kepada 6 data kelinci, maka ilustrasinya menjadi seperti ini:

Ilustrasi menghitung jarak terkecil untuk PCA

Pertama kita harus menghitung nilai jarak (koefisien c pada formula trogonometri sebelumnya) masing-masing titik yang sudah diproyeksikan terhadap titik pusat koordinat (0,0). Ada 6 jarak (garis) yang dinamai dengan simbol g (g1 artinya garis ke-1).

Maka untuk menghitung nilai jarak terjauh, kita cukup menjumlahkan nilai kuadratnya. Hasil penjumlahan kuadrat semua jarak ini disebut dengan istilah Sum of Squares (disingkat SS). Formula dari sum of squares ini juga ditunjukkan melalui ilustrasi di atas.

Selanjutnya, kita coba lagi membuat calon garis PCA 1 (atau PC 1) yang lain sebanyak mungkin. Kemudian kita akan mencari garis yang bisa memaksimalkan nilai SS(jarak) yang terbesar. Ilustrasinya sebagai berikut:

Mencari garis PC 1 yang terbaik

Setelah melalui berbagai percobaan calon garis PC 1 (anggap kita hanya memerlukan 3 calon garis PC saja), maka didapatkanlah garis terbaik dengan jarak maksimum yaitu calon ketiga, karena hasil SS(jarak)nya memberikan nilai terbesar.

Sekarang mari kita lihat lebih detail ke garis PC 1 ini, agar bisa memahami apa insights-nya.

Ilustrasi PC 1 yang sudah dipilih

PC 1 ternyata memiliki slope 0.25 yang artinya setiap ada pergerakan 4 satuan ke sumbu gen 1 (sumbu x), maka ada pergerakan sebesar 1 satuan ke sumbu gen 2 (sumbu y). Dengan trigonometri, kita juga bisa menghitung jarak antara titik pusat (0,0) dengan titik A, yaitu sebesar 4.12.

Dengan bahasa lain, bisa dikatakan bahwa untuk membuat PC 1 kita memerlukan 4 unit gen 1 dan 1 unit gen 2.

Jika kita lakukan rescaling (me-reset satuan) semua garis yang dimiliki titik A terhadap jarak diagonalnya (4.12), di mana jarak diagonal 4.12 kita buat bernilai 1, maka bisa dikatakan untuk membuat PC 1 kita memerlukan 0.97 gen 1 dan 0.24 gen 2.

Dengan melihat rasio di atas (4:1) atau (0.97:0.24) maka kita bisa mengatakan bahwa gen 1 lebih penting daripada gen 2 untuk bisa menjelaskan persebaran data yang ada. Namun, kita belum selesai, karena minimal diperlukan 2 garis PC agar bisa menjelaskan datanya secara visual.

Beberapa istilah (terminologi) yang harus dicatat:

  • Angka 0.97 untuk gen 1 dan 0.24 untuk gen 2 disebut dengan eigen vector untuk PC 1
  • Proporsi antara gen 1 dan gen 2 disebut dengan loading scores.
  • SS(jarak) untuk PC 1 disebut dengan eigen value untuk PC 1.
  • Akar dari eigen value disebut dengan singular value untuk PC 1.

Kita belum selesai, sekarang saatnya membuat garis PCA kedua yaitu PC 2. Untuk membentuk garis PC 2, cukup membuat garis tegak lurus terhadap PC 1, tanpa perlu menghitung SS(jarak) seperti saat membuat PC1. Ilustrasinya sebagai berikut:

Ilustrasi PC 2 yang tegak lurus terhadap PC 1.

PC 2 merupakan kebalikan dari PC 1. Dengan demikian untuk membentuk PC 2 kita memerlukan -1 gen 1 (1 satuan ke arah kiri di sumbu gen 1) dan 4 gen 2 (4 satuan ke arah atas di sumbu gen 2), atau jika kita lakukan rescaling maka diperlukan -0.24 gen 1 dan 0.97 gen 2. Kenapa gen 1 bernilai minus? Karena ini merupakan eigen vector, di mana ia memiliki arah.

Sekarang kita hilangkan sumbu koordinat gen 1 dan gen 2, dan cukup gunakan PC 1 sebagai sumbu x, dan PC 2 sebagai sumbu y. Maka hasilnya menjadi seperti berikut.

Ilustrasi visual yang baru dengan PC 1 dan PC 2 sebagai sumbu koordinat

Karena kita sudah memiliki setidaknya 2 garis PC, maka kita sudah bisa menghitung variasi (variation) untuk PC 1 dan PC 2, dengan formula sebagai berikut:

Formula menghitung variation untuk PC 1 dan PC 2

Nama lain dari SS(jarak) adalah eigen value. Jadi variasi dari masing-masing PC adalah pembagian antara eigen value masing-masing PC dengan jumlah data dikurangi satu (6-1 = 5).

Anggap kita sudah menghitung nilai variasi keduanya di mana :

  • Variasi PC 1 = 15
  • Variasi PC 2 = 3

maka variasi total (total variation) nya adalah (15+3) 18.

Apa artinya? Artinya PC 1 menjelaskan (15/18 = 0.83) 83% dari total variasi untuk semua PC yang ada, dan PC 2 hanya menjelaskan (3/18 = 0.17) 17% total variasi untuk semua PC .

Jika kita buat histogramnya (khusus untuk PCA disebut dengan istilah scree plot), maka tampak perbandingan sebagai berikut:

Scree plot

Terlihat bahwa PC 1 lebih mampu menjelaskan variasi daripada PC 2 untuk dataset 2 variabel (gen 1 dan gen 2). Pertanyaannya, bagaimana jika kita mulai memasukkan variabel ketiga yaitu gen 3?

Untuk kembali melanjutkan membaca, silakan klik tombol halaman selanjutnya di bawah ini.

Bagikan artikel ini:

Pages: 1 2 3

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments